如果两个网站在同一台服务器上运行,但使用不同的端口并且想要通过不同的域名访问,可以在 Nginx 中为每个域名配置相应的 server
块,指定各自的端口。
以下是一个示例 Nginx 配置文件,假设:
- 网站 A 使用域名
example-a.com
,监听端口8080
- 网站 B 使用域名
example-b.com
,监听端口8081
示例配置
# 网站 A 配置
server {
listen 80;
server_name example-a.com;
location / {
proxy_pass http://localhost:8080; # 将请求转发到后端网站A(8080端口)
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;
}
}
# 网站 B 配置
server {
listen 80;
server_name example-b.com;
location / {
proxy_pass http://localhost:8081; # 将请求转发到后端网站B(8081端口)
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;
}
}
配置说明:
- listen 80:Nginx 在 HTTP 的默认端口(80)上监听传入请求。
- server_name:为每个站点指定其对应的域名。
- location /:匹配所有请求路径,将流量转发给对应后端服务。
- proxy_pass:指定代理到后端服务的地址,这里分别为
http://localhost:8080
和http://localhost:8081
。 - proxy_set_header:设置一些头部信息,以确保后端应用能正确获取客户端信息。
使用步骤:
- 将以上内容添加到你的 Nginx 配置文件中(通常在
/etc/nginx/nginx.conf
或者/etc/nginx/sites-available/default
)。 - 保存并退出编辑器。
- 测试 Nginx 配置是否有效:
sudo nginx -t
- 如果没有错误,重新加载 Nginx 服务以使配置生效:
sudo systemctl reload nginx
注意事项:
- 确保 DNS 设置已经指向该服务器 IP,并且能够解析相应的域名。
- 后台服务需要保证能够在指定的8078和8079等各自的高位上正常启动。
内容由零声教学AI助手提供,问题来源于学员提问