目錄
- 前言
- 1.nginx優化
- 2.修改用戶和組
- 3.設定快取時間
- 4.日志分割
- 5.連接超時
- 6.更改行程數
- 7.網頁壓縮
- 8.盜鏈與防盜鏈
- 9.FPM模塊引數優化
- 小結
前言
在企業資訊化應用環境中,服務器的安全性和回應速度需要根據實際的情況進行相應的引數配置,達到最優的用戶體驗,默認的nginx安裝引數只能提供最基本的服務,還需要調整如王爺時間、連接超時、網頁壓縮等相應引數,才能發揮服務器的最大的作用,
1.nginx優化
一、隱藏版本號
1、在生產環境中,需要隱藏Ng的版本號,以免安全漏洞的泄露
查看方法:
本地查看(查看頭部資訊)
curl -i http://192.168.184.20
瀏覽器:可以直接在瀏覽器(例如谷歌)—》開發者工具—》選擇network—》重繪頁面—》選擇請求—》選擇headers —》查看版本島
2、NG隱藏版本號的方式:1.修改組態檔2.修改原始碼
修改組態檔:
vim /usr/ local/nginx/ conf/ nginx.confhttp {
include
mime.types;
default_type application/octet-stream;
server_tokens off; #添加,關閉版本號
...
}
systemctl restart nginx
curl -l http:/l192.168.226.128
修改原始碼:
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.o/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make & & make install
vim /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.226.128
2.修改用戶和組
若沒有安裝前創建用戶,則在此服務中默認使用的是nobody
vim /usr/ local/ nginx/conf/ nginx.conf
#usernobody ;
worker_processes1 ;
#默認是Nginx默認使用nobody用戶賬號與組賬號
#修改成如下內容
user nginx nginx;
worker_processes1;
#修改屬組屬主,重啟服務,查看服務狀態
systemctl restart nginx
ps aux l grep nginx

3.設定快取時間
virm /usr/ local/ nginxl conf/ nginx.conf
http {
server {
location / {
root html ;
index index. html index.htm;
location ~ i.(gifljpgljepgl png l bmp l ico)$ { #加入新的location,以圖片作為快取物件
root html ;
expires ld; #指定快取時間,1天
}
.....
}
}
nginx -t
systemctl restart nginx
#上傳rabbit.jpg圖片、修改站點檔案
cd /usr/ local/ nginx/ html
vim index.html
14 <h1>welcome to nginx</ h1>
15 <img src="rabbit.jpg" / > #插入識別圖片
4.日志分割
vim /opt/fenge.sh
bash
#!/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 -rf
給腳本增加可執行權限
chmod +x fenge.sh
周期任務定時執行
crontab -e
0 1 * * * /opt/fenge.sh
★★擴展小知識★★
在linux作業系統中,每個檔案都有很多的時間引數,其中有三個比較主要,分別是ctime , atime , mtime在windows下一個檔案有三種時間屬性:
1>創建時間
2>修改時間
3>訪問時間
相似的在Linux下一個檔案也有三種時間屬性:
( 與wincdows不同的是1inux沒有創建時間,而多了個訪問時間)
1>訪問時間(access time簡寫為atime)
2>修改時間(modify tinme 簡寫為mtime )
.3>狀態修改時間(change time 簡寫為ctime)
Linux中三種時間的簡單介紹:
atimc: (acccss timc)顯示的是檔案中的資料【最后被訪問的時間】,比如系統的行程直接使用或通過一些命令和腳本間接使用,(執行一些可執行檔案或卿本)
mtime: (modify time)顯示的是檔案內容被修改的最后時間,比如用vi編輯、echo >> > 、sed -i時就會被改變,(也就是Block的內容>
ctime: (change time)顯示的是檔案的權限、擁有者、所屬的組、鏈接數發生改變時的時間,當然當內容改變時也會隨之改變(即inode內容發生改變和Block內容發生改變時)
5.連接超時
vim /usr/local/nginx/conf/nginx.conf
http {
keepalive_timeout 100;
client_header_timeout 80; #等待客戶端發送請求頭的超時時間 超時會發送408錯誤
client_body_timeout 80; #設定客戶端發送請求體超時時間
...
}
6.更改行程數
查看cpu核數和行程資訊
cat /proc/cpuinfo | grep -c "physical" 過濾出CPU核數,proc目錄下存放一些設備資訊
ps aux | grep nginx 用此目命令可以看出一個主行程中包含一個子行程
cpu與行程配比關系
###2核cpu,開啟2個行程
worker_processes 2; //修改為核數相同或者2倍
worker_cpu_affinity 01 10;1000
//設定每個行程由不同cpu處理,行程數配為2時為0001、0010、0100、
PS:
01表示啟用第一個CPU內核,10表示啟用第二個CPU內核
worker_cpu_affinity 01 10;表示開啟兩個行程,第一個行程對應著第一個CPU內核,第二個行程對應著第二個CPU內核,
###2核cpu,開啟4個行程
worker_processes 4;
worker_cpu_affinity 01 10 01 10;
PS:開啟了四個行程,它們分別對應著開啟2個CPU內核
###4個cpu,開啟4個行程
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;
ps:0001表示啟用第一個CPU內核,0010表示啟用第二個CPU內核,依此類推
CPU與行程配比關系可在組態檔中修改
vim /usr/local/nginx/conf/nginx.conf

7.網頁壓縮
vim /usr/local/nginx/conf/nginx.conf
gzip on; #開啟gzip壓縮功能
gzip_min_length 1k; #壓縮閾值
gzip_buffers 4 16k; #buffer 大小為4個16k緩沖區大小
gzip_http_version 1.1; #壓縮版本(默認不設定)
gzip_comp_level 6; #壓縮比率,最小為1,處理速度快,傳輸速度慢,9最大壓縮比,處理速度慢,傳輸速度快(建議5-6)
gzip_types text/plain application/x-javascript text/css image/jpg image/jpeg image/png image/gif application/xml text/javascript application/x-httpd-php application/javascript application/json;
gzip_disable "MSIE [1-6]\."; #配置禁用gzip條件,支持正則,表示ie6以下不啟用gzip
gzip_vary on; #支持前端快取服務器存盤壓縮頁面
cd /usr/local/nginx/html/
vim index.html
<h1>Welcome to nginx!</h1>
<img src="cat.jpg"/> #插入
systemctl restart nginx
8.盜鏈與防盜鏈
vi php-fpm.conf
pid = run/php-fpm.pid
pm = dynamic
pm.max_children=20 #static模式下空閑行程數上限,大于下面的值
pm.start_servers = 5 #動態方式下默認開啟的行程數,在最小和最大之間
pm.min_spare_servers = 2 #動態方式下最少空閑行程數
pm.max_spare_servers = 8 #動態方式下最大空閑行程數

防盜鏈

防盜鏈設定引數詳細說明:
valid referers:設定信任的網站,即能參考相應圖片的網站
none :瀏覽器中Referer為空的情況,就是直接在瀏覽器訪問圖片
blocked:referer不為空的情況,但是值被代理或防火墻洗掉了,這些值不以以http://或者https://開頭
后面的網址或者域名:referer中包含相關字串的網址
if陳述句:如果鏈接的來源域名不在valid referers所列出的串列中,sinvalid referer為L,則執行后面的操作,即進行重寫或回傳403頁面
##上傳error.png檔案至/usr/local/nginx/html

9.FPM模塊引數優化
cd /usr/ local/php/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
pid = run/php-fpm.pid
vim /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優化方法
●隱藏軟體版本號
●設定連接超時
●更改程式運行用戶與組
●更改行程數
●配置網頁快取時間
●配置網頁壓縮與防盜鏈
●Nginx日志切割
●fpm引數優化
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/307207.html
標籤:其他
上一篇:架構設計手冊
