Nginx服務(wù)優(yōu)化解讀
配置Nginx隱藏版本號(hào)
隱藏Nginx版本號(hào),避免安全漏洞泄漏
- Nginx隱藏版本號(hào)的方法
- 修改配置文件法
- 修改源碼法
將Nginx配置文件中server_tokens 選項(xiàng)的值設(shè)置為off
vi nginx.conf
修改配置文件 server_tokens off; 關(guān)閉版本號(hào)
nginx -t 檢查語法
重啟服務(wù),訪問網(wǎng)站使用curl -l命令檢測(cè)
systemctl restart nginx curl -l http://192.168.100.111
使用PHP處理動(dòng)態(tài) 網(wǎng)頁(yè)
若PHP配置文件中配置了fastcgi_param
SERVER_SOFTWARE 選項(xiàng)
則編輯php-fpm配置文件,將fastcgi_param
SERVER_SOFTWARE 對(duì)應(yīng)的值修改為astcgi_param
SERVER_SOFTWARE nginx;
修改源碼法
Nginx源碼文件/usr/src/nginx-1.12.0/src/core/nginx.h包含版本信息,可以隨意設(shè)置
重新編譯安裝,隱藏版本信息
實(shí)例
#define NGINX_VERSION “1.1.1” ,修改版本號(hào)為1.1.1 #define NGINX_VER “IIS” ,修改軟件類型為IIS
重啟服務(wù),訪問網(wǎng)站使用curl -l 命令檢測(cè)
修改Nginx用戶與組
Nginx運(yùn)行時(shí)進(jìn)程需要有用戶與組的支持,以實(shí)現(xiàn)對(duì)網(wǎng)站文件讀取時(shí)進(jìn)行訪問控制
Nginx默認(rèn)使用nobody用戶賬號(hào)與組賬號(hào)
修改的方法
編譯安裝時(shí)指定用戶與組
修改配置文件指定用戶與組
編譯安裝時(shí)指定
創(chuàng)建用戶賬號(hào)與組賬號(hào),如nginx
編譯安裝時(shí)–user與–group指定Nginx服務(wù)的運(yùn)行用戶與組賬號(hào)
./congigure -prefix=/usr/local/nginx –user=nginx –group=nginx \
修改配置文件法指定
新建用戶賬號(hào),如nginx
修改著配置文件 user選項(xiàng),指定用戶賬號(hào)與組賬號(hào)
重啟nginx服務(wù),使配置生效
使ps aux命令查看nginx的進(jìn)程信息,驗(yàn)證運(yùn)行用戶賬號(hào)改變效果
實(shí)現(xiàn)Nginx的日志切割
隨著Nginx運(yùn)行時(shí)間增加,日志也會(huì)增加。為了方便掌握Nginx運(yùn)行狀態(tài),需要時(shí)刻關(guān)注Nginx志文件
太大的白志文件對(duì)監(jiān)控是一個(gè)大災(zāi)難
定期進(jìn)行日志文件的切割
Nginx自身不具備日志分割處理的功能,但可以通過Nginx信號(hào)控制功能的腳本實(shí)現(xiàn)日志的自動(dòng)切割
通過Linux的計(jì)劃任務(wù)周期性地進(jìn)行日志切割
編寫腳本進(jìn)行日志切割的思路
設(shè)置時(shí)間變量
設(shè)置保存日志路徑
將目前的日志文件進(jìn)行重命名
重建新日志文件
刪除時(shí)間過長(zhǎng)的日志文件
設(shè)置cron任務(wù),定期執(zhí)行腳本自動(dòng)進(jìn)行日志分割
FOM優(yōu)化參數(shù)
Static的方式的參數(shù)
- pm.max_children:指定啟動(dòng)的進(jìn)程數(shù)量
Dynamic方式的參數(shù)
- pm.max_chidren:指定啟動(dòng)進(jìn)程數(shù)的最大值
- pm.start_servers:動(dòng)態(tài)方式下初始的fpm進(jìn)程數(shù)
- pm.min_spare_servers:動(dòng)態(tài)
版本隱藏
先建立個(gè)鏈接 方便訪問
修改配置
ln -s /usr/local/nginx/conf/nginx.conf /etc/ vi /etc/nginx.conf

保存后退出,重啟

查看版本:
curl -I http://localhost

隱藏版本,需要修改的配置
vi /etc/nginx.conf

修改第一個(gè)是日期 第二個(gè)是版本號(hào) 第三個(gè)搭建的軟件
vi nginx-1.12.2/src/core/nginx.h

改好后 關(guān)閉nginx 再編譯安裝

安裝結(jié)束后 啟動(dòng)nginx服務(wù)

查看版本
會(huì)發(fā)現(xiàn) 搭建的軟件 從nginx變成了IIS

修改Nginx賬戶
先查看
ps aux | grep nginx

修改配置
vi /etc/nginx.conf

修改后

配置緩存
先放進(jìn)圖片 /usr/local/nginx/html

修改Nginx的配置

網(wǎng)頁(yè)圖片鏈接

重啟服務(wù)

會(huì)發(fā)現(xiàn)只有圖片緩存了


日志分割
vim 1.sh
內(nèi)容:
#!/bin/bash
#日志分割
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}/aa.com.access.log-$d
kill -HUP $(cat $pid_path)
find $logs_path -mtime +60 | xargs rm -rf

給權(quán)限 再執(zhí)行腳本

截切結(jié)果

設(shè)置cron任務(wù)計(jì)劃

查看

配置連接超時(shí)
vi /etc/nginx keepalive_timeout 65 180; client_header_timeout 80; client_body_timeout 80;

重啟nginx服務(wù)
訪問IP 抓包查看

更改進(jìn)程數(shù)
查看核心數(shù) cat /proc/cpuinfo | grep -c "physical" 
查看進(jìn)程

編輯配置文件
vi /etc/nginx.conf worker_processes 8; worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

檢查語法 可能 字符不夠

就用
ulimit -n 65535 >> /etc/rc.local
再檢測(cè)語法 就可以了
網(wǎng)頁(yè)壓縮
vi /etc/nginx.conf
前面#去掉
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 6; gzip_types text/plain application/x-javascript text/css image/jpg image/jpeg image/jpg image/gif application/xml text/javascript application/x-httpd-php application/javascript application/json; gzip_disable "MSIE [1-6]\."; gzip_vary on;

檢查語法
重啟服務(wù)

設(shè)置防盜鏈
vi /etc/nginx.conf
location ~* \.(jpg|gif|swf)$ {
valid_referers none blocked *.chen.com chen.com 192.168.100.111;
if ($invalid_referer ) {
rewrite ^/ http://www.chencom/2.jpg;
}
}

檢查語法
重啟服務(wù)

把圖片 復(fù)制到 /usr/local/nginx/html/
進(jìn)入站點(diǎn)目錄修改index.html

防盜鏈設(shè)置成功

FPM模塊優(yōu)化
cd /usr/local/php/etc/php-fpm.d/ vi www.conf

ps aux | grep php-fpm

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot前端后端分離之Nginx服務(wù)器下載安裝過程
Nginx是一款輕量級(jí)的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,這篇文章主要介紹了SpringBoot前端后端分離之Nginx服務(wù)器,需要的朋友可以參考下2022-08-08
Nginx FastCGI緩存的實(shí)現(xiàn)示例
Nginx的FastCGI緩存是一種性能優(yōu)化手段,通過緩存動(dòng)態(tài)內(nèi)容減少對(duì)后端服務(wù)器的請(qǐng)求,提高系統(tǒng)響應(yīng)速度,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12
Nginx代理MySQL實(shí)現(xiàn)通過域名連接數(shù)據(jù)庫(kù)的詳細(xì)教程
我們的生產(chǎn)環(huán)境基本上都部署在云服務(wù)器上,例如應(yīng)用服務(wù)器、MySQL服務(wù)器等,如果MySQL服務(wù)器直接暴露在公網(wǎng),就會(huì)存在很大的風(fēng)險(xiǎn),為了保證數(shù)據(jù)安全,MySQL服務(wù)器的端口是不對(duì)外開放的,所以本文介紹了Nginx代理MySQL實(shí)現(xiàn)通過域名連接數(shù)據(jù)庫(kù)的詳細(xì)教程2024-07-07
在Nginx用htpasswd對(duì)網(wǎng)站進(jìn)行密碼保護(hù)的設(shè)置方法
很多時(shí)候我們需要對(duì)一些網(wǎng)站進(jìn)行密碼保護(hù),比如團(tuán)隊(duì)內(nèi)部的站點(diǎn)、demo站點(diǎn)等等。這里所說的密碼保護(hù)是服務(wù)器級(jí)的,并非網(wǎng)站應(yīng)用層的注冊(cè)登錄那一套,而是利用服務(wù)器配置和htpasswd文件來實(shí)現(xiàn)訪問的密碼驗(yàn)證2013-06-06
nginx支持帶下劃線的header實(shí)現(xiàn)
如果header name中包含下劃線,則忽略掉,本文主要介紹了nginx支持帶下劃線的header實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
nginx proxy_pass反向代理配置中url后加不加/的區(qū)別介紹
這篇文章主要給大家介紹了關(guān)于nginx proxy_pass反向代理配置中url后加不加/的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11

