Nginx反向代理后台服务报404遇到的解决方法

访问地址:http://IP:端口/ceshi/chael/coonMouthpiece
配置后台服务反向代理的时候报:

 [31/Dec/2020:14:27:43 +0800] "POST /ceshi/chael/coonMouthpiece HTTP/1.1" 404 0 "-" "PostmanRuntime/6.4.1"

错误信息查询nginx后台日志可知:

tail -f /usr/local/nginx/logs/access.log

错误配置如下:

  server {
        listen 80;
        server_name localhost;
location /ceshi {
    proxy_pass http://192.168.1.110:8080;
    proxy_set_header    X-Forwarded-Host    $host;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
		}
}

经多次调试,发现http://192.168.1.110:8080/地址后少加了 /,加上之后再次调用就转发成功了
正确配置:

server {
        listen 80;
        server_name localhost;
location /ceshi/ {
    proxy_pass http://192.168.1.110:8080/;
    proxy_set_header    X-Forwarded-Host    $host;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
		}
}

也可以匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
IP地址后面跟channel 例如:/chael/coonMouthpiece

upstream tomcat{
    server 192.168.1.121:8083;
}
server {
        listen 8080;
        server_name localhost;
	location ^~ /channel/{
        proxy_pass http://tomcat;
    }
}

或者
        location /wu/ {
            proxy_pass http://192.168.1.110:8082/wu/;
            proxy_set_header Host $http_host;
            proxy_set_header    X-Forwarded-Host    $host;
            proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        }

http://192.168.1.1:8081/chael/servi_restful/rest/polHandler/xaCancelT
另外一种,代理后台之后,不需要增加地址的方式

location /chael/servi_restful/ {
    proxy_pass http://192.168.1.25:8210/chael/servi_restful/;
    proxy_set_header Host $http_host;
    proxy_set_header    X-Forwarded-Host    $host;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
}

	或者
location ^~ /chael/servi_restful/ {
    proxy_pass http://192.168.1.25:8210/chael/servi_restful/;
    proxy_set_header Host $http_host;
    proxy_set_header    X-Forwarded-Host    $host;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
}
当您将Django项目部署到由Nginx作为反向代理服务器的环境中,并且尝试通过Nginx访问Django的后台管理界面(admin),却遇到404错误,这通常意味着Nginx没有正确地配置URL转发或者是路径映射有问题。 以下是可能导致这个问题的一些原因和解决步骤: 1. **URL配置**:确认Nginx配置文件(如`nginx.conf`或`.htaccess`)中设置的Django应用前缀是否正确。例如,如果您的Django项目的url模式是`http://example.com/admin/`,那么Nginx应该有类似这样的规则: ```nginx location /admin { proxy_pass http://your-django-server:8000/admin; # 更改为你实际的Django服务器地址和端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } ``` 2. **Nginx虚拟主机配置**:确保在虚拟主机配置中,你的`server_name`匹配了实际访问域名,以便正确指向Django应用。 3. **Django反向代理设置**:检查Django项目的settings.py文件中是否配置了正确的`ALLOWED_HOSTS`,允许从外部IP或域名访问admin。 4. **权限验证**:如果Nginx和Django不在同一台服务器上,可能需要在Django中关闭跨站请求限制(CORS)临时测试,因为默认情况下它可能会阻止非同源请求。 5. **Nginx日志**:检查Nginx的日志文件(通常是`error.log`)以获取更详细的错误信息,帮助定位问题。 如果你已经排除了上述可能性,还遇到问题,可以尝试重启Nginx服务并查看相关日志,进一步排查问题。同时,记得在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被生活耽误的旅行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值