Nginx返回404,无法代理至fastcgi-mono-server4问题求助
Ubuntu部署ASP.NET应用:Nginx返回404且请求未转发至fastcgi-mono-server4
问题描述
在Ubuntu环境部署ASP.NET基础应用,已安装所有必要组件,尝试通过Nginx提供index.html或index.aspx服务,但Nginx始终返回404,请求从未转发至fastcgi-mono-server4。
启动Mono服务器的命令
fastcgi-mono-server4 /loglevels=All /printlog /verbose /applications=/:/opt/esoa /socket=tcp:127.0.0.1:9000
Nginx配置
server { listen 80; server_name _; location / { root /opt/esoa; index index.html; access_log /var/log/nginx/esoa.log; fastcgi_param SERVER_NAME $host; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO ""; fastcgi_pass 127.0.0.1:9000; include /etc/nginx/fastcgi_params; } }
Mono服务器启动日志
6611: 1 fastcgi-mono-server [2023-01-27 01:34:35.980188] Debug : fastcgi-mono-server4 6611: 1 fastcgi-mono-server [2023-01-27 01:34:35.987638] Debug : Uid 1000, euid 1000, gid 1000, egid 1000 6611: 1 fastcgi-mono-server [2023-01-27 01:34:35.988138] Debug : Root directory: /home/ubuntu/test 6611: 1 fastcgi-mono-server [2023-01-27 01:34:35.989834] Notice : Adding applications '/:/opt/esoa'... 6611: 1 fastcgi-mono-server [2023-01-27 01:34:35.990535] Notice : Registering application: 6611: 1 fastcgi-mono-server [2023-01-27 01:34:35.990600] Notice : Host: any 6611: 1 fastcgi-mono-server [2023-01-27 01:34:35.990651] Notice : Port: any 6611: 1 fastcgi-mono-server [2023-01-27 01:34:35.990701] Notice : Virtual path: / 6611: 1 fastcgi-mono-server [2023-01-27 01:34:35.990765] Notice : Physical path: /opt/esoa/ 6611: 1 fastcgi-mono-server [2023-01-27 01:34:36.005144] Debug : Parsed tcp:127.0.0.1:9000 as URI tcp:127.0.0.1:9000 6611: 1 fastcgi-mono-server [2023-01-27 01:34:36.027285] Debug : Listening on port: 9000 6611: 1 fastcgi-mono-server [2023-01-27 01:34:36.027847] Debug : Listening on address: 127.0.0.1 6611: 1 fastcgi-mono-server [2023-01-27 01:34:36.031714] Debug : Max connections: 1024 6611: 1 fastcgi-mono-server [2023-01-27 01:34:36.031817] Debug : Max requests: 1024 6611: 1 fastcgi-mono-server [2023-01-27 01:34:36.031973] Debug : Multiplex connections: False 6611: 3 fastcgi-mono-server [2023-01-27 01:34:36.036418] Debug : Server started [callback: Mono.WebServer.FastCgi.ServerProxy]
测试结果
ubuntu@ip-XXX-31-XXX-XXX:~$ wget http://127.0.0.1/index.html --2023-01-27 01:51:58-- http://127.0.0.1/index.html Connecting to 127.0.0.1:80... connected. HTTP request sent, awaiting response... 404 Not Found 2023-01-27 01:51:58 ERROR 404: Not Found.
排查与解决步骤
1. 检查文件路径与权限
- 确认
/opt/esoa目录下存在目标文件:ls -l /opt/esoa/ - 赋予Nginx进程(通常为
www-data用户)读取权限:chown -R www-data:www-data /opt/esoa chmod -R 755 /opt/esoa
2. 调整Nginx配置参数顺序
include /etc/nginx/fastcgi_params会覆盖自定义参数,需将其移至自定义参数之前,同时添加index.aspx作为索引选项:
server { listen 80; server_name _; location / { root /opt/esoa; index index.html index.aspx; access_log /var/log/nginx/esoa.log; include /etc/nginx/fastcgi_params; fastcgi_param SERVER_NAME $host; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO ""; fastcgi_pass 127.0.0.1:9000; } }
修改后重启Nginx:
systemctl restart nginx
3. 验证FastCGI端口连通性
检查9000端口是否可正常访问:
nc -zv 127.0.0.1 9000
若连接失败,重启fastcgi-mono-server4:
pkill fastcgi-mono-server4 fastcgi-mono-server4 /loglevels=All /printlog /verbose /applications=/:/opt/esoa /socket=tcp:127.0.0.1:9000 &
4. 查看Nginx错误日志定位问题
通过错误日志获取404具体原因:
tail -f /var/log/nginx/error.log
内容的提问来源于stack exchange,提问作者LiteWait
相关产品推荐
相关产品推荐

