我在为 nginx 设置 URL 重写和 fastcgi 组合时遇到了麻烦。fastcgi 接口后面的应用程序服务器需要 /myapp/ 作为基本路径。我想让它在我的http://myserver.com/
upstream appfcgi {
server 127.0.0.1:6000;
server 127.0.0.1:6001;
server 127.0.0.1:6002;
fair;
}
server {
listen 80 default;
server_name myserver.com;
root /var/www;
location / {
rewrite ^(/.*)$ /myapp$1 last;
}
location /myapp/ {
include /etc/nginx/fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass appfcgi;
}
无论我怎么尝试,我总是会显示应用程序服务器的根路径。我记得当时我使用 apache 做同样的事情时遇到了麻烦,但直到今天我尝试使用 nginx 时才忘记。任何帮助都非常感谢。谢谢。
答案1
我认为这里不需要两个位置。这是我的一个配置的一部分:
location / {
root /path.to.app/;
index index.php index.html;
rewrite ^/(.*)$ /index.php?query=$1 break;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /path.to.app/$fastcgi_script_name;
include fastcgi_params;
}