日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx工作原理和优化、漏洞

發(fā)布時間:2023/12/10 Nginx 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx工作原理和优化、漏洞 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. ?Nginx的模塊與工作原理

Nginx由內(nèi)核和模塊組成,其中,內(nèi)核的設(shè)計非常微小和簡潔,完成的工作也非常簡單,僅僅通過查找配置文件將客戶端請求映射到一個location block(location是Nginx配置中的一個指令,用于URL匹配),而在這個location中所配置的每個指令將會啟動不同的模塊去完成相應(yīng)的工作。

Nginx的模塊從結(jié)構(gòu)上分為核心模塊、基礎(chǔ)模塊和第三方模塊:

核心模塊:HTTP模塊、EVENT模塊和MAIL模塊

基礎(chǔ)模塊:HTTP Access模塊、HTTP FastCGI模塊、HTTP Proxy模塊和HTTP Rewrite模塊,

第三方模塊:HTTP Upstream Request Hash模塊、Notice模塊和HTTP Access Key模塊。

用戶根據(jù)自己的需要開發(fā)的模塊都屬于第三方模塊。正是有了這么多模塊的支撐,Nginx的功能才會如此強(qiáng)大。

Nginx的模塊從功能上分為如下三類。

Handlers(處理器模塊)。此類模塊直接處理請求,并進(jìn)行輸出內(nèi)容和修改headers信息等操作。Handlers處理器模塊一般只能有一個。

Filters (過濾器模塊)。此類模塊主要對其他處理器模塊輸出的內(nèi)容進(jìn)行修改操作,最后由Nginx輸出。

Proxies (代理類模塊)。此類模塊是Nginx的HTTP Upstream之類的模塊,這些模塊主要與后端一些服務(wù)比如FastCGI等進(jìn)行交互,實現(xiàn)服務(wù)代理和負(fù)載均衡等功能。

圖1-1展示了Nginx模塊常規(guī)的HTTP請求和響應(yīng)的過程。


? ? ? ? ? ? ? ? ? ? ? ?圖1-1展示了Nginx模塊常規(guī)的HTTP請求和響應(yīng)的過程。

Nginx本身做的工作實際很少,當(dāng)它接到一個HTTP請求時,它僅僅是通過查找配置文件將此次請求映射到一個location block,而此location中所配置的各個指令則會啟動不同的模塊去完成工作,因此模塊可以看做Nginx真正的勞動工作者。通常一個location中的指令會涉及一個handler模塊和多個filter模塊(當(dāng)然,多個location可以復(fù)用同一個模塊)。handler模塊負(fù)責(zé)處理請求,完成響應(yīng)內(nèi)容的生成,而filter模塊對響應(yīng)內(nèi)容進(jìn)行處理。

Nginx的模塊直接被編譯進(jìn)Nginx,因此屬于靜態(tài)編譯方式。啟動Nginx后,Nginx的模塊被自動加載,不像Apache,首先將模塊編譯為一個so文件,然后在配置文件中指定是否進(jìn)行加載。在解析配置文件時,Nginx的每個模塊都有可能去處理某個請求,但是同一個處理請求只能由一個模塊來完成。?

在工作方式上,Nginx分為單工作進(jìn)程和多工作進(jìn)程兩種模式。在單工作進(jìn)程模式下,除主進(jìn)程外,還有一個工作進(jìn)程,工作進(jìn)程是單線程的;在多工作進(jìn)程模式下,每個工作進(jìn)程包含多個線程。Nginx默認(rèn)為單工作進(jìn)程模式。

2. ?Nginx+FastCGI運行原理

1、什么是 FastCGI

FastCGI是一個可伸縮地、高速地在HTTP server和動態(tài)腳本語言間通信的接口。多數(shù)流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等。同時,FastCGI也被許多腳本語言支持,其中就有PHP。

FastCGI是從CGI發(fā)展改進(jìn)而來的。傳統(tǒng)CGI接口方式的主要缺點是性能很差,因為每次HTTP服務(wù)器遇到動態(tài)程序時都需要重新啟動腳本解析器來執(zhí)行解析,然后將結(jié)果返回給HTTP服務(wù)器。這在處理高并發(fā)訪問時幾乎是不可用的。另外傳統(tǒng)的CGI接口方式安全性也很差,現(xiàn)在已經(jīng)很少使用了。

FastCGI接口方式采用C/S結(jié)構(gòu),可以將HTTP服務(wù)器和腳本解析服務(wù)器分開,同時在腳本解析服務(wù)器上啟動一個或者多個腳本解析守護(hù)進(jìn)程。當(dāng)HTTP服務(wù)器每次遇到動態(tài)程序時,可以將其直接交付給FastCGI進(jìn)程來執(zhí)行,然后將得到的結(jié)果返回給瀏覽器。這種方式可以讓HTTP服務(wù)器專一地處理靜態(tài)請求或者將動態(tài)腳本服務(wù)器的結(jié)果返回給客戶端,這在很大程度上提高了整個應(yīng)用系統(tǒng)的性能。

2、Nginx+FastCGI運行原理

Nginx不支持對外部程序的直接調(diào)用或者解析,所有的外部程序(包括PHP)必須通過FastCGI接口來調(diào)用。FastCGI接口在Linux下是socket(這個socket可以是文件socket,也可以是ip socket)。

wrapper:為了調(diào)用CGI程序,還需要一個FastCGI的wrapper(wrapper可以理解為用于啟動另一個程序的程序),這個wrapper綁定在某個固定socket上,如端口或者文件socket。當(dāng)Nginx將CGI請求發(fā)送給這個socket的時候,通過FastCGI接口,wrapper接收到請求,然后Fork(派生)出一個新的線程,這個線程調(diào)用解釋器或者外部程序處理腳本并讀取返回數(shù)據(jù);接著,wrapper再將返回的數(shù)據(jù)通過FastCGI接口,沿著固定的socket傳遞給Nginx;最后,Nginx將返回的數(shù)據(jù)(html頁面或者圖片)發(fā)送給客戶端。這就是Nginx+FastCGI的整個運作過程,如圖1-3所示。

? ? ? ?


? ? ? 所以,我們首先需要一個wrapper,這個wrapper需要完成的工作:

  • 通過調(diào)用fastcgi(庫)的函數(shù)通過socket和ningx通信(讀寫socket是fastcgi內(nèi)部實現(xiàn)的功能,對wrapper是非透明的)
  • 調(diào)度thread,進(jìn)行fork和kill
  • 和application(php)進(jìn)行通信
  • 3、spawn-fcgi與PHP-FPM

    ? ? ? ?FastCGI接口方式在腳本解析服務(wù)器上啟動一個或者多個守護(hù)進(jìn)程對動態(tài)腳本進(jìn)行解析,這些進(jìn)程就是FastCGI進(jìn)程管理器,或者稱為FastCGI引擎。 spawn-fcgi與PHP-FPM就是支持PHP的兩個FastCGI進(jìn)程管理器。因此HTTPServer完全解放出來,可以更好地進(jìn)行響應(yīng)和并發(fā)處理。
    ? ? ? ?spawn-fcgi與PHP-FPM的異同:
    ? ? ? ?1)spawn-fcgi是HTTP服務(wù)器lighttpd的一部分,目前已經(jīng)獨立成為一個項目,一般與lighttpd配合使用來支持PHP。但是ligttpd的spwan-fcgi在高并發(fā)訪問的時候,會出現(xiàn)內(nèi)存泄漏甚至自動重啟FastCGI的問題。即:PHP腳本處理器當(dāng)機(jī),這個時候如果用戶訪問的話,可能就會出現(xiàn)白頁(即PHP不能被解析或者出錯)。 2)Nginx是個輕量級的HTTP server,必須借助第三方的FastCGI處理器才可以對PHP進(jìn)行解析,因此其實這樣看來nginx是非常靈活的,它可以和任何第三方提供解析的處理器實現(xiàn)連接從而實現(xiàn)對PHP的解析(在nginx.conf中很容易設(shè)置)。nginx也可以使用spwan-fcgi(需要一同安裝lighttpd,但是需要為nginx避開端口,一些較早的blog有這方面安裝的教程),但是由于spawn-fcgi具有上面所述的用戶逐漸發(fā)現(xiàn)的缺陷,現(xiàn)在慢慢減少用nginx+spawn-fcgi組合了。

    ? ? ? ?由于spawn-fcgi的缺陷,現(xiàn)在出現(xiàn)了第三方(目前已經(jīng)加入到PHP core中)的PHP的FastCGI處理器PHP-FPM,它和spawn-fcgi比較起來有如下優(yōu)點:

    ? ? ? ?由于它是作為PHP的patch補丁來開發(fā)的,安裝的時候需要和php源碼一起編譯,也就是說編譯到php core中了,因此在性能方面要優(yōu)秀一些;

    同時它在處理高并發(fā)方面也優(yōu)于spawn-fcgi,至少不會自動重啟fastcgi處理器。因此,推薦使用Nginx+PHP/PHP-FPM這個組合對PHP進(jìn)行解析。

    相對Spawn-FCGI,PHP-FPM在CPU和內(nèi)存方面的控制都更勝一籌,而且前者很容易崩潰,必須用crontab進(jìn)行監(jiān)控,而PHP-FPM則沒有這種煩惱。
    ? ? ? ?FastCGI 的主要優(yōu)點是把動態(tài)語言和HTTP Server分離開來,所以Nginx與PHP/PHP-FPM經(jīng)常被部署在不同的服務(wù)器上,以分擔(dān)前端Nginx服務(wù)器的壓力,使Nginx專一處理靜態(tài)請求和轉(zhuǎn)發(fā)動態(tài)請求,而PHP/PHP-FPM服務(wù)器專一解析PHP動態(tài)請求。

    4、Nginx+PHP-FPM

    ? ? ? PHP-FPM是管理FastCGI的一個管理器,它作為PHP的插件存在,在安裝PHP要想使用PHP-FPM時在老php的老版本(php5.3.3之前)就需要把PHP-FPM以補丁的形式安裝到PHP中,而且PHP要與PHP-FPM版本一致,這是必須的)

      ?PHP-FPM其實是PHP源代碼的一個補丁,旨在將FastCGI進(jìn)程管理整合進(jìn)PHP包中。必須將它patch到你的PHP源代碼中,在編譯安裝PHP后才可以使用。
      ?PHP5.3.3已經(jīng)集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP進(jìn)程管理方式,可以有效控制內(nèi)存和進(jìn)程、可以平滑重載PHP配置,比spawn-fcgi具有更多優(yōu)點,所以被PHP官方收錄了。在./configure的時候帶 –enable-fpm參數(shù)即可開啟PHP-FPM。

    ? ? ? fastcgi已經(jīng)在php5.3.5的core中了,不必在configure時添加 --enable-fastcgi了。老版本如php5.2的需要加此項。

    ? ? ? 當(dāng)我們安裝Nginx和PHP-FPM完后,配置信息:

    PHP-FPM的默認(rèn)配置php-fpm.conf listen_address ?127.0.0.1:9000 #這個表示php的fastcgi進(jìn)程監(jiān)聽的ip地址以及端口 start_servers min_spare_servers max_spare_servers
    ?Nginx配置運行php:?編輯nginx.conf加入如下語句: ? ? ??location ~ \.php$ {
    ? ? ? ? ? ? root html;???
    ? ? ? ? ? ? fastcgi_pass 127.0.0.1:9000;?指定了fastcgi進(jìn)程偵聽的端口,nginx就是通過這里與php交互的
    ? ? ? ? ? ? fastcgi_index index.php;
    ? ? ? ? ? ? include fastcgi_params;
    ? ? ? ? ? ? ?fastcgi_param SCRIPT_FILENAME?? /usr/local/nginx/html$fastcgi_script_name;
    ? ? }
    ? ? Nginx通過location指令,將所有以php為后綴的文件都交給127.0.0.1:9000來處理,而這里的IP地址和端口就是FastCGI進(jìn)程監(jiān)聽的IP地址和端口。 其整體工作流程: 1)、FastCGI進(jìn)程管理器php-fpm自身初始化,啟動主進(jìn)程php-fpm和啟動start_servers個CGI 子進(jìn)程。 主進(jìn)程php-fpm主要是管理fastcgi子進(jìn)程,監(jiān)聽9000端口。 fastcgi子進(jìn)程等待來自Web Server的連接。 2)、當(dāng)客戶端請求到達(dá)Web Server Nginx是時,Nginx通過location指令,將所有以php為后綴的文件都交給127.0.0.1:9000來處理,即Nginx通過location指令,將所有以php為后綴的文件都交給127.0.0.1:9000來處理。 3)FastCGI進(jìn)程管理器PHP-FPM選擇并連接到一個子進(jìn)程CGI解釋器。Web server將CGI環(huán)境變量和標(biāo)準(zhǔn)輸入發(fā)送到FastCGI子進(jìn)程。 4)、FastCGI子進(jìn)程完成處理后將標(biāo)準(zhǔn)輸出和錯誤信息從同一連接返回Web Server。當(dāng)FastCGI子進(jìn)程關(guān)閉連接時,請求便告處理完成。 5)、FastCGI子進(jìn)程接著等待并處理來自FastCGI進(jìn)程管理器(運行在 WebServer中)的下一個連接。

    3. ? Nginx+PHP正確配置

    一般web都做統(tǒng)一入口:把PHP請求都發(fā)送到同一個文件上,然后在此文件里通過解析「REQUEST_URI」實現(xiàn)路由。

    Nginx配置文件分為好多塊,常見的從外到內(nèi)依次是「http」、「server」、「location」等等,缺省的繼承關(guān)系是從外到內(nèi),也就是說內(nèi)層塊會自動獲取外層塊的值作為缺省值。

    例如:

    server {
    ? ? listen 80;
    ? ? server_name foo.com;
    ? ? root /path;

    ? ? location / {
    ? ? ? ? index index.html index.htm index.php;
    ? ? ? ? if (!-e $request_filename) {
    ? ? ? ? ? ? rewrite . /index.php last;
    ? ? ? ? }
    ? ? }
    ? ? location ~ \.php$ {
    ? ? ? ? include fastcgi_params;
    ? ? ? ? fastcgi_param SCRIPT_FILENAME /path$fastcgi_script_name;
    ? ? ? ? fastcgi_pass 127.0.0.1:9000;
    ? ? ? ? fastcgi_index index.php;
    ? ? }
    }

    1) ?不應(yīng)該在location 模塊定義index 一旦未來需要加入新的「location」,必然會出現(xiàn)重復(fù)定義的「index」指令,這是因為多個「location」是平級的關(guān)系,不存在繼承,此時應(yīng)該在「server」里定義「index」,借助繼承關(guān)系,「index」指令在所有的「location」中都能生效。

    2) ? ??使用try_files 接下來看看「if」指令,說它是大家誤解最深的Nginx指令毫不為過:

    if (!-e $request_filename) {

    rewrite . /index.php last;

    }

    很多人喜歡用「if」指令做一系列的檢查,不過這實際上是「try_files」指令的職責(zé):

    try_files $uri $uri/ /index.php;


    除此以外,初學(xué)者往往會認(rèn)為「if」指令是內(nèi)核級的指令,但是實際上它是rewrite模塊的一部分,加上Nginx配置實際上是聲明式的,而非過程式的,所以當(dāng)其和非rewrite模塊的指令混用時,結(jié)果可能會非你所愿。


    3)fastcgi_params」配置文件

    include fastcgi_params;

    Nginx有兩份fastcgi配置文件,分別是「fastcgi_params」和「fastcgi.conf」,它們沒有太大的差異,唯一的區(qū)別是后者比前者多了一行「SCRIPT_FILENAME」的定義:

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;


    注意:$document_root 和 $fastcgi_script_name 之間沒有 /。

    原本Nginx只有「fastcgi_params」,后來發(fā)現(xiàn)很多人在定義「SCRIPT_FILENAME」時使用了硬編碼的方式,于是為了規(guī)范用法便引入了「fastcgi.conf」。


    不過這樣的話就產(chǎn)生一個疑問:為什么一定要引入一個新的配置文件,而不是修改舊的配置文件?這是因為「fastcgi_param」指令是數(shù)組型的,和普通指令相同的是:內(nèi)層替換外層;和普通指令不同的是:當(dāng)在同級多次使用的時候,是新增而不是替換。換句話說,如果在同級定義兩次「SCRIPT_FILENAME」,那么它們都會被發(fā)送到后端,這可能會導(dǎo)致一些潛在的問題,為了避免此類情況,便引入了一個新的配置文件。



    此外,我們還需要考慮一個安全問題:在PHP開啟「cgi.fix_pathinfo」的情況下,PHP可能會把錯誤的文件類型當(dāng)作PHP文件來解析。如果Nginx和PHP安裝在同一臺服務(wù)器上的話,那么最簡單的解決方法是用「try_files」指令做一次過濾:


    try_files $uri =404;

    依照前面的分析,給出一份改良后的版本,是不是比開始的版本清爽了很多:


    server {

    listen 80;

    server_name foo.com;

    root /path;

    index index.html index.htm index.php;

    location / {

    try_files $uri $uri/ /index.php;

    }

    location ~ \.php$ {

    try_files $uri =404;

    include fastcgi.conf;

    fastcgi_pass 127.0.0.1:9000;

    }

    }




    4. ? Nginx的IO模型

    ?????首先nginx支持的事件模型如下(nginx的wiki):

    ?????? Nginx支持如下處理連接的方法(I/O復(fù)用方法),這些方法可以通過use指令指定。

    • select?– 標(biāo)準(zhǔn)方法。 如果當(dāng)前平臺沒有更有效的方法,它是編譯時默認(rèn)的方法。你可以使用配置參數(shù) –with-select_module 和 –without-select_module 來啟用或禁用這個模塊。
    • poll?– 標(biāo)準(zhǔn)方法。 如果當(dāng)前平臺沒有更有效的方法,它是編譯時默認(rèn)的方法。你可以使用配置參數(shù) –with-poll_module 和 –without-poll_module 來啟用或禁用這個模塊。
    • kqueue?– 高效的方法,使用于 FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X. 使用雙處理器的MacOS X系統(tǒng)使用kqueue可能會造成內(nèi)核崩潰。
    • epoll?– 高效的方法,使用于Linux內(nèi)核2.6版本及以后的系統(tǒng)。在某些發(fā)行版本中,如SuSE 8.2, 有讓2.4版本的內(nèi)核支持epoll的補丁。
    • rtsig?– 可執(zhí)行的實時信號,使用于Linux內(nèi)核版本2.2.19以后的系統(tǒng)。默認(rèn)情況下整個系統(tǒng)中不能出現(xiàn)大于1024個POSIX實時(排隊)信號。這種情況 對于高負(fù)載的服務(wù)器來說是低效的;所以有必要通過調(diào)節(jié)內(nèi)核參數(shù) /proc/sys/kernel/rtsig-max 來增加隊列的大小。可是從Linux內(nèi)核版本2.6.6-mm2開始, 這個參數(shù)就不再使用了,并且對于每個進(jìn)程有一個獨立的信號隊列,這個隊列的大小可以用 RLIMIT_SIGPENDING 參數(shù)調(diào)節(jié)。當(dāng)這個隊列過于擁塞,nginx就放棄它并且開始使用 poll 方法來處理連接直到恢復(fù)正常。
    • /dev/poll?– 高效的方法,使用于 Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+.
    • eventport?– 高效的方法,使用于 Solaris 10. 為了防止出現(xiàn)內(nèi)核崩潰的問題, 有必要安裝這個?安全補丁。

    ??????? 在linux下面,只有epoll是高效的方法

    ??????? 下面再來看看epoll到底是如何高效的
    ?????? Epoll是
    Linux內(nèi)核為處理大批量句柄而作了改進(jìn)的poll。 要使用epoll只需要這三個系統(tǒng)調(diào)用:epoll_create(2), epoll_ctl(2), epoll_wait(2)。它是在2.5.44內(nèi)核中被引進(jìn)的(epoll(4) is a new API introduced in Linux kernel 2.5.44),在2.6內(nèi)核中得到廣泛應(yīng)用。

    ??????? epoll的優(yōu)點

    • 支持一個進(jìn)程打開大數(shù)目的socket描述符(FD)

    ??????? select 最不能忍受的是一個進(jìn)程所打開的FD是有一定限制的,由FD_SETSIZE設(shè)置,默認(rèn)值是2048。對于那些需要支持的上萬連接數(shù)目的IM服務(wù)器來說顯 然太少了。這時候你一是可以選擇修改這個宏然后重新編譯內(nèi)核,不過資料也同時指出這樣會帶來網(wǎng)絡(luò)效率的下降,二是可以選擇多進(jìn)程的解決方案(傳統(tǒng)的 Apache方案),不過雖然linux上面創(chuàng)建進(jìn)程的代價比較小,但仍舊是不可忽視的,加上進(jìn)程間數(shù)據(jù)同步遠(yuǎn)比不上線程間同步的高效,所以也不是一種完 美的方案。不過 epoll則沒有這個限制,它所支持的FD上限是最大可以打開文件的數(shù)目,這個數(shù)字一般遠(yuǎn)大于2048,舉個例子,在1GB內(nèi)存的機(jī)器上大約是10萬左 右,具體數(shù)目可以cat /proc/sys/fs/file-max察看,一般來說這個數(shù)目和系統(tǒng)內(nèi)存關(guān)系很大。

    • IO效率不隨FD數(shù)目增加而線性下降

    ???????? 傳統(tǒng)的select/poll另一個致命弱點就是當(dāng)你擁有一個很大的socket集合,不過由于網(wǎng)絡(luò)延時,任一時間只有部分的socket是”活躍”的,但 是select/poll每次調(diào)用都會線性掃描全部的集合,導(dǎo)致效率呈現(xiàn)線性下降。但是epoll不存在這個問題,它只會對”活躍”的socket進(jìn)行操 作—這是因為在內(nèi)核實現(xiàn)中epoll是根據(jù)每個fd上面的callback函數(shù)實現(xiàn)的。那么,只有”活躍”的socket才會主動的去調(diào)用 callback函數(shù),其他idle狀態(tài)socket則不會,在這點上,epoll實現(xiàn)了一個”偽”AIO,因為這時候推動力在os內(nèi)核。在一些 benchmark中,如果所有的socket基本上都是活躍的—比如一個高速LAN環(huán)境,epoll并不比select/poll有什么效率,相 反,如果過多使用epoll_ctl,效率相比還有稍微的下降。但是一旦使用idle connections模擬WAN環(huán)境,epoll的效率就遠(yuǎn)在select/poll之上了。

    • 使用mmap加速內(nèi)核與用戶空間的消息傳遞。

    ??????? 這 點實際上涉及到epoll的具體實現(xiàn)了。無論是select,poll還是epoll都需要內(nèi)核把FD消息通知給用戶空間,如何避免不必要的內(nèi)存拷貝就很 重要,在這點上,epoll是通過內(nèi)核于用戶空間mmap同一塊內(nèi)存實現(xiàn)的。而如果你想我一樣從2.5內(nèi)核就關(guān)注epoll的話,一定不會忘記手工 mmap這一步的。

    • 內(nèi)核微調(diào)

    ???????? 這一點其實不算epoll的優(yōu)點了,而是整個linux平臺的優(yōu)點。也許你可以懷疑linux平臺,但是你無法回避linux平臺賦予你微調(diào)內(nèi)核的能力。比如,內(nèi)核TCP/IP協(xié) 議棧使用內(nèi)存池管理sk_buff結(jié)構(gòu),那么可以在運行時期動態(tài)調(diào)整這個內(nèi)存pool(skb_head_pool)的大小— 通過echo XXXX>/proc/sys/net/core/hot_list_length完成。再比如listen函數(shù)的第2個參數(shù)(TCP完成3次握手 的數(shù)據(jù)包隊列長度),也可以根據(jù)你平臺內(nèi)存大小動態(tài)調(diào)整。更甚至在一個數(shù)據(jù)包面數(shù)目巨大但同時每個數(shù)據(jù)包本身大小卻很小的特殊系統(tǒng)上嘗試最新的NAPI網(wǎng)卡驅(qū)動架構(gòu)。

    ??? (epoll內(nèi)容,參考epoll_互動百科)

    ?

    5. ? Nginx優(yōu)化

    1. 編譯安裝過程優(yōu)化

    1).減小Nginx編譯后的文件大小

    在編譯Nginx時,默認(rèn)以debug模式進(jìn)行,而在debug模式下會插入很多跟蹤和ASSERT之類的信息,編譯完成后,一個Nginx要有好幾兆字節(jié)。而在編譯前取消Nginx的debug模式,編譯完成后Nginx只有幾百千字節(jié)。因此可以在編譯之前,修改相關(guān)源碼,取消debug模式。具體方法如下:

    在Nginx源碼文件被解壓后,找到源碼目錄下的auto/cc/gcc文件,在其中找到如下幾行:

    ?

  • #?debug ?
  • CFLAGS=”$CFLAGS?-g”?
  • 注釋掉或刪掉這兩行,即可取消debug模式。

    2.為特定的CPU指定CPU類型編譯優(yōu)化

    在編譯Nginx時,默認(rèn)的GCC編譯參數(shù)是“-O”,要優(yōu)化GCC編譯,可以使用以下兩個參數(shù):

    ?

  • --with-cc-opt='-O3'?
  • --with-cpu-opt=CPU??#為特定的?CPU?編譯,有效的值包括:
    pentium,?pentiumpro,?pentium3,?#?pentium4,?athlon,?opteron,?amd64,?sparc32,?sparc64,?ppc64?
  • 要確定CPU類型,可以通過如下命令:

    ?

  • [root@localhost?home]#cat?/proc/cpuinfo?|?grep?"model?name"?
  • 2. 利用TCMalloc優(yōu)化Nginx的性能

    TCMalloc的全稱為Thread-Caching Malloc,是谷歌開發(fā)的開源工具google-perftools中的一個成員。與標(biāo)準(zhǔn)的glibc庫的Malloc相比,TCMalloc庫在內(nèi)存分配效率和速度上要高很多,這在很大程度上提高了服務(wù)器在高并發(fā)情況下的性能,從而降低了系統(tǒng)的負(fù)載。下面簡單介紹如何為Nginx添加TCMalloc庫支持。

    要安裝TCMalloc庫,需要安裝libunwind(32位操作系統(tǒng)不需要安裝)和google-perftools兩個軟件包,libunwind庫為基于64位CPU和操作系統(tǒng)的程序提供了基本函數(shù)調(diào)用鏈和函數(shù)調(diào)用寄存器功能。下面介紹利用TCMalloc優(yōu)化Nginx的具體操作過程。

    1).安裝libunwind庫

    可以從http://download.savannah.gnu.org/releases/libunwind下載相應(yīng)的libunwind版本,這里下載的是libunwind-0.99-alpha.tar.gz。安裝過程如下:

    ?

  • [root@localhost?home]#tar?zxvf?libunwind-0.99-alpha.tar.gz ?
  • [root@localhost?home]#?cd?libunwind-0.99-alpha/ ?
  • [root@localhost?libunwind-0.99-alpha]#CFLAGS=-fPIC?./configure ?
  • [root@localhost?libunwind-0.99-alpha]#make?CFLAGS=-fPIC ?
  • [root@localhost?libunwind-0.99-alpha]#make?CFLAGS=-fPIC?install?
  • 2).安裝google-perftools

    可以從http://google-perftools.googlecode.com下載相應(yīng)的google-perftools版本,這里下載的是google-perftools-1.8.tar.gz。安裝過程如下:

    ?

  • [root@localhost?home]#tar?zxvf?google-perftools-1.8.tar.gz ?
  • [root@localhost?home]#cd?google-perftools-1.8/ ?
  • [root@localhost?google-perftools-1.8]#?./configure ?
  • [root@localhost?google-perftools-1.8]#make?&&?make?install ?
  • [root@localhost?google-perftools-1.8]#echo?"/usr/
    local/lib"?
    >?/etc/ld.so.conf.d/usr_local_lib.conf ?
  • [root@localhost?google-perftools-1.8]#?ldconfig?
  • 至此,google-perftools安裝完成。

    3).重新編譯Nginx

    為了使Nginx支持google-perftools,需要在安裝過程中添加“–with-google_perftools_module”選項重新編譯Nginx。安裝代碼如下:

    ?

  • [root@localhostnginx-0.7.65]#./configure?\ ?
  • >--with-google_perftools_module?--with-http_stub_status_module??--prefix=/opt/nginx ?
  • [root@localhost?nginx-0.7.65]#make ?
  • [root@localhost?nginx-0.7.65]#make?install?
  • 到這里Nginx安裝完成。

    4).為google-perftools添加線程目錄

    創(chuàng)建一個線程目錄,這里將文件放在/tmp/tcmalloc下。操作如下:

    ?

  • [root@localhost?home]#mkdir?/tmp/tcmalloc ?
  • [root@localhost?home]#chmod?0777?/tmp/tcmalloc?
  • 5).修改Nginx主配置文件

    修改nginx.conf文件,在pid這行的下面添加如下代碼:

    ?

  • #pid????????logs/nginx.pid; ?
  • google_perftools_profiles?/tmp/tcmalloc;?
  • 接著,重啟Nginx即可完成google-perftools的加載。

    6).驗證運行狀態(tài)

    為了驗證google-perftools已經(jīng)正常加載,可通過如下命令查看:

    ?

  • [root@?localhost?home]#?lsof?-n?|?grep?tcmalloc ?
  • nginx??????2395?nobody???9w??REG????8,8???????0????1599440?/tmp/tcmalloc.2395 ?
  • nginx??????2396?nobody???11w?REG???8,8???????0????1599443?/tmp/tcmalloc.2396 ?
  • nginx??????2397?nobody???13w?REG??8,8????????0????1599441??/tmp/tcmalloc.2397 ?
  • nginx?????2398?nobody????15w?REG??8,8?????0????1599442?/tmp/tcmalloc.2398?
  • 由于在Nginx配置文件中設(shè)置worker_processes的值為4,因此開啟了4個Nginx線程,每個線程會有一行記錄。每個線程文件后面的數(shù)字值就是啟動的Nginx的pid值。

    至此,利用TCMalloc優(yōu)化Nginx的操作完成。

    3.Nginx內(nèi)核參數(shù)優(yōu)化

    內(nèi)核參數(shù)的優(yōu)化,主要是在Linux系統(tǒng)中針對Nginx應(yīng)用而進(jìn)行的系統(tǒng)內(nèi)核參數(shù)優(yōu)化。

    下面給出一個優(yōu)化實例以供參考。

    ?

  • net.ipv4.tcp_max_tw_buckets?=?6000?
  • net.ipv4.ip_local_port_range?=?1024?65000 ?
  • net.ipv4.tcp_tw_recycle?=?1?
  • net.ipv4.tcp_tw_reuse?=?1?
  • net.ipv4.tcp_syncookies?=?1?
  • net.core.somaxconn?=?262144?
  • net.core.netdev_max_backlog?=?262144?
  • net.ipv4.tcp_max_orphans?=?262144?
  • net.ipv4.tcp_max_syn_backlog?=?262144?
  • net.ipv4.tcp_synack_retries?=?1?
  • net.ipv4.tcp_syn_retries?=?1?
  • net.ipv4.tcp_fin_timeout?=?1?
  • net.ipv4.tcp_keepalive_time?=?30?
  • 將上面的內(nèi)核參數(shù)值加入/etc/sysctl.conf文件中,然后執(zhí)行如下命令使之生效:

  • [root@?localhost?home]#/sbin/sysctl?-p?
  • 下面對實例中選項的含義進(jìn)行介紹:

    net.ipv4.tcp_max_tw_buckets :選項用來設(shè)定timewait的數(shù)量,默認(rèn)是180 000,這里設(shè)為6000。

    net.ipv4.ip_local_port_range:選項用來設(shè)定允許系統(tǒng)打開的端口范圍。在高并發(fā)情況否則端口號會不夠用。

    net.ipv4.tcp_tw_recycle:選項用于設(shè)置啟用timewait快速回收.

    net.ipv4.tcp_tw_reuse:選項用于設(shè)置開啟重用,允許將TIME-WAIT sockets重新用于新的TCP連接。

    net.ipv4.tcp_syncookies:選項用于設(shè)置開啟SYN Cookies,當(dāng)出現(xiàn)SYN等待隊列溢出時,啟用cookies進(jìn)行處理。

    net.core.somaxconn:選項的默認(rèn)值是128, 這個參數(shù)用于調(diào)節(jié)系統(tǒng)同時發(fā)起的tcp連接數(shù),在高并發(fā)的請求中,默認(rèn)的值可能會導(dǎo)致鏈接超時或者重傳,因此,需要結(jié)合并發(fā)請求數(shù)來調(diào)節(jié)此值。

    net.core.netdev_max_backlog:選項表示當(dāng)每個網(wǎng)絡(luò)接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時,允許發(fā)送到隊列的數(shù)據(jù)包的最大數(shù)目。

    net.ipv4.tcp_max_orphans:選項用于設(shè)定系統(tǒng)中最多有多少個TCP套接字不被關(guān)聯(lián)到任何一個用戶文件句柄上。如果超過這個數(shù)字,孤立連接將立即被復(fù)位并打印出警告信息。這個限制只是為了防止簡單的DoS攻擊。不能過分依靠這個限制甚至人為減小這個值,更多的情況下應(yīng)該增加這個值。

    net.ipv4.tcp_max_syn_backlog:選項用于記錄那些尚未收到客戶端確認(rèn)信息的連接請求的最大值。對于有128MB內(nèi)存的系統(tǒng)而言,此參數(shù)的默認(rèn)值是1024,對小內(nèi)存的系統(tǒng)則是128。

    net.ipv4.tcp_synack_retries參數(shù)的值決定了內(nèi)核放棄連接之前發(fā)送SYN+ACK包的數(shù)量。

    net.ipv4.tcp_syn_retries選項表示在內(nèi)核放棄建立連接之前發(fā)送SYN包的數(shù)量。

    net.ipv4.tcp_fin_timeout選項決定了套接字保持在FIN-WAIT-2狀態(tài)的時間。默認(rèn)值是60秒。正確設(shè)置這個值非常重要,有時即使一個負(fù)載很小的Web服務(wù)器,也會出現(xiàn)大量的死套接字而產(chǎn)生內(nèi)存溢出的風(fēng)險。

    net.ipv4.tcp_syn_retries選項表示在內(nèi)核放棄建立連接之前發(fā)送SYN包的數(shù)量。

    如果發(fā)送端要求關(guān)閉套接字,net.ipv4.tcp_fin_timeout選項決定了套接字保持在FIN-WAIT-2狀態(tài)的時間。接收端可以出錯并永遠(yuǎn)不關(guān)閉連接,甚至意外宕機(jī)。

    net.ipv4.tcp_fin_timeout的默認(rèn)值是60秒。需要注意的是,即使一個負(fù)載很小的Web服務(wù)器,也會出現(xiàn)因為大量的死套接字而產(chǎn)生內(nèi)存溢出的風(fēng)險。FIN-WAIT-2的危險性比FIN-WAIT-1要小,因為它最多只能消耗1.5KB的內(nèi)存,但是其生存期長些。

    net.ipv4.tcp_keepalive_time選項表示當(dāng)keepalive啟用的時候,TCP發(fā)送keepalive消息的頻度。默認(rèn)值是2(單位是小時)。

    4. PHP-FPM的優(yōu)化

    如果您高負(fù)載網(wǎng)站使用PHP-FPMFastCGI,這些技巧也許對您有用:

    1)增加FastCGI進(jìn)程數(shù)

    PHP FastCGI子進(jìn)程數(shù)調(diào)到100或以上,4G內(nèi)存的服務(wù)器上200就可以建議通過壓力測試獲取最佳值。

    2)增加?PHP-FPM打開文件描述符的限制

    標(biāo)簽rlimit_files用于設(shè)置PHP-FPM對打開文件描述符的限制,默認(rèn)值為1024。這個標(biāo)簽的值必須和Linux內(nèi)核打開文件數(shù)關(guān)聯(lián)起來,例如,要將此值設(shè)置為65 535,就必須在Linux命令行執(zhí)行“ulimit -HSn 65536”。

    ?????? 然后?增加?PHP-FPM打開文件描述符的限制:
    ???? # vi /path/to/php-fpm.conf
    ??? 找到
    “<valuename="rlimit_files">1024</value>”
    1024更改為?4096或者更高
    .
    重啟?PHP-FPM.

    ? ? ? ?ulimit -n 要調(diào)整為65536甚至更大。如何調(diào)這個參數(shù),可以參考網(wǎng)上的一些文章。命令行下執(zhí)行 ulimit -n65536即可修改。如果不能修改,需要設(shè)置??/etc/security/limits.conf,加入

    * hard nofile65536

    * soft nofile?65536



    ?????????3)適當(dāng)增加max_requests

    ??? 標(biāo)簽max_requests指明了每個children最多處理多少個請求后便會被關(guān)閉,默認(rèn)的設(shè)置是500。

    ????<value name="max_requests"> 500 </value>

    ???


    4. nginx.conf的參數(shù)優(yōu)化

    nginx要開啟的進(jìn)程數(shù)?一般等于cpu的總核數(shù) 其實一般情況下開4個或8個就可以。

    每個nginx進(jìn)程消耗的內(nèi)存10兆的模樣

    worker_cpu_affinity
    僅適用于linux,使用該選項可以綁定worker進(jìn)程和CPU(2.4內(nèi)核的機(jī)器用不了)

    假如是8 cpu 分配如下:
    worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000

    00100000 01000000 10000000

    nginx可以使用多個worker進(jìn)程,原因如下:

    to use SMP?
    to decrease latency when workers blockend on disk I/O?
    to limit number of connections per process when select()/poll() is

    used?The worker_processes and worker_connections from the event sections

    allows you to calculate maxclients value: k max_clients = worker_processes * worker_connections

    worker_rlimit_nofile 102400;

    每個nginx進(jìn)程打開文件描述符最大數(shù)目 配置要和系統(tǒng)的單進(jìn)程打開文件數(shù)一致,linux 2.6內(nèi)核下開啟文件打開數(shù)為65535,worker_rlimit_nofile就相應(yīng)應(yīng)該填寫65535 nginx調(diào)度時分配請求到進(jìn)程并不是那么的均衡,假如超過會返回502錯誤。我這里寫的大一點

    use epoll

    Nginx使用了最新的epoll(Linux 2.6內(nèi)核)和kqueue(freebsd)網(wǎng)絡(luò)I/O模型,而Apache則使用的是傳統(tǒng)的select模型。

    處理大量的連接的讀寫,Apache所采用的select網(wǎng)絡(luò)I/O模型非常低效。在高并發(fā)服務(wù)器中,輪詢I/O是最耗時間的操作 目前Linux下能夠承受高并發(fā)

    訪問的Squid、Memcached都采用的是epoll網(wǎng)絡(luò)I/O模型。

    worker_connections 65535;
    每個工作進(jìn)程允許最大的同時連接數(shù) (Maxclient = work_processes * worker_connections)

    keepalive_timeout 75

    keepalive超時時間

    這里需要注意官方的一句話:
    The parameters can differ from each other. Line Keep-Alive:

    timeout=time understands Mozilla and Konqueror. MSIE itself shuts

    keep-alive connection approximately after 60 seconds.


    client_header_buffer_size 16k
    large_client_header_buffers 4 32k

    客戶請求頭緩沖大小?
    nginx默認(rèn)會用client_header_buffer_size這個buffer來讀取header值,如果header過大,它會使用large_client_header_buffers來讀取

    如果設(shè)置過小HTTP頭/Cookie過大 會報400 錯誤 nginx 400 bad request
    求行如果超過buffer,就會報HTTP 414錯誤(URI Too Long)?nginx接受最長的HTTP頭部大小必須比其中一個buffer大,否則就會報400的HTTP錯誤(Bad Request)。

    open_file_cache max 102400

    使用字段:http, server, location 這個指令指定緩存是否啟用,如果啟用,將記錄文件以下信息: ·打開的文件描述符,大小信息和修改時間. ·存在的目錄信息. ·在搜索文件過程中的錯誤信息 -- 沒有這個文件,無法正確讀取,參考o(jì)pen_file_cache_errors 指令選項:
    ·max - 指定緩存的最大數(shù)目,如果緩存溢出,最長使用過的文件(LRU)將被移除
    例: open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on;

    open_file_cache_errors
    語法:open_file_cache_errors on | off 默認(rèn)值:open_file_cache_errors off 使用字段:http, server, location 這個指令指定是否在搜索一個文件是記錄cache錯誤.

    open_file_cache_min_uses

    語法:open_file_cache_min_uses number 默認(rèn)值:open_file_cache_min_uses 1 使用字段:http, server, location 這個指令指定了在open_file_cache指令無效的參數(shù)中一定的時間范圍內(nèi)可以使用的最小文件數(shù),如 果使用更大的值,文件描述符在cache中總是打開狀態(tài).
    open_file_cache_valid

    語法:open_file_cache_valid time 默認(rèn)值:open_file_cache_valid 60 使用字段:http, server, location 這個指令指定了何時需要檢查open_file_cache中緩存項目的有效信息.


    開啟gzip
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain application/x-javascript text/css

    application/xml;
    gzip_vary on;

    緩存靜態(tài)文件:

    location ~* ^.+\.(swf|gif|png|jpg|js|css)$ {
    root /usr/local/ku6/ktv/show.ku6.com/;
    expires 1m;
    }




    6. ? 錯誤排查

    1、Nginx 502 Bad Gateway

    php-cgi進(jìn)程數(shù)不夠用、php執(zhí)行時間長(mysql慢)、或者是php-cgi進(jìn)程死掉 ,都會出現(xiàn)502錯誤

    一般來說Nginx 502 Bad Gateway和php-fpm.conf的設(shè)置有關(guān),而Nginx 504 Gateway Time-out則是與nginx.conf的設(shè)置有關(guān)

    1)、查看當(dāng)前的PHP FastCGI進(jìn)程數(shù)是否夠用:

    netstat -anpo | grep "php-cgi" | wc -l

      如果實際使用的“FastCGI進(jìn)程數(shù)”接近預(yù)設(shè)的“FastCGI進(jìn)程數(shù)”,那么,說明“FastCGI進(jìn)程數(shù)”不夠用,需要增大。

    2)、部分PHP程序的執(zhí)行時間超過了Nginx的等待時間,可以適當(dāng)增加

    ? ? ?nginx.conf配置文件中FastCGI的timeout時間,例如:

    http?{
    ? ? ......
    ? ? fastcgi_connect_timeout 300;
    ? ? fastcgi_send_timeout 300;
    ? ? fastcgi_read_timeout 300;

    ? ? ......
    }


    2、413 Request Entity Too Large
    ? ? ?解決:增大client_max_body_size

    ? ? client_max_body_size:指令指定允許客戶端連接的最大請求實體大小,它出現(xiàn)在請求頭部的Content-Length字段. 如果請求大于指定的值,客戶端將收到一個"Request Entity Too Large" (413)錯誤. 記住,瀏覽器并不知道怎樣顯示這個錯誤.

    ? ? php.ini中增大
    post_max_size 和upload_max_filesize

    3 Ngnix error.log出現(xiàn):upstream sent too big header while reading response header from upstream錯誤

    1)如果是nginx反向代理
    ? ?proxy是nginx作為client轉(zhuǎn)發(fā)時使用的,如果header過大,超出了默認(rèn)的1k,就會引發(fā)上述的upstream sent too big header (說白了就是nginx把外部請求給后端server,后端server返回的header??太大nginx處理不過來就導(dǎo)致了。

    ??server {
    ????????listen???????80;
    ????????server_name??*.xywy.com ;

    ????????large_client_header_buffers 4 16k;

    ????????location / {

    ? ? ? ? ? #添加這3行?
    ???????????proxy_buffer_size 64k;
    ???????????proxy_buffers???32 32k;
    ???????????proxy_busy_buffers_size 128k;

    ???????????proxy_set_header Host $host;
    ???????????proxy_set_header X-Real-IP???????$remote_addr;
    ???????????proxy_set_header X-Forwarded-For??$proxy_add_x_forwarded_for;

    ? ? }

    }?????????

    ?

    2) 如果是 nginx+PHPcgi?

    ? 錯誤帶有?upstream: "fastcgi://127.0.0.1:9000"。就該?

    ? 多加:

    ? fastcgi_buffer_size 128k;
    ? fastcgi_buffers 4 128k;

    server {
    ? ? ? ? listen ? ? ? 80;
    ? ? ? ? server_name ?ddd.com;
    ? ? ? ? index index.html index.htm index.php;
    ? ?
    ? ? ? ? client_header_buffer_size 128k;
    ? ? ? ? large_client_header_buffers 4 128k;
    ? ? ? ? proxy_buffer_size 64k;
    ? ? ? ? proxy_buffers 8 64k;
    ? ? ? ? fastcgi_buffer_size 128k;
    ? ? ? ? fastcgi_buffers 4 128k;

    ? ? ? ? location / {

    ? ? ? ? ? ......

    ? ? ? ? }

    }?????????


    7. ? Nginx的php漏洞

    漏洞介紹:nginx是一款高性能的web服務(wù)器,使用非常廣泛,其不僅經(jīng)常被用作反向代理,也可以非常好的支持PHP的運行。80sec發(fā)現(xiàn)其中存在一個較為嚴(yán)重的安全問題,默認(rèn)情況下可能導(dǎo)致服務(wù)器錯誤的將任何類型的文件以PHP的方式進(jìn)行解析,這將導(dǎo)致嚴(yán)重的安全問題,使得惡意的攻擊者可能攻陷支持php的nginx服務(wù)器。


    漏洞分析:nginx默認(rèn)以cgi的方式支持php的運行,譬如在配置文件當(dāng)中可以以


    location ~ .php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
    }

    的方式支持對php的解析,location對請求進(jìn)行選擇的時候會使用URI環(huán)境變量進(jìn)行選擇,其中傳遞到后端Fastcgi的關(guān)鍵變量SCRIPT_FILENAME由nginx生成的$fastcgi_script_name決定,而通過分析可以看到$fastcgi_script_name是直接由URI環(huán)境變量控制的,這里就是產(chǎn)生問題的點。而為了較好的支持PATH_INFO的提取,在PHP的配置選項里存在cgi.fix_pathinfo選項,其目的是為了從SCRIPT_FILENAME里取出真正的腳本名。
    那么假設(shè)存在一個http://www.80sec.com/80sec.jpg,我們以如下的方式去訪問

    http://www.80sec.com/80sec.jpg/80sec.php


    將會得到一個URI

    /80sec.jpg/80sec.php

    經(jīng)過location指令,該請求將會交給后端的fastcgi處理,nginx為其設(shè)置環(huán)境變量SCRIPT_FILENAME,內(nèi)容為

    /scripts/80sec.jpg/80sec.php

    而在其他的webserver如lighttpd當(dāng)中,我們發(fā)現(xiàn)其中的SCRIPT_FILENAME被正確的設(shè)置為

    /scripts/80sec.jpg

    所以不存在此問題。
    后端的fastcgi在接受到該選項時,會根據(jù)fix_pathinfo配置決定是否對SCRIPT_FILENAME進(jìn)行額外的處理,一般情況下如果不對fix_pathinfo進(jìn)行設(shè)置將影響使用PATH_INFO進(jìn)行路由選擇的應(yīng)用,所以該選項一般配置開啟。Php通過該選項之后將查找其中真正的腳本文件名字,查找的方式也是查看文件是否存在,這個時候?qū)⒎蛛x出SCRIPT_FILENAME和PATH_INFO分別為

    /scripts/80sec.jpg和80sec.php

    最后,以/scripts/80sec.jpg作為此次請求需要執(zhí)行的腳本,攻擊者就可以實現(xiàn)讓nginx以php來解析任何類型的文件了。

    POC: 訪問一個nginx來支持php的站點,在一個任何資源的文件如robots.txt后面加上/80sec.php,這個時候你可以看到如下的區(qū)別:

    訪問http://www.80sec.com/robots.txt

    HTTP/1.1 200 OK
    Server: nginx/0.6.32
    Date: Thu, 20 May 2010 10:05:30 GMT
    Content-Type: text/plain
    Content-Length: 18
    Last-Modified: Thu, 20 May 2010 06:26:34 GMT
    Connection: keep-alive
    Keep-Alive: timeout=20
    Accept-Ranges: bytes

    訪問訪問http://www.80sec.com/robots.txt/80sec.php

    HTTP/1.1 200 OK
    Server: nginx/0.6.32
    Date: Thu, 20 May 2010 10:06:49 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: keep-alive
    Keep-Alive: timeout=20
    X-Powered-By: PHP/5.2.6

    其中的Content-Type的變化說明了后端負(fù)責(zé)解析的變化,該站點就可能存在漏洞。

    漏洞廠商:http://www.nginx.org

    解決方案:

    我們已經(jīng)嘗試聯(lián)系官方,但是此前你可以通過以下的方式來減少損失

    關(guān)閉cgi.fix_pathinfo為0

    或者

    if ( $fastcgi_script_name ~ ..*/.*php ) {
    return 403;
    }

    PS: 鳴謝laruence大牛在分析過程中給的幫助


    from:?http://blog.csdn.net/hguisu/article/details/8930668

    總結(jié)

    以上是生活随笔為你收集整理的Nginx工作原理和优化、漏洞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    五月天婷婷狠狠 | 免费av免费观看 | 午夜视频免费播放 | 国产成人一级电影 | 超碰电影在线观看 | 亚洲精品国产精品久久99 | 麻豆视频免费播放 | 免费h精品视频在线播放 | 欧美久久久久久久久久久 | 一区二区欧美激情 | 久久综合九色综合久99 | 色吊丝在线永久观看最新版本 | 国产99久久久久久免费看 | 麻豆成人在线观看 | 免费久久99精品国产婷婷六月 | 亚洲视频每日更新 | 91三级在线观看 | 五月天开心 | 国产成人免费高清 | 成人av资源| 黄网站色视频 | 99久久久久久久久 | 久久99精品国产一区二区三区 | 婷婷丁香久久五月婷婷 | 国产精品男女视频 | 奇米导航| 久久毛片高清国产 | 亚洲精品视频免费观看 | 中文字幕精品三级久久久 | 美女视频是黄的免费观看 | 97视频人人澡人人爽 | 91精品国产自产老师啪 | 日韩专区一区二区 | 免费网址你懂的 | 97电影院在线观看 | 久久性生活片 | 天天操狠狠操 | 69国产精品视频免费观看 | 亚洲综合成人婷婷小说 | 久久99精品国产麻豆宅宅 | 日韩精品一区二区在线观看视频 | 精品久久久久久久久久国产 | 狠狠躁夜夜a产精品视频 | 91在线视频免费观看 | 欧美动漫一区二区三区 | 最近最新最好看中文视频 | 国产麻豆视频网站 | 色噜噜日韩精品一区二区三区视频 | 亚洲自拍自偷 | 国产成人黄色片 | 久久精品首页 | 欧美经典久久 | 在线观看av网 | 久久艹人人 | 久久精品一区二区三区视频 | 超碰97.com| 久久欧美精品 | 亚洲免费国产 | 97视频免费在线观看 | 久久久久久国产精品免费 | 久久免费高清 | 最近日韩中文字幕中文 | 国产精品久久久久久久久婷婷 | 精品麻豆入口免费 | 久草视频免费 | 久久99精品国产一区二区三区 | 日日夜夜综合网 | 夜夜看av | 91亚洲精品久久久蜜桃网站 | 国产91在线播放 | 97色资源 | 91大片网站 | 天天天天爱天天躁 | 免费av片在线 | 亚洲专区在线 | 色噜噜在线观看视频 | 999免费视频 | 精品国内| 日韩在线视频观看 | 欧美一级专区免费大片 | 深爱激情五月网 | 日本久久综合网 | 国产成人a v电影 | 九九免费视频 | 最近最新最好看中文视频 | 美女性爽视频国产免费app | 久久99精品国产91久久来源 | 久草精品电影 | 亚洲男模gay裸体gay | 不卡电影一区二区三区 | 黄色官网在线观看 | 黄色a在线观看 | 999超碰| 欧美夫妻生活视频 | 五月天婷亚洲天综合网精品偷 | 综合网天天射 | 视频一区二区在线观看 | 久久久久免费看 | 最近最新最好看中文视频 | 中文字幕一区二区三区在线视频 | 激情久久五月 | 日韩小视频网站 | 欧美精品国产综合久久 | 波多野结衣在线观看一区二区三区 | 欧美一区二区精美视频 | 日韩有码在线观看视频 | 欧美日韩一区三区 | 美女免费黄视频网站 | 亚洲欧美日本国产 | 99精品福利| 精品国产乱码久久久久久久 | 黄av免费在线观看 | 天天干,天天射,天天操,天天摸 | 亚洲精品三级 | 中文字幕一区二区三区四区视频 | 日日激情| 久久五月天综合 | 美女网站视频一区 | 国产精品毛片网 | 日日夜夜免费精品视频 | 亚洲h色精品 | 91成人国产 | 丁香5月婷婷久久 | 日韩欧美高清视频在线观看 | 精品久久久久亚洲 | 亚洲综合五月 | 国产成人精品a | 麻豆国产精品va在线观看不卡 | 天堂中文在线播放 | 久久视频免费在线观看 | 免费观看全黄做爰大片国产 | 91精选在线观看 | 国产xvideos免费视频播放 | 亚洲成人黄色av | 精品久久久久久久久久岛国gif | 香蕉在线影院 | 最新av网址在线 | 蜜臀av一区 | 久久av高清 | 久久视了 | 免费看片网站91 | 久草视频看看 | 91综合视频在线观看 | 久久,天天综合 | 韩国av电影网 | 国产乱对白刺激视频不卡 | 久久人人爽爽人人爽人人片av | 国内精品久久久久久中文字幕 | 五月婷婷在线视频观看 | 久久久一本精品99久久精品66 | 98超碰人人| 国产视频精品久久 | 天天爱av导航| 97人人澡人人爽人人模亚洲 | 干干日日 | 黄色一级大片在线免费看国产一 | 久久精品人 | 中文字幕在线视频精品 | 国内成人精品2018免费看 | 在线观看成年人 | 丁香九月婷婷综合 | 国产色视频一区二区三区qq号 | 中文字幕一区二区三区四区视频 | 五月天丁香综合 | 亚洲精品成人免费 | 国产成人久久精品亚洲 | 亚洲综合小说电影qvod | 一区二区电影在线观看 | 91av影视 | 日韩一区二区三区免费视频 | 国产高清福利在线 | 精品黄色片 | 午夜视频在线观看一区二区 | 亚洲成人中文在线 | 五月婷婷一区 | 国产高清在线 | 欧美精品一二三 | 欧美色噜噜 | 91在线你懂的 | www看片网站| 亚洲精品在线看 | 狠狠色丁香婷综合久久 | 黄色片视频在线观看 | 成人网页在线免费观看 | 91高清免费| 中文字幕av免费在线观看 | 中文字幕在线观看视频一区二区三区 | 国产一二三区在线观看 | 黄色免费网站下载 | 国产精品美女久久久久久免费 | 色婷婷综合五月 | 免费看三级网站 | 亚洲国产成人av网 | 成人毛片一区二区三区 | 婷婷99 | 99久久精品国产免费看不卡 | www日韩| 久久免费视频网 | 深爱激情开心 | 98久久| 天天射天天干天天插 | 国产精品麻豆91 | 91男人影院| 国产精品黄色 | 日韩中文在线电影 | 久在线观看视频 | 日韩视频在线观看免费 | 992tv人人网tv亚洲精品 | 欧美xxxx性xxxxx高清 | 8x成人在线 | 狠狠干狠狠久久 | 中文字幕传媒 | 国产精品久久久久久吹潮天美传媒 | 中文字幕人成乱码在线观看 | 91九色蝌蚪视频在线 | 一级理论片在线观看 | 三级黄在线 | 国产日韩欧美在线一区 | 免费看麻豆 | 国产一区二区精品久久91 | 国产麻豆精品在线观看 | 97av在线视频免费播放 | 免费av看片 | 综合久久精品 | 久久最新 | 日本韩国欧美在线观看 | 久久国产精品久久国产精品 | 能在线观看的日韩av | 国产亚洲免费的视频看 | 国产精品久久毛片 | 成人中心免费视频 | 人人干人人干人人干 | 国产视频日本 | 欧美激情视频久久 | 不卡的av在线播放 | 91亚洲精 | 亚洲午夜精品福利 | 亚洲电影一级黄 | 在线导航福利 | 色偷偷人人澡久久超碰69 | 三级黄色在线观看 | 国产成人精品一区二区在线观看 | 久久精品79国产精品 | 久久在线电影 | 久久久久亚洲天堂 | 狠狠干在线| 久久激情五月激情 | 久一网站| 亚洲激情六月 | 在线看一区 | 日本性xxx| 99国内精品 | 97超碰免费在线观看 | 毛片网站免费 | 国产高清免费视频 | 91精品1区| 成人av资源在线 | 91精彩在线视频 | 丰满少妇在线观看 | 国产原创在线 | 国产成人黄色av | 91人人澡人人爽人人精品 | 97超碰在线资源 | 色.com| 人人干干人人 | 天堂av高清 | 综合色婷婷 | 色福利网 | 成人在线观看你懂的 | 欧美激情视频一二区 | 日韩精品免费一线在线观看 | 成人免费观看视频大全 | 欧美一区二区三区特黄 | 久综合网| 亚洲精品免费在线观看视频 | 亚洲精品白浆高清久久久久久 | 国产成人av一区二区三区在线观看 | 国产精品成 | 天堂av一区二区 | 亚洲在线网址 | 久久精品91久久久久久再现 | 69精品在线 | 国产精品久久久久久久久婷婷 | 91综合久久一区二区 | 国产精品女| 91在线播放视频 | 五月婷婷操 | 天天色综合久久 | 99久久精品视频免费 | 日韩午夜一级片 | 成人资源在线播放 | 国产又粗又长又硬免费视频 | 国内综合精品午夜久久资源 | 日韩电影黄色 | 97日日碰人人模人人澡分享吧 | 黄色1级毛片| 99中文在线 | 中文字幕乱码在线播放 | 婷婷资源站 | 亚洲97在线 | 国产系列精品av | 亚洲乱码久久久 | 99re在线视频观看 | 国产精品免费久久久久久 | 最新中文字幕 | 黄视频网站大全 | 成人精品99 | 果冻av在线 | 国产原创在线 | 日韩成人xxxx | 中文字幕有码在线播放 | 91私密保健 | 干干干操操操 | 日韩在线视 | 日韩在线字幕 | 色偷偷88888欧美精品久久久 | 国产一级视频在线免费观看 | 色综合色综合色综合 | 日韩av片免费在线观看 | 亚洲男男gaygay无套 | 午夜久久电影网 | 92国产精品久久久久首页 | 亚洲在线视频播放 | 欧美亚洲另类在线视频 | 超碰在线观看97 | 少妇18xxxx性xxxx片 | 91污污视频在线观看 | 最新91在线视频 | 亚洲涩涩涩 | 久久视频网址 | 亚洲 中文 欧美 日韩vr 在线 | 国产亚洲亚洲 | 国产免费人人看 | 一区二区精品在线 | 91成人精品国产刺激国语对白 | 国产精品欧美精品 | 欧美一区二区三区四区夜夜大片 | 国产日本亚洲 | 黄色精品久久久 | 日韩av在线免费看 | 欧美日韩在线精品 | 狠狠干美女 | 日韩狠狠操 | 国产精品99在线观看 | 午夜精品中文字幕 | 在线观看黄色大片 | 亚洲精品免费视频 | 国内精品视频在线播放 | 国产精品久久久久久久久久尿 | 高清免费在线视频 | 五月婷婷视频在线观看 | 97国产精品 | 久久久久久久久久毛片 | 免费中文字幕在线观看 | 超碰电影在线观看 | 国产一级久久久 | 欧美在线观看禁18 | 最新中文字幕在线观看视频 | 久久香蕉国产精品麻豆粉嫩av | 一区二区丝袜 | 操操色| 伊人成人精品 | 成年人免费在线播放 | 国产精品一区二区麻豆 | 在线观看资源 | 在线韩国电影免费观影完整版 | 精品资源在线 | 丁香花在线观看免费完整版视频 | 在线亚洲人成电影网站色www | 亚洲精品视频免费在线观看 | 丁香高清视频在线看看 | 久久综合久久综合久久 | 97在线视 | 日日操操| 一区二区三区中文字幕在线 | 三级视频国产 | 91黄色在线视频 | 婷婷丁香六月 | 色婷婷狠 | 久久人人爽人人 | 丰满少妇对白在线偷拍 | 黄色一级大片在线免费看国产一 | 97超碰人人干 | 五月开心网 | 亚洲精品中文字幕视频 | 免费观看性生交 | 久草精品视频在线看网站免费 | 精品国产综合区久久久久久 | 成人欧美一区二区三区黑人麻豆 | 久久精品a | 麻豆视频在线免费看 | 狠狠撸电影| 色91在线视频 | 黄色大片国产 | 亚洲一区二区三区在线看 | 欧美精品国产综合久久 | 亚洲精品www| 天天综合天天综合 | 精品亚洲视频在线 | 久草在线视频首页 | 国产91精品一区二区麻豆亚洲 | 在线视频欧美精品 | 国产午夜一级毛片 | 国产精品久久久久婷婷二区次 | 91精品国产91p65 | 激情五月伊人 | 中文字幕资源在线观看 | 国产女教师精品久久av | 在线香蕉视频 | 国产小视频在线免费观看 | 制服丝袜亚洲 | 欧美极品xxxx| 在线日韩一区 | 久久久免费精品视频 | 97人人添人澡人人爽超碰动图 | 超碰午夜 | 国产成人在线精品 | 免费看的黄色 | 欧美精品资源 | 五月天综合色 | 亚洲精品456在线播放第一页 | 69欧美视频 | 久草线 | 亚洲毛片一区二区三区 | 日韩中文字幕网站 | 久久歪歪 | 国产精品久久久久久久99 | 精品中文字幕在线观看 | 99久久精品免费看国产四区 | jizzjizzjizz亚洲 | 色就色,综合激情 | 伊人网综合在线观看 | 国产在线黄 | 欧洲精品久久久久毛片完整版 | 国产裸体视频网站 | 欧美成人黄色片 | 日免费视频 | 久久在线免费观看视频 | 天天色 天天 | 狠狠干网址 | 中文字幕成人一区 | 五月天婷婷狠狠 | 一级大片在线观看 | 亚洲久草视频 | 欧美一二区视频 | 综合色狠狠 | 亚洲好视频 | 久久综合精品国产一区二区三区 | 韩日成人av| 手机在线永久免费观看av片 | 日韩毛片一区 | 国产精品成人av电影 | avcom在线 | 最近免费观看的电影完整版 | 蜜桃视频精品 | 在线看片一区 | 成年人av在线播放 | 亚洲电影久久 | 人人干天天射 | 国产精品麻豆一区二区三区 | av片在线观看 | 日韩在线播放欧美字幕 | 日韩精品国产一区 | 天天做天天爱天天爽综合网 | 久99久在线 | 一区二区视频电影在线观看 | 国产成人在线免费观看 | av日韩精品 | 亚洲国产电影在线观看 | 国产精品成 | 九色在线视频 | 久久成人国产精品入口 | 国产午夜三级一区二区三 | 久草在线观看视频免费 | 亚洲 欧洲 国产 精品 | 9i看片成人免费看片 | 色视频成人在线观看免 | 天天爱天天爽 | 最新精品国产 | 色在线高清 | 一区二区网 | 狠狠色综合网站久久久久久久 | 国产精品6 | 精品福利在线视频 | 久久99国产综合精品 | 成人免费大片黄在线播放 | 一本到视频在线观看 | 亚洲精品久久久蜜桃 | 美女黄久久| 91成人国产 | 亚洲国产大片 | 免费福利在线观看 | 国产亚洲精品成人av久久影院 | 激情影音| 亚洲自拍偷拍色图 | 青青草在久久免费久久免费 | 日韩字幕在线观看 | 视频 国产区 | 99视频精品视频高清免费 | 99久热在线精品视频成人一区 | 久久成人国产精品免费软件 | 久久精品一区二区三区中文字幕 | 2018好看的中文在线观看 | 亚洲精品自拍视频在线观看 | 在线免费观看国产 | 91色国产| 久久久久久久久久福利 | 日韩免费高清在线 | 国产午夜一区 | 国产99久久九九精品免费 | 天天摸天天操天天爽 | 成人国产在线 | 99综合电影在线视频 | 天天干天天拍天天操天天拍 | 不卡的av电影在线观看 | 一区免费在线 | 亚洲理论在线 | 天天干天天操天天做 | 韩国av电影网 | 国产精品美女久久久久久久久久久 | 91在线看黄 | 黄色免费观看 | 午夜久久美女 | av一级在线 | 免费视频成人 | 国产成人精品久久亚洲高清不卡 | 免费男女网站 | 国产精品一区电影 | 99国产精品视频免费观看一公开 | 国产亚洲一级高清 | 成人国产精品电影 | 亚洲欧美经典 | 国产vs久久 | 欧美日韩一区二区久久 | 狠狠狠干狠狠 | 国产精品视频内 | 国产一区二区久久 | 天天爱天天 | 国产成人精品亚洲日本在线观看 | 四虎成人精品在永久免费 | 99精品国产一区二区三区麻豆 | 久久精品一区二区三区四区 | 伊人夜夜 | 久久精品一区二区三区视频 | 亚洲一区二区三区91 | 国内偷拍精品视频 | 日韩欧美一区二区在线播放 | 久久久精品一区二区三区 | 精品国产成人在线影院 | 欧美日韩国产在线观看 | 免费三级骚 | 免费看特级毛片 | av解说在线观看 | 免费视频a | 国产精品一区在线观看你懂的 | 日韩视频免费观看高清 | 久久99久久99免费视频 | 欧美ⅹxxxxxx | 正在播放 久久 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 日韩视频免费观看高清 | 国产三级视频在线 | 国产精品欧美久久 | 国产视频观看 | 亚洲日韩欧美一区二区在线 | 在线观看日韩视频 | 国产亚洲在线视频 | 日韩免费小视频 | 999视频网站 | 国产对白av | 黄色小说视频在线 | 欧美色图亚洲图片 | 日韩女同一区二区三区在线观看 | 99精品黄色片免费大全 | 亚洲精品午夜视频 | 亚洲最新av网址 | 96精品高清视频在线观看软件特色 | 日韩在线电影观看 | 激情视频在线观看网址 | 911亚洲精品第一 | 日韩激情免费视频 | 中文字幕日韩无 | 日韩精品视频在线免费观看 | 国产精品免费一区二区 | 午夜在线免费视频 | 久久视频6| 精品国产一区二区三区日日嗨 | 天天操天天操天天操天天操天天操 | 亚洲aⅴ乱码精品成人区 | 日韩一级片观看 | 午夜视频在线网站 | 精品久久精品久久 | 日本一区二区高清不卡 | 视频在线一区 | 欧美一级视频免费 | 国产视频1 | 亚洲四虎 | 日韩在线视频不卡 | www亚洲精品 | 国产高清久久 | 国产精品18久久久久久vr | 国产色视频网站2 | 欧美精品在线视频 | 亚洲视频一级 | 欧美 亚洲 另类 激情 另类 | 久久久精品欧美一区二区免费 | 婷婷激情五月综合 | 精品专区一区二区 | 手机av资源| 在线观看黄色免费视频 | 丁香六月综合网 | 色综合久久中文综合久久牛 | 亚洲午夜久久久久久久久电影网 | 亚洲欧洲中文日韩久久av乱码 | 亚洲免费视频观看 | 日本久久电影 | 在线电影 你懂得 | 久久久久久久久福利 | 免费精品国产va自在自线 | 天天射天天操天天干 | 激情五月婷婷综合 | 欧美日韩国产精品久久 | 亚洲精品国偷自产在线99热 | 91av色| 亚洲闷骚少妇在线观看网站 | 六月色婷 | 国产精品影音先锋 | 丁香六月天 | 国产91精品在线观看 | 青草视频在线免费 | 成人在线播放免费观看 | 久久综合亚洲鲁鲁五月久久 | 日韩字幕在线观看 | 欧美日韩在线观看视频 | 91视频亚洲 | 欧美日一级片 | 91在线蜜桃臀 | 日韩3区| 日韩三级不卡 | 91av网址| 成人app在线播放 | 中文字幕电影高清在线观看 | 国产aa精品| 国产日韩欧美自拍 | 一区二区久久久久 | 色综合久久五月天 | 日韩精品一区二区三区免费视频观看 | 人人爱在线视频 | 久色伊人| 中文字幕在线视频网站 | 999视频在线播放 | 九九99 | 操操综合网 | 欧美性一级观看 | 久久视频国产精品免费视频在线 | 5月丁香婷婷综合 | 久久99网 | 天天天色 | 亚洲激情精品 | 九九视频网 | 欧美日韩国产欧美 | 中文在线www| 国产白浆视频 | 欧美一级艳片视频免费观看 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 精品亚洲欧美无人区乱码 | 国产在线 一区二区三区 | 天天色天天操天天爽 | 欧美一级性生活视频 | 日韩精品欧美精品 | 亚洲第一香蕉视频 | 黄色网址在线播放 | 人人射| 国产精品6 | 夜夜操天天操 | 午夜在线免费视频 | 激情黄色av | 91完整版 | 亚洲影院天堂 | 婷婷av网站 | 九色视频网站 | 奇米网777 | 天天综合网天天 | 中文字幕一区在线 | 日韩午夜精品福利 | 激情网站五月天 | 日本精品中文字幕在线观看 | 久久99精品国产麻豆宅宅 | 国产夫妻自拍av | 国产高清成人av | 五月天天色| 久久激情影院 | 国产精品久久久久久婷婷天堂 | 色欧美88888久久久久久影院 | 久久久免费毛片 | 丁香电影小说免费视频观看 | 亚洲首页 | 国内精自线一二区永久 | 一级黄色片在线免费看 | 国产美女免费观看 | 在线视频中文字幕一区 | 欧美激情精品久久久久 | 亚洲成人网av | 四虎成人精品永久免费av九九 | 日韩美视频 | 国产视频在线观看一区 | 成人毛片久久 | 亚洲精品欧洲精品 | 国产一级性生活 | 97av.com| 国产精品初高中精品久久 | 国产精久久久久久妇女av | 久草久视频 | 欧美另类调教 | 日本最大色倩网站www | 国产专区视频在线 | 少妇性aaaaaaaaa视频 | 999久久久久久久久久久 | 国产黄色精品 | 日韩毛片在线一区二区毛片 | 国产精品久久久久久麻豆一区 | 91看片淫黄大片一级在线观看 | 中文字幕乱在线伦视频中文字幕乱码在线 | 波多野结衣一区 | 免费福利在线观看 | 成人在线视频一区 | 高清一区二区三区av | 91高清免费 | 久久精品国产亚洲 | 亚洲精品理论片 | 精品在线观看一区二区三区 | 国产69精品久久久久久久久久 | 欧美成人高清 | 日本 在线 视频 中文 有码 | 免费av观看| 国内精品久久久久久久97牛牛 | 黄色av电影 | 国产高清一 | 国产做aⅴ在线视频播放 | 97网在线观看 | 狠狠躁夜夜躁人人爽超碰91 | 午夜视频亚洲 | 五月婷婷操 | 欧美日韩裸体免费视频 | 黄色av免费在线 | 亚洲尺码电影av久久 | 91久久精品一区二区三区 | 精品久久亚洲 | 成人av片免费看 | 午夜国产福利在线 | 久久视频这里只有精品 | 四月婷婷在线观看 | 视频成人 | 国产淫a| 91高清完整版在线观看 | 国产精品免费人成网站 | 蜜臀aⅴ国产精品久久久国产 | 国产三级视频 | 亚洲一级在线观看 | 五月天av在线 | 奇米7777狠狠狠琪琪视频 | 精品少妇一区二区三区在线 | 97久久久免费福利网址 | 主播av在线 | 久久人人爽人人片 | 免费美女av | 欧美激情综合五月色丁香 | 人人盈棋牌 | 99这里只有久久精品视频 | 日韩一区二区三区高清免费看看 | 国产高清成人av | 96在线 | 日韩电影在线观看一区 | ,午夜性刺激免费看视频 | 九九热只有精品 | 日韩精品无码一区二区三区 | 欧美91成人网| 日韩免费观看一区二区 | 亚洲h色精品| 国产精品久久久久9999 | 波多野结衣一区三区 | 欧美日韩国产一区 | 黄p在线播放 | 免费看的国产视频网站 | 韩国av在线播放 | 久久精品电影 | 91精品一区在线观看 | 色综合亚洲精品激情狠狠 | 黄色精品一区二区 | 国产一级二级三级在线观看 | 国产精品网站一区二区三区 | 国产精品久久久久久一区二区 | 97超在线 | 色七七亚洲影院 | 四虎影视精品成人 | 日韩大片在线观看 | 午夜国产福利在线 | 亚洲综合成人婷婷小说 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 在线免费观看一区二区三区 | 狠狠色噜噜狠狠狠狠2022 | 国产精品免费大片视频 | 久久你懂得 | 五月婷婷久草 | 免费看片在线观看 | 国产高清不卡一区二区三区 | 精品久久国产 | 久久久久久久久久久免费视频 | 中文字幕精品视频 | 国产欧美高清 | 91丨精品丨蝌蚪丨白丝jk | 久久这里只精品 | 99久久网站| 日韩欧美视频 | 亚洲精品tv| 青草视频网 | 91在线观看视频网站 | 丁香花在线观看视频在线 | 中文在线亚洲 | 亚洲三级在线免费观看 | 亚洲国产播放 | 日韩免费播放 | 视频一区二区免费 | 2022中文字幕在线观看 | 日韩综合一区二区三区 | 欧美精品在线一区 | 9999精品免费视频 | 女人18片毛片90分钟 | 亚洲免费成人av电影 | 中文字幕观看av | 精品免费观看视频 | 九九在线视频免费观看 | 亚洲欧美日韩在线看 | 午夜av网站 | 夜又临在线观看 | 国产精品99久久久久久小说 | 四虎影视av | 成年人黄色在线观看 | 成人欧美一区二区三区黑人麻豆 | av免费在线免费观看 | 免费色黄| 在线观看91精品国产网站 | 久久久久久久久久久高潮一区二区 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 在线免费观看欧美日韩 | 精品久久一级片 | 国产无套精品久久久久久 | 国产一区欧美在线 | 免费亚洲黄色 | 久久午夜精品 | 国产精品成人一区二区三区吃奶 | 99麻豆视频| 91视频久久久久久 | 亚洲精品视频在线播放 | 久久精品国产一区 | 日韩av五月天 | 91色国产在线| 免费99精品国产自在在线 | 色www精品视频在线观看 | 碰超在线观看 | 国产精品国产三级在线专区 | 日韩性xxxx| 最近中文字幕在线中文高清版 | 国产精品一区二区三区在线免费观看 | 国产中文a | 伊人五月在线 | 国产美女久久久 | 人人插人人干 | 国产v在线 | 国模视频一区二区三区 | 亚洲国产精品久久久 | 国产美腿白丝袜足在线av | 婷婷夜夜 | 久久成人免费视频 | 久久深爱网| 国产成人一二片 | 欧美激情综合五月 | 久久精品亚洲综合专区 | 天堂网一区二区三区 | 女人18片毛片90分钟 | 久久国产手机看片 | 免费av看片 | 97国产情侣爱久久免费观看 | 国产精品区免费视频 | 天天超碰| 久久免费视频2 | 免费在线黄网 | 欧美一级大片在线观看 | 91综合在线| 国产一二区视频 | 国模视频一区二区三区 | 国产免费人成xvideos视频 | 日本中文字幕一二区观 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 日韩一区在线播放 | 六月激情婷婷 | 激情视频区 | 亚洲一区二区高潮无套美女 | 久久久久久久电影 | 99色亚洲 | a爱爱视频 | 国产成人亚洲在线观看 | 久久久久久久99精品免费观看 | 国产一区二区不卡视频 | 免费av影视 | 18久久久| 在线观看免费版高清版 | 日韩美视频 | 亚洲国产成人精品在线观看 | 欧美精品久久久久久 | 少妇搡bbb | 狂野欧美激情性xxxx欧美 | 悠悠av资源片 | 日韩电影一区二区在线 | 在线免费观看不卡av | 亚洲午夜av久久乱码 | 久久国产一区 | 国产91全国探花系列在线播放 | 黄色av网站在线观看 | 91麻豆看国产在线紧急地址 | 亚洲精品免费在线播放 | 欧美黑人巨大xxxxx | 日日干精品 | 激情视频二区 | 国产精品高潮呻吟久久av无 | 五月婷婷爱 | 日韩av高清在线观看 | 国产视频色 | 美女免费视频观看网站 | 欧美一级日韩三级 | 国产在线免费av | 日韩在线观看网址 | 亚洲视频 中文字幕 | 国产一区精品在线观看 | 国产艹b视频 | 久久精品一二三 | 在线看黄色av | 91看片在线免费观看 | 国产成人免费观看久久久 | 伊人射 | 天天干天天干天天射 | 精品在线视频观看 | 久久视频在线看 | 成人免费网视频 | 日韩欧美电影在线观看 | 国产精品免费在线观看视频 | 日韩精品一区二区三区水蜜桃 | 天天添夜夜操 | av大全在线免费观看 | 亚洲成色777777在线观看影院 | 欧美一区二区三区在线看 | 精品国产一区二区三区男人吃奶 | 欧美伦理一区二区三区 | 精品成人在线 | 成人免费在线观看入口 | 欧美日韩高清一区二区 | 欧美精品在线一区二区 | 五月婷婷综合色拍 | 国产成人av在线 | 九九九热精品免费视频观看 | 精品国产99 | 在线观看视频一区二区三区 | 国产精品成人免费一区久久羞羞 | 丁五月婷婷| 亚洲视频在线观看网站 | 国产麻豆精品95视频 | 91九色在线播放 | av日韩精品 | 九九精品视频在线看 | 91精品国产成人 | av电影在线观看完整版一区二区 | 久久久国产精品亚洲一区 | 黄色毛片一级片 | 日日干狠狠操 | 在线观看视频免费播放 | 日韩激情小视频 | 久久情网 | 91久色蝌蚪 | 久久亚洲电影 | 欧美在线视频第一页 | av看片在线观看 | 久久人网| 亚洲人成人在线 | 一区二区伦理电影 | 久久精品亚洲综合专区 | 国产一级性生活视频 | 91久久国产综合精品女同国语 | 午夜电影久久 | 国产一区二区三区免费观看视频 | 日韩激情一二三区 | 欧美午夜久久久 | 91成人看片 | 成人av在线网址 | 香蕉视频网站在线观看 | 免费观看的黄色 | 69精品视频在线观看 | 欧美性生活大片 | 欧洲激情综合 |