首頁  >  文章  >  後端開發  >  使用proxy解決nginx alias無法執行PHP等fastcgi問題

使用proxy解決nginx alias無法執行PHP等fastcgi問題

WBOY
WBOY原創
2016-08-08 09:22:171277瀏覽
nginx下的alias好像是為只為靜態檔案服務的,對於FastCGI如PHP之類的總是會出現錯誤,典型的就是404。
對此,網路上已經有了一些解決方案,例如:http://u.odo.com.cn/space-2-do-blog-id-3087.html 如此設定在應用相對簡單下的確可用,如根目錄並沒有程式或不需要rewrite等情況。
而在實際應用中往往需要相對更複雜的配置,例如流行的單入口程式需要將不存在的檔案存取交給index.php,這樣就會存在衝突而導致存取錯誤。而且如此配置也會對未來的擴充帶來維護風險。
近期我也遇到了這個問題,問了下google也沒有找到合適的答案,為此我想何不反其道而行之,將一個vhost拆分成多個,由根目錄進行proxy代理解決,設定如下:

複製內容到剪貼簿

程式碼:
location ^~ /bbs {
alias /srv/www/bbs;
proxy_set_header Host bbs.xxx.com; remote_addr;
proxy_pass http://127.0.0.1;
}
location 的^~ 意義是符合此路徑後無視其他location 配置,包括location /。這樣 rewrite 或其他就配置不會對此產生任何影響。
到這裡可能就有人要問,既然這麼麻煩為什麼不直接使用虛擬主機,而要反向代理多一次請求呢?
對此呢原因是很多可能的,例如AJAX、javascript、cookie等在跨域情況下不易處理,URL向前相容等。 以上就介紹了使用proxy解決nginx alias無法執行PHP等fastcgi問題,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn