Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

[TOC]html

文章目錄

1、配置Nginx隱藏版本號

1.一、修改配置文件法

1.二、修改源碼法

2、修改Nginx用戶與組

2.一、修改配置文件指定用戶與組

3、配置Nginx網頁緩存時間

4、配置日誌分割

5、實現鏈接超時

nginx的安裝已經提早配置好了,須要的能夠參考個人博客,連接爲:Nginx 的配置

1、配置Nginx隱藏版本號

在生產環境中,須要隱藏Nginx的版本號,以免安全漏洞的泄漏

查看方法

使用fiddler工具在Windows客戶端查看Nginx版本號

在CentOS系統中使用"curl -I 網址」命令查看

Nginx隱藏版本號的方法

修改配置文件法

修改源碼法

1.一、修改配置文件法

一、先查看版本基本信息

curl -I http://本身的IP地址

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

二、Nginx的配置文件添加:server_tokens 選項的值設置爲off

vim /usr/local/nginx/conf/nginx.conf

http {
     include        mime.types;
     default_type   application/octet-stream;
#下面添加一段,關閉版本顯示      
      server_tokens off;

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

三、重啓服務

//先關閉服務,再開啓服務
service nginx stop
service nginx start

四、再用 curl 命令查看版本

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

1.二、修改源碼法

Nginx 源碼文件 /pot/nginx-1.12.0/src/core/nginx.h

包含了版本信息,能夠隨意設置

從新編譯安裝,隱藏版本信息

一、修改版本號

#先把剛纔添加的那段話的 off(關閉),改爲 on(開啓)
vim /usr/local/nginx/conf/nginx.conf

cd /opt/nginx-1.12.2/src/core/

vim /opt/ningx-1.12.2/src/core/nginx.h

define nginx_version    1012002
define NGINX_VERSION    "1.1.1"     //自定義一個版本號
define NGINX_VER    "nginx/" NGINX_VERSION

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

二、配置編譯

cd nginx-1.12.2/

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make && make install

三、啓動服務,查看版本

#在啓動服務
service nginx stop
service nginx start

#在查看,就會發現有一個咱們本身僞造的一個版本號
curl -I http://IP地址/

Sercer: nginx/1.1.1  #僞造的版本號

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

注意:若是版本號沒有僞形成功,也不顯示,有多是配置文件中關閉了版本顯示。解決:刪除server_tokens off;

2、修改Nginx用戶與組

Nginx運行時進程須要有用戶與組的支持,以實現對網站文件讀取時進行訪問控制

Nginx默認使用nobody用戶帳號與組帳號,通常也要進行修改

修改的方法:

編譯安裝時指定用戶與組

修改配置文件指定用戶與組

2.一、修改配置文件指定用戶與組

vim /usr/local/nginx/conf/nginx.conf

#user  nobody;
//去掉前面註釋符「 # 」,修改 nobody 指定用戶與組 nginx nginx;

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

主進程由root建立 子進程由nginx建立

3、配置Nginx網頁緩存時間

當Nginx將網頁數據返回給客戶端後,可設置緩存的時間,以方便在往後進行相同內容的請求時直接返回,避免重複請求,加快了訪問速度

通常針對靜態網頁設置,對動態網頁不設置緩存時間

可在Windows客戶端中使用fiddler查看網頁緩存時間

設置方法 :

可修改配置文件,在http段、 或者server段、 或者location段加入對特定內容的過時參數

一、複製一張圖片到 nginx 的站點目錄下

#在本身的共享文件中 找到" game.jpg "
mkdir /abc
mount.cifs //192.168.56.1/lamp7 /abc
cd /abc/wl
//個人圖片在wl的包裏
//複製圖片 game.jpg  到站點目錄下
cp /abc/wl/game.jpg /usr/local/nginx/html/
cd /usr/local/nginx/html

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

二、將圖片加入到網頁內容中

#修改
vim index.html

#在 Welcome to nginx 的下面添加一段
<img src="game.jpg"/>

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

三、改nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf
#在 http {}段,添加一個
location ~\.(gif|jepg|jpg|ico|bmp|png)$ {
    root    html;
    expires 1d;
}

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

四、啓動服務

#重啓服務
service nginx restart

五、在win10驗證

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

4、配置日誌分割

隨着Nginx運行時間增長,日誌也會增長。爲了方便掌握Nginx運行狀態,須要時刻關注Nginx日誌文件

太大的日誌文件對監控是一個大災難

按期進行日誌文件的切割

Nginx自身不具有日誌分割處理的功能,但能夠經過Nginx信號控制功能的腳本實現日誌的自動切割,並經過Linux的計劃任務週期性地進行日誌切割

編寫腳本進行日誌切割的思路 :

設置時間變量

設置保存日誌路徑;

將目前的日誌文件進行重命名

刪除時間過長的日誌文件

設置cron任務,按期執行腳本自動進行日誌分割

一、編寫腳本實現分割

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 -USR1 $(cat $pid_path)
find $logs_path -mtime +30 | xargs rm -rf

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

二、執行腳本

chmod +x fenge.sh
./fengs.sh
//能夠把當前時間修改成2019.12.29,(能夠自定義)
date -s 2019-12-29

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

三、設置cron任務,按期執行腳本自動進行日誌分割

執行週期性計劃任務
crontab -e
0 1 * * * /opt/fengs.sh

5、實現鏈接超時

在企業網站中,爲了不同- -個客戶長時間佔用鏈接,

形成資源浪費,可設置相應的鏈接超時參數,實現控制

鏈接訪問時間

使用Fiddler工具查看connection參數

超時參數講解 :

Keepalive_timeout

設置鏈接保持超時時間,通常可只設置該參數,默認爲75秒,可根據網站的狀況設置,或 者關閉,可在http段、server段、 或者location段設置

Client_header_timeout

指定等待客戶端發送請求頭的超時時間

Client_body_timeout

設置請求體讀超時時間

一、修改配置文件

cd /usr/local/nginx/conf  
vim nginx.conf
#在 http {}段 :下面添加

keepalive_timeout    65  180;
client_header_timeout 80;
client_body_timeout 80;

//重啓服務
service nginx restart

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

在win10用fidder驗證。

Nginx服務優化------(隱藏版本+緩存+修改用戶與組+日誌分割+進程超時)

相關文章
相關標籤/搜索