详解Nginx的配置文件

Nginx的配置文件结构

Nginx 的配置文件 nginx.conf 位于安装 Nginx 目录下。虚拟配置虚拟主机的配置文件一般放在 conf.d 目录下。

Nginx目录

微信图片_20200427111845.png
nginx.conf 由多个块组成,最外面的块是 mainmain 包含 EventsHTTPHTTP 包含 upstream和多个 ServerServer 又包含多个 location

main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。

  • main 块设置的指令将影响其他所有设置;
  • server 块的指令主要用于指定主机和端口;
  • upstream 指令主要用于负载均衡,设置一系列的后端服务器;
  • location 块用于匹配网页位置。
Nginx的全局配置

每个配置选项的含义解释如下:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

user 是个主模块指令,指定 Nginx Worker 进程运行用户以及用户组 www-data
worker_processes 是个主模块指令,指定了 Nginx 要开启的进程数。默认是 auto
error_log 是个主模块指令,用来定义全局错误日志文件。日志输出级别有 debuginfonoticewarnerrorcrit 可供选择,其中,debug 输出日志最为最详细,而 crit 输出日志最少。
pid 是个主模块指令,用来指定进程 pid 的存储文件位置。

worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000

解析:表示开启四个进程,每一个进程分配一个CPU
每个配置选项的含义解释如下:
worker_processes 指明了 nginx 要开启的进程数,据官方说法,一般开一个就够了,多开几个,可以减少机器 io带来的影响。 一般为当前机器总 cpu 核心数的1到2倍。如,我的机器为双核,那么开4个足够了。
worker_rlimit_nofile 用于绑定 worker 进程和 CPU, Linux 内核2.4以上可用。

2核是 01,四核是0001,8核是00000001,有多少个核,就有几位数,1表示该内核开启,0表示该内核关闭。
worker_processes 最多开启8个,8个以上性能提升不会再提升了,而且稳定性变得更低,所以8个进程够用了。

use epoll;
worker_connections 65536;

events 事件指令是设定 Nginx 的工作模式及连接数上限:
use 是个事件模块指令,用来指定 Nginx 的工作模式。Nginx 支持的工作模式有 selectpollkqueueepollrtsig/dev/poll 。其中 selectpoll 都是标准的工作模式,kqueueepoll 是高效的工作模式,不同的是 epoll 用在 Linux 平台上,而 kqueue 用在 BSD 系统中。对于 Linux 系统,epoll 工作模式是首选。

负载均衡配置简介
upstream upzhi.com{
ip_hash;
server 192.168.8.11:80;
server 192.168.8.12:80 down;
server 192.168.8.13:8009 max_fails=3 fail_timeout=20s;
server 192.168.8.146:8080;
}

upstreamNginxHTTP Upstream 模块,这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡。
在上面的设定中,通过 upstream 指令指定了一个负载均衡器的名称 upzhi.com 。这个名称可以任意指定,在后面需要的地方直接调用即可。

Nginx 的负载均衡模块目前支持4种调度算法,下面进行分别介绍,其中后两项属于第三方的调度方法。

  • 轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,故障系统被自动剔除,使用户访问不受影响;
  • Weight :指定轮询权值, Weight 值越大,分配到的访问机率越高,主要用于后端每个服务器性能不均的情况下;
  • ip_hash:每个请求按访问IP的 hash 结果分配,这样来自同一个IP的访客固定访问一个后端服务器,有效解决了动态网页存在的session共享问题;
  • fair :比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx 本身是不支持 fair 的,如果需要使用这种调度算法,必须下载 Nginxupstream_fair 模块;
  • url_hash :按访问 urlhash 结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率。Nginx 本身是不支持 url_hash 的,如果需要使用这种调度算法,必须安装 Nginxhash 软件包。

HTTP Upstream 模块中,可以通过 server 指令指定后端服务器的IP地址和端口,同时还可以设定每个后端服务器在负载均衡调度中的状态。常用的状态有:

  • down :表示当前的server暂时不参与负载均衡;
  • backup :预留的备份机器。当其他所有的非 backup 机器出现故障或者忙的时候,才会请求 backup机器,因此这台机器的压力最轻;
  • max_fails:允许请求失败的次数,默认为1。当超过最大次数时,返回 proxy_next_upstream 模块定义的错误;
  • fail_timeout :在经历了 max_fails 次失败后,暂停服务的时间。 max_fails 可以和 fail_timeout 一起使用。
    注意,当负载调度算法为 ip_hash 时,后端服务器在负载均衡调度中的状态不能是 weightbackup
server虚拟主机配置

建议将对虚拟主机进行配置的内容写进另外一个文件,然后通过 include 指令包含进来,这样更便于维护和管理。

http {
    include /etc/nginx/conf.d/*.conf;
}

在这里,配置虚拟主机会在 Nginx配置虚拟主机 中进行介绍

location URL匹配配置

在这里, location URL 匹配配置同样会在 Nginx配置虚拟主机 中进行介绍,因为两者是可以进行绑定的
nginx的配置讲解到这里结束,在看的过程中有问题或者手误的地方可以私信小编。

最后,注明小编的参考链接:nginx配置

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值