為了加快網站的解析速度,可以把動態頁面和靜態頁面由不同的伺服器來解析,加快解析速度。降低原來單一伺服器的壓力。
準備一個nginx代理兩個http分別處理動態和靜態。也可以讓nginx代理自己解析靜態網頁,不過nginx又代理又解析網站感覺壓力也挺大的。
這裡nginx的重要的配置如下。
location / { root /var/www/html/upload; index index.php index.htm; } location ~ .*\.(html|gif|jpg|png|bmp|swf|jpeg)$ { proxy_pass http://192.168.43.22:80; } location ~ \.php$ { proxy_pass http://192.168.43.62:80; }
location / 的作用
#定義了在請求代理的時候nginx去/var/www/html/upload 下尋找index.php 當他找到index.php的時候配對了下面的正規 location ~ \.php$。
location ~ \.php$ 的作用
#以php結尾的都以代理的方式轉發給http(192.168.43.62),http1 去處理,這裡http1要去看自己的設定檔在自己的設定檔定義網站根目錄/var/www/html/upload 找.index.php 然後處理解析回傳給nginx 。
location ~ .*\.(html|gif|jpg|png|bmp|swf|jpeg)$ 的作用
以html等等的靜態頁面都交給http2(192.168.43.22)來處理,http2 去找自己的網站目錄然後回傳給nginx 。
兩個http放的肯定是一樣的目錄,只不過每個伺服器的任務不一樣。
代理商本身要有網站的目錄,因為最上面的 location / 先生效 如果沒有目錄 會直接提示找不到目錄 不會再往下配對。
3個伺服器放網站的目錄一樣 網站檔案一樣, http的設定檔根目錄要指定對。
更多Nginx相關技術文章,請造訪Nginx使用教學欄位進行學習!
以上是nginx如何實現動靜分離的詳細內容。更多資訊請關注PHP中文網其他相關文章!