情况:我可以使用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,我不知道为什么。
试试这个:
location = /test {
proxy_pass http://10.32.19.107:8080/success;
}