nginx 答疑解惑 与 调优

1. nginx 答疑解惑
   1.1 nginx 为什么在linux下要以root权限运行?
   1.2 单个后台worker process进程的最大并发链接数
   1.3 nginx 如何支持https
   1.4 nginx 平滑升级
2. nginx 调优

1. nginx答疑解惑

1. 1 nginx 为什么在linux下要以root权限运行?用户来运行?

众所周知,linux 0-1024 端口是不允许非root权限占用的。 
http 协议默认端口:80
https协议默认端口:443 

1.2 单个后台worker process进程的最大并发链接数

	 worker_connections 1024; 
	 并发总数是worker_processes和worker_connections的乘积 
	 即max_clients=worker_processes*worker_connections 
	 在设置了反向代理的情况下,max_clients=worker_processes*worker_connections/4,为什么? 
	 为什么上面反向代理要除以4,应该说是一个经验值 
	 根据以上条件,正常情况下的Nginx Server可以应付的最大连接数为:4*8000=32000 
	 worker_connections值的设置跟物理内存大小有关
	 因为并发受IO约束,max_clients的值须小于系统可以打开的最大文件数
	 而系统可以打开的最大文件数和内存大小成正比
	 一般1GB内存的机器上可以打开的文件数大约是10万左右。
	 看360M内存的VPS可以打开的文件句柄数是多少:
		  root@g:~# cat /proc/sys/fs/file-max 
		  197488 32000<197488,
	即并发连接总数小于系统可以打开的文件句柄总数,这样就在操作系统可以承受的范围之内 
	所以,worker_connections的值需
	根据worker_processes进程数目和系统可以打开的最大文件总数 进行适当地进行设置
	使得并发总数小于操作系统可以打开的最大文件数目,其实质是根据主机的物理CPU和内存进行配置。
	当然,理论上的并发总数可能会和实际有所偏差, 因为主机还有其他的工作进程需要消耗系统资源。
		ulimit -SHn 65535

1.3 nginx如何支持https

  1. 编译安装环节参考《nginx安装配置 HTTPS 》
  2. nginx.conf文件配置
server {
	listen       443 ssl;
	server_name  horsesense.xyzla.com;
	
	location / {
	    proxy_pass http://tomcat_20120;
        # 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
        # 将代理服务器收到的用户的信息传到真实服务器上
	    proxy_set_header Host $host;
	    proxy_set_header X-Real-IP $remote_addr;
	    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}

	ssl_certificate /usr/local/nginx/conf/ssl/horsesense.xyzla.com.pem;
	ssl_certificate_key /usr/local/nginx/conf/ssl/horsesense.xyzla.com.key;
	# Enables all versions of TLS, but not SSLv2 or 3 which are weak and now deprecated.
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;

	access_log /opt/logs/nginx/access_manage.log main;
}

2. nginx 调优

1、安全优化:隐藏Nginx版本号,server_tokens off;
2、安全优化:更改掉默认的用户 user nginx;
3、性能优化: 根据硬件配置,调整nginx worker 进程数 ,一般为cpu的核数
4、性能优化:绑定不同的进程到不同的cpu上,硬件资源平均分配,比如4个worker进程数,即work_cpu_affinity 0001 0010
面试题:命令行如何通过调整命令来调整不同的进程或服务到不同的cpu上,资源平均分配
5、性能优化:nginx的事件处理模型优化为epoll,use epoll;
面试题:nginx epoll 和 apache tomcat 的区别
6、性能优化:调整每个nginx worker 进程的最大连接数 worker_connections 8196;
面试题:什么是并发?
7、性能优化:调整nginx 最大文件的描述符数量 worker_rlimit_nofile 65535
8、性能优化:开启高效的传输模式sendfile on;

  • qq_43638135
    妲己再美究为妃: 博主没有想过自己接一些私活干吗?我现在还没毕业,但是我也确实听说外挂市场自动化游戏脚本市场挺火热的,并且报酬也很丰厚,但是具体的我也不是很清楚,求解答。 (1个月前 #47楼) 查看回复(2) 举报 回复
    22