express - 根据 URL 前缀传递代理
问题描述
我是 NginX 的新手,我一直在试图弄清楚如何做以下事情;
- example.com 转发到在端口 3000 上运行的 express 应用程序,目的是为客户端提供服务。
- dashboard.example.com 转发到运行在端口 3001 上的 express 应用程序,目的是为管理员提供服务。
为此,我设置了以下配置;
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com dashboard.example.com;
return 302 https://$server_name$request_uri;
}
# dashboard.example.com for administrators.
server {
listen 80;
server_name dashboard.example.com;
location / {
proxy_pass http://localhost:3001;
}
}
# example.com for normal users.
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
server_name example.com www.example.com;
location / {
proxy_pass http://localhost:3000;
}
}
问题是 dashboard.example.com 和 example.com (就像www.example.com一样)都转发到在端口 3000 上运行的客户端服务器。我怎样才能让 dashboard.example.com 转发到 3001?
解决方案
问题似乎是您总是重定向到 https(干得好!),但您只在 server_name example.com 和www.example.com上侦听 SSL 流量(端口 443) ,并且在 ssl 上没有代理配置仪表板。尝试类似:
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com dashboard.example.com;
return 302 https://$server_name$request_uri;
}
# dashboard.example.com for administrators.
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
server_name dashboard.example.com;
location / {
proxy_pass http://localhost:3001;
}
}
# example.com for normal users.
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
server_name example.com www.example.com;
location / {
proxy_pass http://localhost:3000;
}
}
让我知道重写中间块是否适合你。如果不打算在管理员的仪表板上使用 https,则需要dashboard.example.com
从第 4 行中删除。
推荐阅读
- r - 创建一个函数,用于根据不同数据集的不同指标创建索引
- angular - How to configure angular-cli proxy to solve CORS errors
- c# - 无法从“方法组”转换为“TimerCallback”
- python - 用于可变长度序列的 LSTM 变分自动编码器
- python-3.x - Python、TCP、服务器和客户端
- hadoop - 主从系统操作系统版本
- string - 在 perl 中比较两个字符串并找到不匹配和匹配并计算它们
- python-3.x - 如何在 python 中运行程序时跳过我的 .txt 文件中的空白行
- javascript - 为函数 onclick getelementbyid 添加平滑滚动
- android - 在导航抽屉菜单项上使用 TapTargetView