为什么Nginx无法向后端发送请求?

问题描述 投票:0回答:1

情况:我可以使用Spring Boot访问http://10.32.19.107:8080/success页面,并且我为Nginx编写了一个default.conf,如下所示:

location /test/ {
        proxy_pass http://10.32.19.107:8080/success;
    }

然后我重新启动 docker 中的 Nginx 容器。我输入了 http://10.32.19.107/test 但得到了 404。

这是我的整个 Nginx default.conf:

server {

    listen       80;
    server_name  10.32.19.107;

    # 首页
    index index.html;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    location /test/ {
        proxy_pass http://10.32.19.107:8080/success;
    }

    location /api/ {
        auth_request /auth;
        
        proxy_pass http://10.32.19.107:8080/success;
    }

    location = /auth {
        
        internal;
        
        set $query '';
        if ($request_uri ~* "[^\?]+\?(.*)$") {
            set $query $1;
        }
        
        proxy_pass http://10.32.19.107:8080/verify?$query;
        
        proxy_pass_request_body off;
        
        proxy_set_header Content-Type "";
     }

    error_page 404 /404.html;
        location = /40x.html {

        }

    error_page   500 502 503 504  /50x.html;
     location = /50x.html {
     }

}

任务:当我输入http://10.32.19.107/test时,我想访问与http://10.32.19.107:8080/success相同的页面。

操作:我删除了 Nginx 容器,并将 conf、html、logs、ssl、nginx.conf、conf.d、default.conf 映射到 Nginx 中的同一文件/目录,然后重新安装容器。这是我的命令:

sudo docker run --name Nginx -p 80:80 

-v /home/jpdeng/projects/openai-microservice/dev-ops/nginx/logs:/var/log/nginx  \

-v /home/jpdeng/projects/openai-microservice/dev-ops/nginx/html:/usr/share/nginx/html \

-v /home/jpdeng/projects/openai-microservice/dev-ops/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \

-v /home/jpdeng/projects/openai-microservice/dev-ops/nginx/conf/conf.d:/etc/nginx/conf.d \

-v /home/jpdeng/projects/openai-microservice/dev-ops/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf \

-v /home/jpdeng/projects/openai-microservice/dev-ops/nginx/ssl:/etc/nginx/ssl/  \--privileged=true -d --restart=always nginx

结果:还是404,我不知道为什么。

java spring-boot nginx testing networking
1个回答
0
投票

试试这个:

    location = /test {
        proxy_pass http://10.32.19.107:8080/success;
    }
© www.soinside.com 2019 - 2024. All rights reserved.