我试着用nginx在同一个域上运行node js和php。然而,php(“/ ajax”)的位置不起作用。我总是收到消息“找不到文件”。 nginx的日志打印找不到nginx和php的文件
网址为http://localhost:8085/ajax到目前为止,脚本位于位于/ var/WWW /公共 文件夹/ AJAX不存在(所有路径都不做,因为寄托都将被重定向到/ var/www/public/index.php)
nginx | 2017/08/27 20:47:48 [error] 6#6:* 6当读取来自上游的响应头时,stderr发送的FastCGI:“主要脚本未知”,客户端:172.23.0.1,server:localhost,request:“GET/ajax HTTP/1.1“,上游:”fastcgi://172.23.0.4:9000“,主机:”localhost:8085“
nginx | 172.23.0.1 - - [27/Aug/2017:20:47:48 +0000]“GET/ajax HTTP/1.1”404 27“ - ”“Mozilla/5.0(X11; Linux x86_64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/60.0.3112.113 Safari/537.36“” - “
这是我的配置,我有什么改变?
upstream react {
server react:3000;
keepalive 8;
}
server {
listen 0.0.0.0:80;
server_name localhost;
location/{
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://react;
proxy_redirect off;
}
location /ajax {
index index.php index.html;
root /var/www/public;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
client_max_body_size 5m;
}
我试图
fastcgi_param SCRIPT_FILENAME在/ var/WWW /公共$ fastcgi_script_name;
的建议在某些线程,但不工作
后,您访问过的网址,并在文件夹中的文件应该有一部分它。另外请记住,阿贾克斯去在该网址的路径,所以如果您的文件夹没有Ajax的脚本运行将不会被发现,因此错误 –
感谢您的建议。我更新了我的帖子 – Sebastian