使用Nginx的反向代理多角度应用程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Nginx的反向代理多角度应用程序相关的知识,希望对你有一定的参考价值。
我有两个不同的角度应用程序(分别说alpha和beta),它们在两个基于docker nginx的容器中运行,我需要根据子域路由到角度应用程序。在那里,我在docker中使用了另一个nginx实例作为反向代理。我也想使用SSL。初始路由工作正常。但是,当我刷新浏览器时,它会显示404。我尝试了try_files $uri $uri/ /index.html;
,但没有成功。有人可以在这里帮助我。
基本上有3个容器正在运行。两个用于Angualr应用程序,一个用于代理。所有运行在单个Docker主机中。
提到的角度应用程序在nginx容器中运行,并且它们使用以下nginx配置。
Alpha版本使用:
server {
listen 5100;
server_name localhost;
location / {
root /usr/share/nginx/html;
}
}
测试版使用:
server {
listen 5200;
server_name localhost;
location / {
root /usr/share/nginx/html;
}
}
它们都在端口80以外的两个不同端口中运行;
下面是我编写的nginx反向代理配置。
upstream valpha {
server alpha:5100;
}
upstream vbeta {
server beta:5200;
}
server {
listen 80;
server_name *.mydomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name subdomainalpha.mydomain.com;
ssl_certificate /etc/ssl/mydomain.com.crt;
ssl_certificate_key /etc/ssl/mydomain.com.key;
location / {
proxy_pass http://valpha;
}
}
server {
listen 443 ssl;
server_name subdomainbeta.mydomain.com;
ssl_certificate /etc/ssl/mydomain.com.crt;
ssl_certificate_key /etc/ssl/mydomain.com.key;
location / {
proxy_pass http://vbeta;
}
}
提前感谢。
答案
您对两者都使用相同的root
。您应该执行以下操作
location / {
alias /var/www/html/app_one/dist/;
try_files $uri$args $uri$args/ /app_one/index.html;
}
并且另一台服务器应使用不同的文件夹,例如alias /var/www/html/app_two/dist/
;
以上是关于使用Nginx的反向代理多角度应用程序的主要内容,如果未能解决你的问题,请参考以下文章