我有两台虚拟机,第一台(vm-1)运行 nginx 作为反向代理,配置如下:
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}
server {
server_name example.com;
location /app1 {
proxy_pass http://ip-vm-2:8080;
}
location /app2 {
proxy_pass http://ip-vm-2:80;
}
listen 443 ssl;
ssl_certificate ....
}
对于第二个虚拟机(vm-2),我在端口 8080 上有 app1(一个独立的 jar),它工作正常,我可以从https://example.com/app1。
对于 app2,我安装了 nginx,并将网站复制到 /var/www/html,但我可以从http://ip-vm-2,我不工作https://example.com/app2,这就是我想要的。
我不知道反向代理中的配置到底有什么问题。
答案1
我还没有尝试过使用虚拟机,但这似乎合乎逻辑。
VM1 nginx 配置
server { listen 80; server_name example.com; return 301 https://example.com$request_uri; } server { server_name example.com; location /app1 { proxy_pass http://ip-vm-2:8080; } location /app2 { proxy_pass http://ip-vm-2; } listen 443 ssl; ssl_certificate .... }
VM2 nginx 配置
server { listen 80; server_name ip-vm-2; location / { root /var/www/html; try_files $uri $uri/ /index.html ; } }
如果有效请告诉我。