Nginx應用場景與優化

1、Nginx的應用場景

a)、靜態服務器(圖片、視頻服務),併發可達1-3W,另一個是lighttpd

    支撐的文件類型Htmljscssflv

 b)、動態服務(Nginx+fastcgi的方式運行PHPJSP),併發500-1500

     Apache+PHPlighttpd+fastcgi php

 c)、負載均衡(反向代理),日PV2KW以下,可以直接用Nginx做代理,

如:haproxyF5A10

 d)、緩存服務(如squidvarnish

2、Nginx優化

1)、更改源碼隱藏軟件名稱(在編譯安裝前完成,否則要重新編譯安裝

2)、隱藏nginx header版本號

3)、更改nginx默認用戶及用戶組

4)、配置nginx worker進程個數(一般與CPU核數相當)

5)、根據CPU核數進行nginx進程優化,使進程均分到每一個CPU

6)、選用epoll模型

7)、調整Nginx worker單個進程允許的客戶端最大連接數

8)、配置Nginx worker進程最大打開文件數

9)、開啓高效的文件傳輸模式

10)、設置連接超時時間

11)、上傳文件大小設置(動態應用)

12)fastcgi調優(配合PHP引擎動態服務)

13)、配置nginx gzip壓縮功能

14)、配置Nginx expires緩存功能

15)Nginx日誌相關優化與安全(日誌輪詢與切割)

16)Nginx站點目錄及文件URL訪問控制(防止惡意解析)

17)、防止惡意解析訪問企業網站

18)Nginx圖片及目錄防盜鏈(referer

19)Nginx錯誤頁面的優雅顯示

20)Nginx防爬蟲優化(robots.txt文件:爬蟲協議)

21)、限制HTTP請求方法

22)、防DDOS***

23)、使用CDN爲網站內容加速

24)Nginx程序架構優化

25)、使用普通用戶啓動Nginx(監牢模式)—配置nginx多實例(啓動服務加“-c”指定配置文件)

 

配置文件:nginx.conf格式

 main                                      #主模塊  

 events {...                                #引擎模塊

 } 

 http { ...                                   #協議模塊      

       server { .....                           #服務模塊(server模塊可以作獨立虛擬主機)                  

                 location  [dir or flie ...]  { ...    #對象模塊(具體服務起作用的模塊)

                 }

             }

        include      dir/files                   #可以獨立虛擬主機

  }

#查看當編譯nginx服務器時哪個模塊能開戶或關閉

./configure --help | less


#只允許我們的域名的訪問

if ($host !~ ^(nixcraft.in|www.nixcraft.in|images.nixcraft.in)$ ) {

return 444;

}


# nginx重寫規則,過濾某些URL

if ($uri ~* ".*(admin){0}.*product_id=(\d+)$") {

        set $id $2;

        rewrite ^/([^?]*) /product-$id.html? permanent;

}


#限制可用的請求方法(允許GET,HEAD和POST方法)

if ($request_method !~ ^(GET|HEAD|POST)$ ) {

return 444;

}


#如何拒絕一些User-Agents

if ($http_user_agent ~* LWP::Simple|BBBike|wget) {

return 403;

}

如:阻止Soso和有道的機器人

if ($http_user_agent ~* Sosospider|YodaoBot) {

return 403;

}


#如何防止圖片盜鏈

location /images/ {

valid_referers none blocked www.example.com example.com;

if ($invalid_referer) {

return   403;

}

}

如:重定向並顯示指定圖片

if ($invalid_referer) {

rewrite ^/images/uploads.*\.(gif|jpg|jpeg|png)$ http://www.examples.com/banned.jpg last

}


#目錄限制

location /docs/ {

deny    192.168.1.1;</p>

allow   192.168.1.0/24;

deny    all;

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章