如何解决Nginx 条件代理 pass 配置
我有 2 个不同的(Node 和 Angular)应用程序在一个域下运行。我正在尝试配置 nginx 以提供类似服务,每当有人访问“domain.com”时,它都应该为在端口 4200 上运行的节点应用程序提供服务,如果有人访问“domain.com/admin”,它应该为来自 Angular 应用程序的内容提供服务。下面是我的nginx配置。
server {
listen 80;
listen [::]:80;
server_name domain.com
}
server {
listen 443 default_server ssl;
ssl on;
server_name domain.com;
root /home/domain/public_html/angular/dist;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
location / {
proxy_pass http://127.0.0.1:4200;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
location /admin {
try_files $uri /index.html;
}
}
我现在面临的问题是包括 /admin 在内的所有请求都通过了代理。有什么办法可以限制 /admin 请求不让代理通过?下面是nginx日志。
connect() 连接到上游时失败(111:连接被拒绝),客户端:xxxx,服务器:domain.com,请求:“GET /admin HTTP/1.1”,上游:“http://127.0.0.1: 4200/admin",主机: "domain.com"
有人可以帮忙解决这个问题吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。