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教程有興趣的朋友有所幫助。