小葵花妈妈课堂之nginx必须要了解的优化九部曲!
生活随笔
收集整理的這篇文章主要介紹了
小葵花妈妈课堂之nginx必须要了解的优化九部曲!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言:在企業信息化應用環境中。服務器的安全性和響應速度需要根據實際的情況進行相應的參數配置,達到最優的用戶體驗。
默認的nginx安裝參數只能提供最基本的服務,還需要調整如王爺時間、連接超時、網頁壓縮等相應參數,才能發揮服務器的最大作用
一、隱藏版本號
1.1 修改配置文件
vim /usr/local/nginx/conf/nginx.conf http {include mime.types;default_type application/octet-stream;server_tokens off; #添加,關閉版本號...... }systemctl restart nginx curl -I http://192.168.184.201.2 修改源碼?
vim /opt/nginx-1.12.0/src/core/nginx.h #define NGINX_VERSION "1.1.1" #修改版本號 #define NGINX_VER "IIS" NGINX_VERSION #修改服務器類型cd /opt/nginx-1.12.0/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module make && make installvim /usr/local/nginx/conf/nginx.conf http {include mime.types;default_type application/octet-stream;server_tokens on;...... }systemctl restart nginx curl -I http://192.168.184.20二、修改用戶和組
vim /usr/local/nginx/conf/nginx.conf#user nobody; worker_processes 1; #默認是Nginx默認使用nobody用戶賬號與組賬號 #修改成如下內容user nginx nginx; worker_processes 1; #修改屬組屬主,重啟服務,查看服務狀態 systemctl restart nginx ps aux | grep nginx root 109662 0.0 0.0 20560 624 ? Ss 12:10 0:00 nginx: master process /usr/local/nginx/sbin/nginx nginx 109663 0.0 0.0 23096 1392 ? S 12:10 0:00 nginx: worker process root 109667 0.0 0.0 112724 988 pts/4 S+ 12:10 0:00 grep --color=auto nginx三、設置緩存時間
vim /usr/local/nginx/conf/nginx.conf http { ......server {...... location / {root html;index index.html index.htm;}location ~ \.(gif|jpg|jepg|png|bmp|ico)$ { #加入新的 location,以圖片作為緩存對象root html;expires 1d; #指定緩存時間,1天} ......} }nginx -t systemctl restart nginxhttp://www.kgc.com/wangsicong.jpg四、日志分割
vim /opt/fenge.sh#!/bin/bash #Filename:fenge.sh d=$(date -d "-1 day" "+%Y%m%d") logs_path="/var/log/nginx" pid_path="/usr/local/nginx/logs/nginx.pid" [ -d $logs_path ] || mkdir -p $logs_path mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d kill -HUP $(cat $pid_path) find $logs_path -mtime +30 | xargs rm -rfchmod +x /opt/fenge.shcrontab -e no crontab for root - using an empty one crontab: installing new crontab crontab -l 0 1 * * * /opt/fenge.shsystemctl restart nginx netstat -natp | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 111019/nginx: maste bash -x fenge.sh ++ date -d '-1 day' +%Y%m%d + d=20210623 + logs_path=/var/log/nginx + pid_path=/usr/local/nginx/logs/nginx.pid + '[' -d /var/log/nginx ']' + mv /usr/local/nginx/logs/access.log /var/log/nginx/test.com-access.log-20210623 ++ cat /usr/local/nginx/logs/nginx.pid + kill -HUP 111019 + find /var/log/nginx -mtime +30 + xargs rm -rf [root@client opt]# ls /var/log/nginx/ test.com-access.log-20210623 #可以看到前一天的日志 date -s 20210625 2021年 06月 25日 星期五 00:00:00 CST ./fenge.sh ls /var/log/nginx/ test.com-access.log-20210623 test.com-access.log-20210624 date 2021年 06月 25日 星期五 00:00:15 CST五、連接超時
vim /usr/local/nginx/conf/nginx.conf32 #keepalive_timeout 0; 33 keepalive_timeout 100; 34 client_header_timeout 80; 35 client_body_timeout 80; nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful六、更改進程數
cat /proc/cpuinfo | grep -c "physical" 8 ps aux | grep nginx root 111019 0.0 0.0 20600 1496 ? Ss 6月24 0:00 nginx: master process /usr/local/nginx/sbin/nginx nginx 113972 0.0 0.0 23112 1428 ? S 01:00 0:00 nginx: worker process root 114265 0.0 0.0 112724 988 pts/1 S+ 01:24 0:00 grep --color=auto nginxvim /usr/local/nginx/conf/nginx.conf#user nobody; worker_processes 2; worker_cpu_affinity 01 10;七、網頁壓縮
vim /usr/local/nginx/conf/nginx.conf http { ...... gzip on; #取消注釋,開啟gzip壓縮功能gzip_min_length 1k; #最小壓縮文件大小gzip_buffers 4 16k; #壓縮緩沖區,大小為4個16k緩沖區gzip_http_version 1.1; #壓縮版本(默認1.1,前端如果是squid2.5請使用1.0)gzip_comp_level 6; #壓縮比率gzip_vary on; #支持前端緩存服務器存儲壓縮頁面gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json; #壓縮類型,表示哪些網頁文檔啟用壓縮功能 ...... } cd /usr/local/nginx/html 先將game.jpg文件傳到/usr/local/nginx/html目錄下 vim index.html ...... <img src="game.jpg"/> #網頁中插入圖片 </body> </html>systemctl restart nginx 在Linux系統中,打開火狐瀏覽器,右擊點查看元素 選擇 網絡 ---> 選擇 HTML、WS、其他 訪問 http://192.168.184.20 ,雙擊200響應消息查看響應頭中包含 Content-Encoding: gzip八、盜鏈與防盜鏈
vim /usr/local/nginx/conf/nginx.conf http { ......server {......location ~*\.(jpg|gif|swf)$ {valid_referers *.lic.com lic.com;if ( $invalid_referer ) {rewrite ^/ http://www.lic.com/error.png;#return 403;}}......} }表示匹配不區分大小寫,以.jpg 或.gif 或.swf 結尾的文件
~* .(jpg|gif|jepg|bmp|ico)$具體實操
網頁準備:
Web源主機(192.168.184.20)
盜鏈網站主機(192.168.184.30)
cd /usr/local/nginx/html vim index.html ...... <img src="http://www.lic.com/kiki.jpg"/> </body> </html>echo "192.168.184.20 www.lic.com" >> /etc/hosts echo "192.168.184.30 www.daodao.com" >> /etc/hosts在盜圖網站主機上進行瀏覽器驗證
http://www.daodao.com九、FPM模塊參數優化
cd /usr/local/php/etc/ cp php-fpm.conf.default php-fpm.conf vim php-fpm.conf pid = run/php-fpm.pidvim /usr/local/php/etc/php-fpm.d/www.conf #96行 pm = dynamic #fpm進程啟動方式,動態的 #107行 pm.max_children=20 #fpm進程啟動的最大進程數 #112行 pm.start_servers = 5 #動態方式下啟動時默認開啟的進程數,在最小和最大之間 #117行 pm.min_spare_servers = 2 #動態方式下最小空閑進程數 #122行 pm.max_spare_servers = 8 #動態方式下最大空閑進程數#啟動php-fpm,不可用于重啟 /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini #執行第一個命令后,就可以使用下面這條命令查看pid號重啟php-fpm kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` netstat -anpt | grep 9000總結
以上是生活随笔為你收集整理的小葵花妈妈课堂之nginx必须要了解的优化九部曲!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 再爆hzhost6.5虚拟主机管理系统的
- 下一篇: 网络安全学习--002--windows