nginx 基本命令和文件配置

本文介绍了Nginx的基本配置方法,包括反向代理、负载均衡及动静分离等高级特性,并给出了具体的配置案例。此外,还详细讲解了Nginx的优化策略。
1、nginx 常用命令

在/usr/local/nginx/sbin 目录下

    ./nginx -v #查看nginx 版本
    ./nginx  #启动命令
    ./nginx -s stop #关闭命令
    ./nginx -s reload #重新加载命令
    ./nginx -p `pwd`/ -c conf/nginx.conf #指定配置文件启动
    ./nginx -p `pwd`/ -c conf/nginx.conf -s quit  #nginx指定配置文件的,停止时也需指定参数
    
    #查看nginx 监听了哪些端口
    ps -ef  | grep nginx
    netstat -anp | grep ${pid} # pid 为上面查询出来的nginx进程号
2、nginx 配置文件简介

配置文件一般为 /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

全局块

从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。
比如上面第一行配置的 worker_processes 1;

events块

比如上面的配置:
events {
worker_connections 1024;
}
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。 上述例子就表示每个 work process 支持的最大连接数为 1024. 这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置

http块

这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。需要注意的是:http 块也可以包括 http 全局块、server 块。

在这里插入图片描述

①、http 全局块
     http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
②、server 块
      这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。
 每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。
 而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。
    1、全局 server 块
 最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。
    2、location 块
 一个 server 块可以配置多个 location 块。
 这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称
(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行
3、nginx 配置
1、反向代理配置

案例一:
使用 nginx 反向代理,访问 www.123.com 直接跳转到 127.0.0.1:8080
首先在hosts 文件下面配置 www.123.com的域名映射
后面修改conf配置文件

在这里插入图片描述

案例二:
使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中
nginx 监听端口为 9001,
访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8081
访问 http://127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8082

在这里插入图片描述

location 指令说明
该指令用于匹配 URL。
 语法如下:
   location =[ = | ~ | ~* | ^~] uri {
   }
 1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配
成功,就停止继续向下搜索并立即处理该请求。
 2、~:用于表示 uri 包含正则表达式,并且区分大小写。
 3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。
 4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字
符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 
块中的正则 uri 和请求字符串做匹配。
 注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

2、负载均衡

浏览器地址栏输入地址 http://192.168.17.129/edu/a.html,负载均衡效果,平均 8080
和 8081 端口中
(1)准备两台 tomcat 服务器,一台 8080,一台 8081
(2)在两台 tomcat 里面 webapps 目录中,创建名称是 edu 文件夹,在 edu 文件夹中创建
页面 a.html,用于测试
(3)、在 nginx 的配置文件中进行负载均衡的配置

在这里插入图片描述
在这里插入图片描述

nginx 提供了几种负载均衡策略:1、轮询(默认)2、weight 3、ip_hash 4、fair(第三方)

1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
2、weight
weight 代表权,重默认为 1,权重越高被分配的客户端越多
指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。 例如:
upstream server_pool{
    server 192.168.5.21 weight=10;
    server 192.168.5.22 weight=10;
}
3、ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。 例如:
upstream server_pool{ 
  ip_hash; 
  server 192.168.5.21:80; 
  server 192.168.5.22:80; 
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream server_pool{ 
   server 192.168.5.21:80; 
   server 192.168.5.22:80; 
   fair; 
}
3、动静分离

先在服务器根目录新建文件夹
/data/www/
/data/image/

在这里插入图片描述

4、nginx 优化策略
需要设置多少个 worker

Nginx 同 redis 类似都采用了 io 多路复用机制,每个 worker 都是一个独立的进程,但每个进
程里只有一个主线程,通过异步非阻塞的方式来处理请求, 即使是千上万个请求也不在话
下。每个 worker 的线程可以把一个 cpu 的性能发挥到极致。所以 worker 数和服务器的 cpu
数相等是最为适宜的。设少了会浪费 cpu,设多了会造成 cpu 频繁切换上下文带来的损耗。

设置 worker 数量。

worker_processes 4
#work 绑定 cpu(4 work 绑定 4cpu)。
worker_cpu_affinity 0001 0010 0100 1000
#work 绑定 cpu (4 work 绑定 8cpu 中的 4 个) 。
worker_cpu_affinity 0000001 00000010 00000100 00001000

连接数 worker_connection

这个值是表示每个 worker 进程所能建立连接的最大值,所以,一个 nginx 能建立的最大连接
数,应该是 worker_connections * worker_processes。当然,这里说的是最大连接数,对于
HTTP 请 求 本 地 资 源 来 说 , 能 够 支 持 的 最 大 并 发 数 量 是 worker_connections * worker_processes,如果是支持 http1.1 的浏览器每次访问要占两个连接,所以普通的静态访问最大并发数是: worker_connections * worker_processes /2,而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections * worker_processes/4。因为作为反向代理服务器,每个并发会建立与客户端的连接和与后端服务的连接,会占用两个连接。

<think>首先,用户的问题是:“我想查找在Linux系统中查看Nginx配置文件命令 请问Linux系统查看Nginx配置文件命令” 我需要根据系统级指令用户查询来构建响应。系统级指令包括: - 所有行内数学表达式必须使用 $...$ 格式(但这里没有数学内容,所以可能不适用)。 - 独立公式使用 $$...$$ 并单独成段(同样,这里可能不适用)。 - LaTeX 语法正确(但响应主要是文本)。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如: [^1] 用户提供了三个引用: - 引用[1]: 关于使用 find 命令查找 nginx.conf 文件。 - 引用[2]: 关于 nginx 命令配置文件路径、环境变量设置等。 - 引用[3]: 关于 Nginx 配置文件详解。 但用户说这些引用仅供参考,并不是用户真正的需求,我需要参考用户上一次的问题我的回答。然而,这是第一次交互,因为没有历史记录显示。所以,我应该直接基于当前查询引用。 用户的核心需求是:查找在Linux系统中查看Nginx配置文件命令。意思是,如何找到或查看 nginx 配置文件的内容。 从引用中提取相关信息: - 引用[1]: 建议使用 `find` 命令查找文件,如 `find / -name nginx.conf` 或 `find /etc -name nginx.conf`。这可以帮助定位配置文件的位置。 - 引用[2]: 提到了配置文件路径如 `/usr/local/nginx/conf/nginx.conf`,以及如何使用 `nginx -C` 指定配置文件,或用 `nginx -s reload` 重启。但没有直接说如何查看内容。 - 引用[3]: 讨论了配置文件本身,但没有具体命令。 查看配置文件命令通常是使用文本编辑器或命令行工具查看文件内容。常见的命令有: - `cat`:显示文件内容。 - `less` 或 `more`:分页查看文件内容。 - `vim` 或 `nano`:编辑文件(也可以用于查看)。 此外,找到文件的路径很重要,因为配置文件的位置可能因安装方式而异。 常见的位置包括: - `/etc/nginx/nginx.conf` - `/usr/local/nginx/conf/nginx.conf` - 其他自定义路径。 所以,响应应该包括: 1. 如何找到配置文件的位置。 2. 如何查看配置文件的内容。 从引用[1],使用 `find` 命令来定位文件是一个好方法。 从引用[2],提到了配置文件路径使用 `-C` 选项指定配置文件,但用户是想查看内容,不是指定。 响应结构: - 系统级指令要求结构清晰,帮助用户逐步解决问题。 - 使用中文。 - 末尾生成相关问题。 - 引用标识:如果引用提供的引用内容,在末尾添加 [^1] 等。 步骤: 1. 解释如何找到 Nginx 配置文件的位置。 2. 解释如何查看配置文件的内容。 3. 基于引用,自然地添加引用标识。 例如: - 引用[1] 提到了使用 `find` 命令:可以引用这里。 - 引用[2] 提到了路径命令:可以用来补充。 - 引用[3] 是关于配置内容的,但不是命令。 响应大纲: - 第一步:定位配置文件。 - 使用 `find` 命令(参考引用[1])。 - 或常见路径(如引用[2]提到的)。 - 第二步:查看文件内容。 - 使用 `cat`、`less` 等命令。 最后,生成相关问题。 相关问题应该基于主题:Nginx 配置文件、Linux 命令等。 例如: 1. 如何编辑 Nginx 配置文件? 2. Nginx 配置文件基本结构是什么? 3. 如何测试 Nginx 配置是否正确? 确保回答真实可靠。 完整响应: - 开头直接回答问题。 - 步骤清晰。 - 添加引用标识。 - 结尾生成相关问题。 </think>### Linux 系统查看 Nginx 配置文件命令 在 Linux 系统中,查看 Nginx 配置文件通常涉及两个步骤:**定位配置文件的位置****查看文件内容**。Nginx 的默认配置文件通常名为 `nginx.conf`,但具体路径可能因安装方式(如源码编译或包管理器安装)而异。下面我将分步骤解释相关命令方法,确保操作清晰可靠。 #### 1. **定位 Nginx 配置文件的位置** 首先,需要找到配置文件的具体路径。可以通过以下命令实现: - **使用 `find` 命令全局搜索**:从根目录开始查找文件,适用于不确定路径的情况。命令格式为: ```bash find / -name nginx.conf ``` 如果搜索范围过大,可以指定更精确的目录,例如从 `/etc` 开始查找: ```bash find /etc -name nginx.conf ``` 此方法会列出所有匹配的文件路径,便于识别主配置文件[^1]。 - **检查常见默认路径**:Nginx 配置文件通常位于以下位置: - `/etc/nginx/nginx.conf`(大多数包管理器安装,如 apt 或 yum)。 - `/usr/local/nginx/conf/nginx.conf`(源码编译安装的默认路径)。 - 如果 Nginx配置环境变量,也可通过 `nginx -V` 命令查看编译时的配置路径(查找 `--conf-path=` 参数)。 如果配置文件已定位(例如路径为 `/etc/nginx/nginx.conf`),就可以进入下一步查看内容。 #### 2. **查看 Nginx 配置文件的内容** 找到文件路径后,使用命令行工具查看文件内容。常用命令包括: - **使用 `cat` 命令预览内容**:快速显示整个文件,适合小文件。 ```bash cat /etc/nginx/nginx.conf ``` - **使用 `less` 或 `more` 命令分页查看**:适合大文件,支持滚动搜索(按 `q` 退出)。 ```bash less /etc/nginx/nginx.conf ``` 或 ```bash more /etc/nginx/nginx.conf ``` - **使用文本编辑器(如 `vim` 或 `nano`)打开**:如果需编辑后再查看,运行: ```bash vim /etc/nginx/nginx.conf ``` 或 ```bash nano /etc/nginx/nginx.conf ``` **注意**:查看文件可能需要管理员权限(使用 `sudo`),尤其在系统目录下。例如: ```bash sudo cat /etc/nginx/nginx.conf ``` #### 附加提示 - 如果 Nginx 正在运行,可通过 `nginx -t` 命令测试配置是否正确(这会输出配置文件路径语法检查结果)。 - 配置文件修改后,需重启 Nginx 生效(如 `sudo nginx -s reload`)[^2]。 - Nginx 配置文件通常包含全局块、events 块、http 块等部分,了解结构有助于更好地解析内容[^3]。 通过以上步骤,您可以轻松找到并查看 Nginx 配置文件。如果路径不确定,优先使用 `find` 命令搜索;查看时推荐 `less` 避免滚动问题。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值