Nginx Nginx (engine x) 是一個高效能的HTTP和反向代理web伺服器,Nginx是一款輕量級的Web 伺服器/反向代理伺服器
#Nginx作為一個後起之秀,他的迷人之處已經讓很多人都投入了他的懷抱。配置簡單,實作原理簡單。做一個負載平衡的再好不過了。
#一.最佳化Nginx並發量
[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) //提示打开文件数量过多
#修改Nginx設定檔,增加並發量
[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
二.優化Linux核心參數(最大檔案數量)
[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列,分别如下: #用户或组 硬限制或软限制 需要限制的项目 限制的值
優化後測試伺服器並發量
[root@proxy ~]# ab -n 2000 -c 2000 http://192.168.4.5/
三.最佳化Nginx封包頭快取
[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 //提示头部信息过大
修改Nginx設定文件,增加封包頭部快取大小
[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
四.對頁面進行壓縮處理
[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 .. ..
五.伺服器記憶體快取
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次会被缓存 }
六.瀏覽器本地快取靜態數據
[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是一種免費使用和自由傳播的類UNIX作業系統,是一個基於POSIX的多用戶、多任務、支援多執行緒和多CPU的作業系統,使用Linux能運行主要的Unix工具軟體、應用程式和網路協定。
以上是Linux系統下如何最佳化nginx的詳細內容。更多資訊請關注PHP中文網其他相關文章!