天天看點

nginx處理web請求分析

nginx首先确定使用哪一個server域來處理請求,下面的例子中有3個虛拟伺服器監聽*:80端口。

<code>server {</code>

<code>listen 80;</code>

<code>server_name nginx.org www.nginx.org;</code>

<code>...</code>

<code>}</code>

<code>server_name nginx.net www.nginx.net;</code>

<code>server_name nginx.com www.nginx.com;</code>

<code>在上面的配置中,nignx會根據HTTP請求“Host”的值,确定具體哪一個server接收web請求。如果“Host”不存在或者Host的值無法比對任何sever中的$server_name,nginx就會把web請求送到預設的server中。如果沒有定義default_server,預設将 請求傳遞給第一個server。</code>

<code>預設server的配置方法如下:</code>

<code></code>

<code>    </code><code>listen       80  default_server;</code>

<code>    </code><code>server_name  nginx.net  www.nginx.net;</code>

<code>    </code><code>...</code>

<code>    </code><code>listen       192.168.1.1:80;</code>

<code>    </code><code>server_name  nginx.org  www.nginx.org;</code>

<code>    </code><code>listen       192.168.1.2:80;</code>

<code>    </code><code>server_name  nginx.com  www.nginx.com;</code>

<code>上面的配置中,nginx首先比對IP位址和端口,然後在确定響應IP下的server_name,如果沒有找到任何比對的 server_name,ngixn将請求傳遞給預設server。例如,當nginx收到來自 192.168.1.1:80 端口的請求www.nginx.com(無法比對192.168.1.1下的任何一個server_name),</code>上例中沒有定義默server,那麼這個請求将被傳遞到第一個server中。

預設server的配置方法如下:

備注:nginx可以為不同的IP位址和端口定義多個預設server

eg:

<code>    </code><code>listen        192.168.1.1:80;</code>

<code>    </code><code>server_name   nginx.org  www.nginx.org;</code>

<code>    </code><code>listen        192.168.1.1:80  default_server;</code>

<code>    </code><code>server_name   nginx.net  www.nginx.net;</code>

<code>    </code><code>listen        192.168.1.2:80  default_server;</code>

<code>    </code><code>server_name   nginx.com  www.nginx.com;</code>

待補充。。。。。

本文轉自 Tenderrain 51CTO部落格,原文連結:http://blog.51cto.com/tenderrain/1610734