我正在尝试配置我的 nginx 以支持不同端口的 ssl。如果我对运行我的 React 应用程序的端口 3000 执行此操作,则只会变成 https,这意味着它不允许端口 5000 请求通过,因为 5000 仍然是 http。我使用的是aws ec2。下面是我的 nginx 默认文件代码。
server {
listen 80;
listen [::]:80;
server_name merkle.org www.merkle.org;
return 301 https://merkle.org$request_uri;
}
server {
listen 443 ssl;
server_name merkle.org web.merkle.org;
# Certificate
ssl_certificate /etc/nginx/ssl/merkle_org.crt;
# Private Key
ssl_certificate_key /etc/nginx/ssl/private.key;
location / {
# My react
proxy_pass http://localhost:3000;
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;
}
location /5000 {
# This is my nodejs API
proxy_pass http://localhost:5000;
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;
}
}
我正在尝试配置我的 nginx 以支持不同端口的 ssl
我假设您实际上希望在不同后端端口的单个端口(默认为 443)上支持 SSL,对吗?
在这种情况下,你首先需要想办法清楚地区分传入的请求。这里(至少)有两种流行的方法:
api.example.com
/api
请注意,对于第一种方法,您需要一个单独的证书(或包含此名称的单个证书)。