我需要在端口 8080 上设置 SSL,以允许用户通过 https 访问在同一服务器上开发和部署的多个 API,
所以我使用 NGINX 来开发这个 SSL + 路由配置。
这是nginx/default.conf
server {
listen 8080 ssl;
server_name api.example.com;
ssl_certificate /etc/nginx/certs/api_example_com.pem;
ssl_certificate_key /etc/nginx/certs/api_example_com.key;
location / {
proxy_pass http://192.168.100.12:4000;
}
location /web/ {
proxy_pass http://192.168.100.12:4000;
}
location /admin/ {
proxy_pass http://192.168.100.12:5000;
}
}
现在,api.example.com运行正常,我可以通过以下方式访问在 4000 端口上运行的 APIapi.example.com。
但api.example.com/web和api.example.com/admin控制台上出现 404 错误,
22/Dec/2020:19:20:07 +0000] "GET /admin/ HTTP/1.1" 404 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
答案1
解决了在 proxy_pass URL 末尾添加 / 的问题
proxy_pass http://192.168.100.12:4000/;