nginx - Nginx 将流量发送到错误的端口
问题描述
我有 2 个 Nginx 配置文件(为了隐私而更改了域)。
server {
listen 80;
listen 443 ssl http2;
server_name beta.mydomain.io;
ssl_certificate /etc/letsencrypt/live/mydomain.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.io/privkey.pem;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
location / {
proxy_pass http://localhost:3001;
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
listen 443 ssl http2;
server_name mydomain.io, www.mydomain.io;
ssl_certificate /etc/letsencrypt/live/mydomain.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.io/privkey.pem;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
location / {
proxy_pass http://127.0.0.1:3002;
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr;
}
}
出于某种原因,导航到 mydomain.io 会将您带到 beta 版本,只有 www.mydomain.io 会将您带到端口 3002 上的那个。我似乎找不到其他人遇到此问题。
解决方案
我正要发布这个问题然后意识到我的错误。我在域之间添加了一个逗号,这不是 server_name 指令的正确语法。我希望它可以帮助别人。我将其删除并重新启动了 nginx 服务器。它现在工作得很好。
推荐阅读
- php - 卷曲错误:无法解析主机:www.google.com;名称或服务未知 POST PHP
- javascript - 将数据插入数据库表的条件
- c# - 进行 cURL GET 调用是 C# 和 .Net
- ios - 如何在我的 iOS 应用程序和第三方应用程序之间共享数据?
- c - 如何在输出缓冲区中添加换行符?
- ubuntu - 如何通过带有 FritzBox 的 DynDNS 将 FQDN 委托给 Ubuntu 网络服务器
- android - 即使在生成密钥后直接与共享它也未安装android应用程序
- c# - 是否有一个函数可以忽略“ᔓ锓ó”“í”和“ú”等字符?
- php - 删除路线没有得到任何数据Laravel 6.X
- javascript - React Hooks 问题:打开模块化模式