Nginx Nginx (engine x) is a high-performance HTTP and reverse proxy web server,Nginx is a lightweight web server/reverse proxy server
As a rising star, Nginx’s charm has attracted many people to invest in it embrace. The configuration is simple and the implementation principle is simple. There's nothing better than doing a load balancing thing.
1. Optimize Nginx concurrency
[root@proxy ~]# ab -n 2000 -c 2000 http://192.168.4.5/ Benchmarking 192.168.4.5 (be patient) socket: Too many open files (24) //提示打开文件数量过多
Modify Nginx configuration file , increase the amount of concurrency
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf .. .. worker_processes 2; //与CPU核心数量一致 events { worker_connections 65535; //每个worker最大并发连接数 use epoll; } .. .. [root@proxy ~]# nginx -s reload
2. Optimize Linux kernel parameters (maximum number of files)
[root@proxy ~]# ulimit -a //查看所有属性值 [root@proxy ~]# ulimit -Hn 100000 //设置硬限制(临时规则) [root@proxy ~]# ulimit -Sn 100000 //设置软限制(临时规则) [root@proxy ~]# vim /etc/security/limits.conf .. .. * soft nofile 100000 * hard nofile 100000 #该配置文件分4列,分别如下: #用户或组 硬限制或软限制 需要限制的项目 限制的值
Test server concurrency after optimization
[root@proxy ~]# ab -n 2000 -c 2000 http://192.168.4.5/
3. Optimize Nginx packet header cache
[root@proxy ~]# cat lnmp_soft/buffer.sh #!/bin/bash URL=http://192.168.4.5/index.html? for i in {1..5000} do URL=${URL}v$i=$i done curl $URL //经过5000次循环后,生成一个长的URL地址栏 [root@proxy ~]# ./buffer.sh .. .. 414 Request-URI Too Large //提示头部信息过大
Modify the Nginx configuration file and increase the packet header cache size
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf .. .. http { client_header_buffer_size 1k; //默认请求包头信息的缓存 large_client_header_buffers 4 4k; //大请求包头部信息的缓存个数与容量 .. .. } [root@proxy ~]# nginx -s reload
4. Compress the page
[root@proxy ~]# cat /usr/local/nginx/conf/nginx.conf http { .. .. gzip on; //开启压缩 gzip_min_length 1000; //小文件不压缩 gzip_comp_level 4; //压缩比率 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; //对特定文件压缩,类型参考mime.types .. ..
5. Server memory cache
http { open_file_cache max=2000 inactive=20s; open_file_cache_valid 60s; open_file_cache_min_uses 5; open_file_cache_errors off; //设置服务器最大缓存2000个文件句柄,关闭20秒内无请求的文件句柄 //文件句柄的有效时间是60秒,60秒后过期 //只有访问次数超过5次会被缓存 }
6. Browser caches static data locally
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { expires 30d; //定义客户端缓存时间为30天 } } [root@proxy ~]# cp /usr/share/backgrounds/day.jpg /usr/local/nginx/html [root@proxy ~]# nginx -s reload
Linux is a UNIX-like operating system that is free to use and spread freely. It is a POSIX-based multi-user, multi-tasking, multi-threading and A multi-CPU operating system that uses Linux to run major Unix tool software, applications, and network protocols.
The above is the detailed content of How to optimize nginx under Linux system. For more information, please follow other related articles on the PHP Chinese website!