Linux项目_Lnmp_8_Nginx主配置文件

Linux项目_Lnmp_8_Nginx主配置文件

一.设置Nginx代理


1.配置NGIX以接受代理协议

若要配置NGNIX以接受代理协议报头,请在HTTP或流块中的服务器块中将PROXYL协议参数添加到侦听指令中。
这里写图片描述

现在,您可以使用
$PROXYPROSTOLL ADDR 和 $PROXYPROSTOLL
端口变量来为客户端IP地址和端口配置额外的HTTP和流实IP模块,以替换IP地址和端口中的$remote_addr和$remote_port变量中的负载均衡器的IP地址。客户的。

2.负载均衡器的IP地址更改为客户端IP地址

您可以用从代理协议接收的客户端IP地址替换负载平衡器或TCP代理的地址。这可以通过HTTP和流实IP模块来完成。使用这些模块,$remote_addr和$remote_port变量重新计算客户端的实际IP地址和端口,而$realip_remote_addr和$realip_remote_port端口变量保留负载均衡器的IP地址和端口。

将IP地址从负载均衡器的IP地址更改为客户端的IP地址:

确保您已经配置了Nginx接受代理协议报头。
这里写图片描述

在来自HTTP、流或两者的指令中的SETRealRealIppIn中,指定TCP代理或负载均衡器的IP地址或CIDR地址范围:
这里写图片描述

在HTTP上下文中,通过向RealAuthIPHead指令指定PROXYL协议参数,将负载均衡器的IP地址更改为从代理协议报头接收到的客户端的IP地址:
这里写图片描述

3.用于上游的TCP连接的代理协议

对于TCP流,可以为NGNX和上游服务器之间的连接启用代理协议。为了启用代理协议,在流级别的服务器块中包含PROXYL协议指令:

这里写图片描述

举例:
这里写图片描述

二.设置Nginx进程分配至多核CPU提升性能


1.Nginx 配置文件 nginx.conf

在LNMP安装目录下,nginx.conf 存放在
/usr/local/lnmp/nginx/conf/nginx.conf
至于其他环境下安装 Nginx 可以用
find / -name nginx.conf
来查找配置文件的存放路径。

2.Nginx worker_processes进程数设置

Nginx 的配置文档 nginx.conf 中可以设置 worker_processes 来更改 Nginx 的进程数量,根据这篇问答number of nginx worker processes显示,建议 Nginx worker_processes进程数设置为1

NGIX不同于Apache和其他进程的每一个连接Web服务器。它使用一个主进程来启动和监视少量的实际处理连接的工作进程。我的建议是从默认的工人数量开始,这是1

要把不同的 worker_processes 进程分配至不同核上的 CPU 上运行
假设服务器母鸡拥有8个逻辑CPU,但是作为用户我只得到4个逻辑CPU,所以在这里我设置为运行3个worker_processes进程,原因是在默认情况下,其他的程序会在第1个逻辑CPU(CPU0)上运行,为了不影响其他程序,我将会把这3个进程分配至另外3个逻辑CPU(CPU1、CPU2、CPU3)上运行

worker_processes 3;

你可以使用这条命令来查看当前的CPU情况:
cat /proc/cpuinfo
或者直接显示逻辑CPU的个数:
cat /proc/cpuinfo |grep “processor”|wc -l

3.Nginx worker_cpu_affinity 设置

翻译:CPU亲和性

使用此选项,可以将辅助进程绑定到CPU
For example,

worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;

仅将每个工作进程绑定到一个CPU

worker_processes 2;
worker_cpu_affinity 0101 1010;

将第一个工人绑定到CPU0/CPU2,将第二个工人绑定到CPU1/CPU3。这适用于HTT。

worker_cpu_affinity 默认是没有开启的,根据例子我们可以看得出,0001 0010 0100 1000 分别代表第1、2、3、4个逻辑CPU,所以我们可以设置0010 0100 1000来将3个进程分别绑定到第2、3、4个逻辑CPU上:

worker_processes 3;
worker_cpu_affinity 0010 0100 1000;

worker_cpu_affinity 可以将同1个进程绑定在2个逻辑CPU上
0101也就是第1、3个逻辑CPU上,1010就是第2、4个逻辑CPU上

worker_processes 2;
worker_cpu_affinity 0101 1010;

4.nginx启用

保存 nginx.conf 文件,并重新加载 Nginx 配置文件:
/usr/local/lnmp/nginx/sbin/nginx -s reload

三.其他参数信息

sysctl -a | grep range
查看tcp开放的端口,起始值>1024 (1024-65536)

nginx可以处理的最大连接量:
nginx与客户端作反向代理服务,与客户端建立链接,与后段服务器也有连接,所以65535*服务器量/2

log_format 系统日志,后面是各种格式

sendfile on; 开启文件高校传输,异步IO,查看工作原理
tcp_nopush on; 防止网络阻塞
tcp_delayS on; 防止磁盘阻塞

keepalive_timeout 65; 超时连接,避免客户端和服务端长时间占用资源,默认60s
防止http本身的漏洞进行攻击
o
limit_conn_zone $binary_remote_addr zone=addr:10m 控制并发 one
limit_req zone=one burst=5;
conn连接 rate代宽 req限制请求
压测检验
1r/s;每秒1个
限制IP
防盗链
网页压缩

参考信息


设置Nginx进程分配至多核CPU提升性能
http://www.1990y.com/nginx-worker-process-affinity/
Nginx官网
http://www.nginx.com/
Configuring NGINX to Accept the PROXY Protocol
https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/

猜你喜欢

转载自blog.csdn.net/zwhzwh0228/article/details/80258896