欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx防盜鏈與服務(wù)優(yōu)化配置的全過(guò)程

 更新時(shí)間:2022年01月13日 15:08:41   作者:羽織歌  
由于Nginx本身的一些優(yōu)點(diǎn),輕量,開源,易用,越來(lái)越多的公司使用nginx作為自己公司的web應(yīng)用服務(wù)器,下面這篇文章主要給大家介紹了關(guān)于Nginx防盜鏈與服務(wù)優(yōu)化配置的相關(guān)資料,需要的朋友可以參考下

隱藏nginx版本號(hào)

查看版本號(hào)

方法一:curl命令

可以在 CentOS 中使用命令 curl -I http://192.168.80.130 顯示響應(yīng)報(bào)文首部信息。

curl -I http://192.168.80.130

方法二:在網(wǎng)頁(yè)中查看

1. #切換至html目錄,拖一個(gè)圖片進(jìn)去
cd /usr/local/nginx/html
?
2. #在網(wǎng)頁(yè)中查看
http://192.168.59.118/game.png

隱藏版本信息

方法一:修改配置文件

1.#修改配置文件
vim /usr/local/nginx/conf/nginx.conf
 
    ```handlebars
http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;                        #添加,關(guān)閉版本號(hào)
    ......
}
 
2.#重啟nginx
systemctl restart nginx
 
3.#查看版本是否被隱藏
curl -I http://192.168.80.130

 

方法二: 修改源碼文件,重新編譯安裝

可以自定義版本號(hào),可以讓人迷惑

1. #切換至nginx安裝包所在目錄
cd /opt/
2. #停止nginx服務(wù)
systemctl stop nginx.service
3. #切換至安裝目錄
cd nginx-1.12.0/
4. #切換至內(nèi)核目錄
cd src/core/
5. #進(jìn)入配置文件
vim nginx.h
?
#define NGINX_VERSION      "老鐵"
#define NGINX_VER          "666/" NGINX_VERSION
?
6. #切換至文件目錄
cd ../../
?
7. #編譯
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
?
8. #安裝
make && make install -j4
?
9. #將配置文件下的之前關(guān)閉版本信息開啟
vim /usr/local/nginx/conf/nginx.conf
server_tokens on;
?
10. #重啟nginx
systemctl restart nginx
?
11. #查看版本信息
curl -I http://192.168.59.118
?

修改用戶與組

1. #修改配置文件
vim /usr/local/nginx/conf/nginx.conf
?
user  dayu dayu; #取消注釋,修改用戶為 dayu ,組為 dayu
?
2. #創(chuàng)建非登錄用戶
useradd -s /sbin/nologin dayu
?
3. #重啟服務(wù)
systemctl restart nginx
?
4. #查看是否修改成功
ps aux | grep nginx

緩存時(shí)間

當(dāng)nginx將網(wǎng)頁(yè)數(shù)據(jù)返回給客戶端后,可設(shè)置緩存時(shí)間,以方便在日后進(jìn)行相同內(nèi)容的請(qǐng)求時(shí)直接返回,避免重復(fù)請(qǐng)求,加快了訪問(wèn)速度一般針對(duì)靜態(tài)網(wǎng)頁(yè)設(shè)置,對(duì)動(dòng)態(tài)網(wǎng)頁(yè)不設(shè)置緩存時(shí)間。

1. #修改配置文件
vim /usr/local/nginx/conf/nginx.conf
        #添加以下內(nèi)容
        location ~ \.(jpg|png|bmp|gif)$ {
            root   html;
            expires 1d;
        }
?
?
2. #查看是否有語(yǔ)法錯(cuò)誤
nginx -t
?
3. #重啟服務(wù)
systemctl restart nginx.service 
?
4.#在網(wǎng)頁(yè)中查看服務(wù)
http://192.168.80.130/good.jpg
?
 Cahce-Control:max-age=86400 表示緩存時(shí)間是 86400 秒。
也就是緩存一天的時(shí)間,一天之內(nèi)瀏覽器訪問(wèn)這個(gè)頁(yè)面,都是用緩存中的數(shù)據(jù),
而不需要向 Nginx 服務(wù)器重新發(fā)出請(qǐng)求,減少了服務(wù)器的使用帶寬。

日志分割

隨著Nginx運(yùn)行時(shí)間的增加,產(chǎn)生的日志也會(huì)逐漸增加,為了方便掌握Nginx的運(yùn)行狀態(tài),需要時(shí)刻關(guān)注Nginx日志文件。太大的日志文件對(duì)監(jiān)控是一個(gè)大災(zāi)難,不便于分析排查,需要定期的進(jìn)行日志文件的切割。

1. #寫腳本
vim /usr/local/nginx/nginx_log.sh 
?
#!/bin/bash
#this is for divide nginx log
d=$(date +%F -d -1day)                                       #顯示前一天的時(shí)間
path="/var/log/nginx"   
pid="/usr/local/nginx/logs/nginx.pid"
?
[ -d $path ] ||mkdir -p $path                                #創(chuàng)建日志文件目錄
mv /usr/local/nginx/logs/access.log ${path}/www.yxp.com-$d   #移動(dòng)并重命名日志文件
kill -USR1 $(cat $pid)                                       #重建新日志文件
find $path -mtime +30 -delete                                #刪除30天之前的日志文件
?
2. #賦予權(quán)限
chmod +x /usr/local/nginx/nginx_log.sh 
?
3. #計(jì)劃任務(wù)
[root@localhost nginx]#crontab -e
?
30 1 * * * /usr/local/nginx/nginx_log.sh

配置Nginx實(shí)現(xiàn)連接超時(shí)

HTTP有一個(gè)KeepAlive模式,它告訴web服務(wù)器在處理完一個(gè)請(qǐng)求后保持這個(gè)TCP連接的打開狀態(tài)。若接收到來(lái)自同一客戶 端的其它請(qǐng)求,服務(wù)端會(huì)利用這個(gè)未被關(guān)閉的連接,而不需要再建立一個(gè)連接。

KeepAlive在一段時(shí)間內(nèi) 保持打開狀態(tài),它們會(huì)在這段時(shí)間內(nèi)占用資源。占用過(guò)多就會(huì)影響性能。

vim /usr/ local/nginx/conf/nginx. conf
http {
......
keepalive_ timeout 65 180;
client header timeout 80;
client_ body_ timeout 80;
......
}
systemctl restart nginx

keepalive_ timeout

  • 指定KeepAlive的超時(shí)時(shí)間(timeout) 。指定每個(gè)TCP連接最多可以保持多長(zhǎng)時(shí)間,服務(wù)器將會(huì)在這個(gè)時(shí)間后關(guān)閉連接。
  • Nginx的默認(rèn)值是65秒,有些瀏覽器最多只保持60秒,所以可以設(shè)定為60秒。若將它設(shè)置為0,就禁止了keepalive 連接。
  • 第二個(gè)參數(shù)(可選的)指定了在響應(yīng)頭Keep-Alive: timeout=t ime中的time值。這個(gè)頭能夠讓一 些瀏覽器主動(dòng)關(guān)閉連接,這樣服務(wù)器就不必去關(guān)閉連接了。沒(méi)有這個(gè)參數(shù),Nginx 不會(huì)發(fā)送Keep- Alive 響應(yīng)頭。

client_ header_ timeout

客戶端向服務(wù)端發(fā)送-一個(gè)完整的request header 的超時(shí)時(shí)間。如果客戶端在指定時(shí)間內(nèi)沒(méi)有發(fā)送一個(gè)完整的request header, Nginx返回HTTP 408 (Request Timed Out) 。

client_ body_ timeout

指定客戶端與服務(wù)端建立連接后發(fā)送requestbody的超時(shí)時(shí)間。如果客戶端在指定時(shí)間內(nèi)沒(méi)有發(fā)送任何內(nèi)容,Nginx返回HTTP 408 (Request Timed Out )。

更改Nginx運(yùn)行進(jìn)程數(shù)

在高并發(fā)場(chǎng)景,需要啟動(dòng)更多的Nginx進(jìn)程以保證快速響應(yīng),以處理用戶的請(qǐng)求,避免造成阻塞

更改進(jìn)程數(shù)的配置方法

修改配置文件,修改進(jìn)程配置參數(shù)

修改配置文件的worker_processes參數(shù)

  • 一般設(shè)為CPU的個(gè)數(shù)或者核數(shù)
  • 在高并發(fā)的情況下可設(shè)置為CPU個(gè)數(shù)或者核數(shù)的2倍

增加進(jìn)程數(shù),可減少系統(tǒng)的開銷,提升服務(wù)速度

使用ps aux查看運(yùn)行進(jìn)程數(shù)的變化情況

[root@www conf]# cat /proc/cpuinfo | grep -c "physical"
4
[root@www conf]# vi nginx.conf
worker_ processes 4;
[root@www conf]# systemctl restart nginx
[root@www conf]# ps aux | grep nginx

默認(rèn)情況,Nginx的多個(gè)進(jìn)程可能跑在一 個(gè)CPU上,可以分配不同的進(jìn)程給不同的CPU處理,充分利用硬件多核多CPU。
在一臺(tái)4核物理服務(wù)器,進(jìn)行配置,將進(jìn)程進(jìn)行分配。

[root@www conf]# vi nginx.conf
worker_ processes 4;
worker_ cpu_ affinity 0001 0010 0100 1000;
 
1代表CPU的位置

配置Nginx實(shí)現(xiàn)網(wǎng)頁(yè)優(yōu)化壓縮功能

  • Nginx的ngx_http_ gzip_module壓縮模塊提供對(duì)文件內(nèi)容壓縮的功能
  • 允許Nginx服務(wù)器將輸出內(nèi)容在發(fā)送客戶端之前進(jìn)行壓縮,以節(jié)約網(wǎng)站帶寬,提升用戶的訪問(wèn)體驗(yàn),默認(rèn)已經(jīng)安裝
  • 可在配置文件中加入相應(yīng)的壓縮功能參數(shù)對(duì)壓縮性能進(jìn)行優(yōu)化

壓縮功能參數(shù)

1. #修改配置文件
   gzip on;                          #取消注釋,開啟gzip壓縮功能
   gzip_min_length 1k;              #最小壓縮文件大小
   gzip_buffers 4 16k;              #壓縮緩沖區(qū),大小為4個(gè)16k緩沖區(qū)
   gzip_http_version 1.1;           #壓縮版本(默認(rèn)1.1,前端如果是squid2.5請(qǐng)使用1.0)
   gzip_comp_level 6;               #壓縮比率
   gzip_vary on;                    #支持前端緩存服務(wù)器存儲(chǔ)壓縮頁(yè)面
   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;       #壓縮類型,表示哪些網(wǎng)頁(yè)文檔啟用壓縮功能
?
2. #重啟服務(wù)
systemctl restart nginx.service 
?
?
3. #網(wǎng)頁(yè)查看
http://192.168.59.118/game.png

配置防盜鏈

在企業(yè)網(wǎng)站服務(wù)中,一般都要配置防盜鏈功能,以避免網(wǎng)站內(nèi)容被非法盜用,造成經(jīng)濟(jì)損失,也避免了不必要的帶寬浪費(fèi)。

Nginx 的防盜鏈功能也非常強(qiáng)大,在默認(rèn)情況下,只需要進(jìn)行很簡(jiǎn)單的配置,即可實(shí)現(xiàn)防盜鏈處理。

vim /usr/ local/nginx/conf/nginx. conf
http {
......
   server {
     ......
 
    location ~* \. (jpglgiflswf)$ {
 
      valid_ referers none blocked * . kgc. com kgc . com;
 
        if ( $invalid referer ) {
 
        rewrite ^/ http: I /www. kgc. com/error。pngi
 
           #return 403;
 
         }
 
      }
 
  ......
 
   }
}

~* \. (jpgIgifIswf)$ :這段正則表達(dá)式表示匹配不區(qū)分大小寫,以.jpg或.gif 或.swf結(jié)尾的文件:
 
valid_ referers :設(shè)置信任的網(wǎng)站,可以正常使用圖片:
 
none:允許沒(méi)有http_refer的請(qǐng)求訪問(wèn)資源(根據(jù)Referer的定義,它的作用是指示一個(gè)請(qǐng)求是從哪里鏈接過(guò)來(lái)的,如果直接在瀏覽器的地址欄中輸入一個(gè)資源的URL地址,那么這種請(qǐng)求是不會(huì)包含Referer 字段的),如http:/ /www.dayu.com/ game.jpg
 
我們使用http://www. dayu.com訪問(wèn)顯示的圖片,可以理解成http://www. dayu.com/game.jpg這個(gè)請(qǐng)求是從http://www. dayu.com這個(gè)鏈接過(guò)來(lái)的。
 
blocked: 允許不是http://開頭的, 不帶協(xié)議的請(qǐng)求訪問(wèn)資源;
 
*. dayu. com: 只允許來(lái)自指定域名的請(qǐng)求訪問(wèn)資源,如http://www. dayu.com
 
if語(yǔ)句:如果鏈接的來(lái)源域名不在valid_ referers所列出的列表中,$invalid_ referer為true, 則執(zhí)行后面的操作,即進(jìn)行重寫或返回403 頁(yè)面。

第二臺(tái)機(jī)器配置內(nèi)容:

 現(xiàn)在還是可以正常顯示的

現(xiàn)在防盜圖出現(xiàn)

補(bǔ)充:面試題:用過(guò)哪些nginx的模塊和做過(guò)哪些優(yōu)化 

gzip       ### 網(wǎng)站數(shù)據(jù)壓縮
rewrite       ### 地址重寫
stub_ status     ###  統(tǒng)計(jì)nginx服務(wù)狀態(tài)
ssl 支持https,      ### 得先用openss1或者TLS工具生成相關(guān)證書和私鑰文件。再在ssl模塊配置中調(diào)用證書和私鑰
upstream      ### 使用nginx做反向代理web群集,定義群集服務(wù)器池
stream       ### 用于定義4層反向代理的
auth_ basic     ### 用戶認(rèn)證
fastcgi        ### 轉(zhuǎn)發(fā)請(qǐng)求給php
--with-模塊名       ### 開啟模塊
--without-模塊名     ### 禁用模塊
 
隱藏版本號(hào) 、壓縮、緩存、防盜鏈、連續(xù)保持、優(yōu)化工作進(jìn)程和進(jìn)程連接數(shù)、日志分割、反向代理 

總結(jié)

到此這篇關(guān)于Nginx防盜鏈與服務(wù)優(yōu)化配置的文章就介紹到這了,更多相關(guān)Nginx防盜鏈與服務(wù)優(yōu)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx實(shí)現(xiàn)負(fù)載均衡的項(xiàng)目實(shí)踐

    Nginx實(shí)現(xiàn)負(fù)載均衡的項(xiàng)目實(shí)踐

    在我們實(shí)際生產(chǎn)中,一臺(tái)服務(wù)器的處理能力、存儲(chǔ)空間是有限的,這時(shí)候就需要負(fù)載均衡,本文詳細(xì)的介紹了Nginx實(shí)現(xiàn)負(fù)載均衡的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-03-03
  • Nginx四層負(fù)載均衡的實(shí)現(xiàn)示例

    Nginx四層負(fù)載均衡的實(shí)現(xiàn)示例

    Nginx?不支持傳統(tǒng)的四層負(fù)載均衡,但可以通過(guò)stream模塊配合TCP實(shí)現(xiàn)類似的功能,本文主要介紹了Nginx四層負(fù)載均衡的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • Python的Bottle框架基本知識(shí)總結(jié)

    Python的Bottle框架基本知識(shí)總結(jié)

    這篇文章主要介紹了Python的Bottle框架基本知識(shí)總結(jié),本文翻譯自Bottle官方開發(fā)文檔,需要的朋友可以參考下
    2015-05-05
  • Nginx服務(wù)器搭建反向代理全攻略

    Nginx服務(wù)器搭建反向代理全攻略

    這篇文章主要介紹了Nginx服務(wù)器搭建反向代理全攻略,強(qiáng)大的反向代理功能也是人們選擇使用Nginx的主要原因之一,需要的朋友可以參考下
    2015-08-08
  • nginx location匹配實(shí)例詳解

    nginx location匹配實(shí)例詳解

    這篇文章主要介紹了nginx location匹配實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • nginx前端部署后,訪問(wèn)不到同一臺(tái)機(jī)器的后端問(wèn)題

    nginx前端部署后,訪問(wèn)不到同一臺(tái)機(jī)器的后端問(wèn)題

    這篇文章主要介紹了nginx前端部署后,訪問(wèn)不到同一臺(tái)機(jī)器的后端問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 定期刪除OpenResty/Nginx大日志文件的方法

    定期刪除OpenResty/Nginx大日志文件的方法

    這篇文章主要介紹了定期刪除OpenResty/Nginx大日志文件的方法,文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • nginx如何設(shè)置服務(wù)器響應(yīng)時(shí)間長(zhǎng)短

    nginx如何設(shè)置服務(wù)器響應(yīng)時(shí)間長(zhǎng)短

    本文主要介紹了nginx如何設(shè)置服務(wù)器響應(yīng)時(shí)間長(zhǎng)短,主要介紹了兩種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Nginx日志分割實(shí)戰(zhàn)

    Nginx日志分割實(shí)戰(zhàn)

    Nginx默認(rèn)沒(méi)有提供對(duì)日志文件的分割功能,本文主要介紹了Nginx日志分割實(shí)戰(zhàn),分割Nginx日志的方法有很多,這里推薦利用Logrotate來(lái)完成,感興趣的可以了解一下
    2024-03-03
  • nginx常用命令放入shell腳本詳解

    nginx常用命令放入shell腳本詳解

    這篇文章主要介紹了nginx常用命令放入shell腳本詳解,文章講解的很清晰,有感興趣的同學(xué)可以研究下
    2021-02-02

最新評(píng)論