首先在CentOS7上安裝好nginx服務以後,能夠查看當前的nginx版本信息:html
[root@localhost init.d]# curl -I http://192.168.234.174 //查看當前版本信息 HTTP/1.1 200 OK Server: nginx/1.12.0 //當前的nginx版本信息 Date: Sat, 30 Jun 2018 06:23:15 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Sat, 30 Jun 2018 06:17:15 GMT Connection: keep-alive ETag: "5b37206b-264" Accept-Ranges: bytes
爲了不版本信息泄露,從而致使沒必要要的麻煩,下面介紹兩種隱藏版本信息的方法:nginx
修改nginx的主配置文件數據庫
[root@localhost init.d]# vim /usr/local/nginx/conf/nginx.conf ..... 省略 http { include mime.types; default_type application/octet-stream; server_tokens off; //添加關閉版本顯示
從新加載nginx的配置,而且再次查看版本信息vim
[root@localhost init.d]# service nginx reload //從新加載nginx的配置文件 [root@localhost init.d]# curl -I http://192.168.234.174 HTTP/1.1 200 OK Server: nginx //這裏能夠看到當前的版本信息已經被隱藏起來了 Date: Sat, 30 Jun 2018 06:35:14 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Sat, 30 Jun 2018 06:17:15 GMT Connection: keep-alive ETag: "5b37206b-264" Accept-Ranges: bytes
首先修改nginx的源代碼,使別人誤認爲咱們使用的是別的版本緩存
[root@localhost init.d]# vim /opt/nginx-1.12.0/src/core/nginx.h //修改源代碼包 ... ...省略 #define nginx_version 1012000 #define NGINX_VERSION "1.12.0" //修改成1.1.1
而後進行編譯安裝bash
[root@localhost init.d]# cd /opt/nginx-1.12.0/ [root@localhost nginx-1.12.0]# ./configure \ > --prefix=/usr/local/nginx \ > --user=nginx \ > --group=nginx \ > --with-http_stub_status_module //編譯安裝 [root@localhost nginx-1.12.0]# make && make install [root@localhost conf]# vim nginx.conf http { include mime.types; default_type application/octet-stream; server_tokens on; //開啓顯示版本信息 [root@localhost conf]# service nginx stop [root@localhost conf]# service nginx start //從新啓動nginx服務 [root@localhost conf]# curl -I http://192.168.234.174 HTTP/1.1 200 OK Server: nginx/1.1.1 //能夠看到nginx的版本信息就被篡改了 Date: Sat, 30 Jun 2018 07:03:56 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Sat, 30 Jun 2018 06:17:15 GMT Connection: keep-alive ETag: "5b37206b-264" Accept-Ranges: bytes
[root@localhost conf]# vim /usr/local/nginx/conf/nginx.conf #user nobody; //nobody修改成nginx nginx;
[root@localhost conf]# vim /usr/local/nginx/conf/nginx.conf ... ... 省略 location / { root html; index index.html index.htm; } //在下面添加 location ~\.(gif|jpg|jepg|png|bmp|ico)$ { root html; expires 1d; } [root@localhost conf]# cd /usr/local/nginx/html/ [root@localhost html]# cp /abc/Apache/ai.jpg /usr/local/nginx/html/ //複製一張圖片到html站點的目錄下 [root@localhost html]# service nginx stop [root@localhost html]# service nginx start //重啓nginx服務
而後此時使用一臺安裝了fiddler工具的win7客戶機去訪問nginx服務器服務器
而後就能夠看到這裏圖片的緩存時間已經被修改成一天了app
[root@localhost ~]# 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 #將30天以前的日誌文件刪除 [root@localhost opt]# chmod +x fenge.sh //給與日誌分割腳本一個執行權限 [root@localhost opt]# ./fenge.sh //執行腳本 [root@localhost opt]# cd /var/log/nginx/ //查看nginx的日誌文件 [root@localhost nginx]# ls test.com-access.log-20180629 //這裏就會產生一個前一天的日誌文件
這裏還能夠添加爲週期性計劃任務curl
[root@localhost nginx]# crontab -e 0 1 * * * /opt/fenge.sh //這樣日誌分割任務就會週期性的生成,就不須要咱們天天都手動執行一遍腳本了
[root@localhost nginx]# vim /usr/local/nginx/conf/nginx.conf ... ... 省略 #keepalive_timeout 0; keepalive_timeout 65; //刪除此行,並在下面添加 keepalive_timeout 65 180; client_header_timeout 80; client_body_timeout 80; [root@localhost nginx]# nginx -t //檢查語法 [root@localhost nginx]# service nginx stop [root@localhost nginx]# service nginx start //重啓nginxfuwu
而後此時一樣使用裝有一臺安裝了fiddler工具的win7客戶機去訪問nginx服務器ide
首先在進行防盜鏈配置時,咱們要先準備兩臺win7客戶機(網卡模式是NAT,IP地址自動獲取),一臺(win7)進行盜鏈操做,另外一臺(win7-1)作訪問端
開始進行盜用連接配置,首先盜鏈端(win7)開啓IIS服務,而且寫入一個首頁內容
<html> <head></head> <body> <h1>this is test!!!</h1> //首頁內容 <img src="http://www.benet.com/game.jpg"> //進行盜鏈的網站和圖片 </body> </html>
而後在CentOS7上安裝DNS服務,而且修改配置
[root@localhost nginx]# yum install bind -y [root@localhost nginx]# vim /etc/named.conf //修改主配置文件 listen-on port 53 { 127.0.0.1; }; //127.0.0.1修改成any allow-query { localhost; }; //localhost修改成any [root@localhost nginx]# vim /etc/named.rfc1912.zones //修改區域配置文件 //添加下面的配置 zone "benet.com" IN { type master; file "benet.com.zone"; allow-update { none; }; }; zone "test.com" IN { type master; file "test.com.zone"; allow-update { none; }; }; [root@localhost nginx]# cd /var/named/ [root@localhost named]# cp -p named.localhost benet.com.zone [root@localhost named]# vim benet.com.zone //修改區域數據庫文件 刪除末行,添加 www IN A 192.168.234.174 //解析指向nginx服務器的IP [root@bogon named]# cp -p benet.com.zone test.com.zone [root@localhost named]# vim test.com.zone 修改末行的www 後的解析地址,指向盜鏈服務器的IP,即 www IN A 192.168.234.180 //這裏是win7的IP
這裏盜鏈的操做就完成了,咱們能夠看下效果
訪問www.test.com
訪問www.benet.com
接下來配置防盜鏈配置
[root@bogon html]# vim /usr/local/nginx/conf/nginx.conf ... ...省略 添加// location ~*\.(jpg|gif|swf)$ { valid_referers none blocked *.benet.com benet.com; if ( $invalid_referer ) { rewrite ^/ http://www.benet.com/error.png; } } [root@bogon named]# cd /usr/local/nginx/html/ [root@bogon html]# cp /abc/LNMP/error.png ./ //添加一張重定向的圖片 [root@bogon html]# service nginx stop [root@bogon html]# service nginx start //重啓nginx服務
防盜鏈操做完成後,咱們在來使用win7-1客戶機訪問查看效果(訪問前先清空緩存):
訪問www.test.com
訪問www.benet.com
這樣防盜鏈就完成了。
以上就是CentOS7上nginx的全部優化配置了,請各位看官多多點評與點贊!!!