Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在配置 Nginx 时,经常需要为不同的域名指定不同的端口号,以便实现多个服务的隔离和管理。
假设我们有两个域名 example.com
和 test.com
,分别运行在不同的端口上。
nginx.conf
)http {
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name test.com;
location / {
proxy_pass http://localhost:4000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
在这个配置中:
example.com
的请求会被转发到本地的 3000 端口。test.com
的请求会被转发到本地的 4000 端口。原因:多个服务尝试绑定到同一个端口。
解决方法:
原因:DNS 解析不正确,导致请求无法正确路由到相应的服务。
解决方法:
ping
或 nslookup
工具检查域名解析是否正确。原因:修改了 Nginx 配置文件后未重新加载或重启 Nginx。
解决方法:
通过以上配置和解决方法,可以有效地管理和优化 Nginx 的多域名端口配置。
领取专属 10元无门槛券
手把手带您无忧上云