如何解决nginx 无法解析 url 并返回 404
在 openshift 中使用 Nginx 将我的请求路由到 webapi openshift 服务。这些请求来自一个 js 客户端,axios POST 调用(https://service.myapp.com/service1
)。到目前为止非常好。我需要向我的令牌服务添加令牌刷新调用。因此,在 js 客户端中,我进行了检查,如有必要,将帖子发送到 tokenservice https://token.myapp.com/refresh
路由。此请求已成功从 Nginx 路由到 tokenservice。收到新令牌后,向我的原始服务 URL https://service.myapp.com/service1
发送另一个 POST。但是这次Nginx无法将请求路由到服务api并且收到了404。此 404 响应具有响应标头 server: Kestrel
。另一方面,我最初成功调用 service1(200 响应)的结果是 server: Nginx:1.17.8
。为什么 Nginx 在令牌刷新调用后开始不路由我的 /service1 调用?我错过了什么?
Nginx配置如下。
server {
listen 8081 ssl http2;
ssl_certificate /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/certs/cert.key;
server_name service.myapp.com;
location ~ /servicex1 {
proxy_pass https://servicex1:49253;
proxy_http_version 1.1;
proxy_ssl_server_name on;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
location ~ /servicex2 {
proxy_pass https://servicex2:49253;
proxy_http_version 1.1;
proxy_ssl_server_name on;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
location / {
proxy_pass https://myservers;
proxy_http_version 1.1;
proxy_ssl_server_name on;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
}
server {
listen 8081 ssl http2;
ssl_certificate /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/certs/cert.key;
server_name token.myapp.com;
location / {
proxy_pass https://tokenmicroservice:26560;
proxy_http_version 1.1;
proxy_ssl_server_name on;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
location ~ /refresh {
proxy_pass https://tokenmicroservice:26560;
proxy_http_version 1.1;
proxy_ssl_server_name on;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
location ~ /login {
proxy_pass https://tokenmicroservice:26560;
proxy_http_version 1.1;
proxy_ssl_server_name on;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。