我在部署了Silex项目的服务器上遇到此错误。
在这台服务器上,我已经让nginx将来自/
的请求传递到运行在端口5000中的Flask应用程序。
所以,在将新项目从我的存储库拉到/var/www/newproject
之后,我试图配置nginx,这样对http://xxx.xxx.xxx.xxx/newproject
的请求将根指向/var/www/newproject
,这是一个silex应用程序。
我在网上搜索了一下,发现的所有配置都不能解决我的问题。 访问任何路由,返回404。
我的整个配置如下:
server {
listen 80;
server_name xxx.xxx.xxx.xxx;
access_log /var/log/myproject/nginx_access.log;
error_log /var/log/myproject/nginx_error.log;
proxy_connect_timeout 300s;
proxy_read_timeout 300s;
location /newproject {
root /var/www;
try_files $uri $uri/ =404;
index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
#fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/newproject/index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME /var/www/newproject$fastcgi_script_name;
include fastcgi_params;
}
location / {
root /opt/myproject;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://xxx.xxx.xxx.xxx:5000;
break;
}
}
}
我错过了什么?
谢谢你。
更新:
尝试了一个新的配置(如下),现在访问http://xxx.xxx.xxx.xxx/newproject/SOME_PATH我有一个404。
open() "/var/www/newproject/SOME_PATH" failed (20: Not a directory)
open() "/var/www/newproject/index.php/SOME_PATH" failed (20: Not a directory)
location /newproject {
root /var/www/;
index index.php index.html index.htm;
location ~ ^/newproject/(.+\.php)$ {
try_files $uri =404;
root /var/www/;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param HTTPS off;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include /etc/nginx/fastcgi_params;
}
location ~* ^/newproject/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /var/www/;
}
}
所以,我已经设法解决了这个问题Site Configuration for Nginx Sub-Folder
现在我的配置是:
由于newproject依赖于myproject,所以我将它们的配置保存在同一个文件中,以及相同的nginx访问和错误日志文件中。
不要忘记检查用户:nginx&;php fpm的组
如果php fpm仍在运行“apache”用户,并且您已经在nginx和http目录上切换了用户“nginx”,则错误消息将相同!
并重新加载两者
相关问题 更多 >
编程相关推荐