我目前正在尝试为两个Angular应用创建反向代理。我希望都可以通过启用SSL的docker主机的443端口访问应用程序(例如https://192.168.xx/app1和https://192.168.xx/app2),以便用户没有输入每个应用程序的端口号。
我的设置是,应用程序的每个部分都在其自己的Docker容器中运行:-容器1:Angular App 1(端口80暴露在端口8080上的主机上)-容器2:Angular App 2(端口80暴露在端口Port上的主机上) 8081)-容器3:反向代理(端口443暴露)
Angular应用程序和反向代理都在nginx上运行。这些应用程序的构建如下:ng build --prod --base-href /app1/ --deploy-url /app1/
应用程序的Nginx设置是这样的:
server {
listen 80;
sendfile on;
default_type application/octet-stream;
gzip on;
gzip_http_version 1.1;
gzip_disable "MSIE [1-6]\.";
gzip_min_length 256;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_comp_level 9;
root /usr/share/nginx/html;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html =404;
}
}
Run Code Online (Sandbox Code Playgroud)
反向代理的nginx配置如下所示:
server {
listen 443;
ssl on;
ssl_certificate …Run Code Online (Sandbox Code Playgroud)