要在 Nginx 中配置两个网站,可以根据域名和不同的端口进行反向代理。以下是一个示例配置文件,展示了如何为两个不同的域名设置不同的后端服务。
假设你有两个网站:
- 网站A,域名为
example-a.com
,监听端口为8080
- 网站B,域名为
example-b.com
,监听端口为8081
可以使用如下配置:
server {
listen 80;
server_name example-a.com;
location / {
proxy_pass http://localhost:8080; # 将请求转发到网站A的后端
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 example-b.com;
location / {
proxy_pass http://localhost:8081; # 将请求转发到网站B的后端
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:指定 Nginx 监听的端口,这里都是使用 HTTP 的默认端口 80。
- server_name:指定接受请求的域名。
- location /:表示匹配所有路径。
- proxy_pass:将流量转发到后端服务器。
- proxy_set_header:设置头部信息,以确保正确传递客户端的信息。
使用步骤:
- 将以上内容添加到你的 Nginx 配置文件中(通常位于
/etc/nginx/nginx.conf
或者/etc/nginx/sites-available/default
)。 - 保存配置文件并退出编辑器。
- 测试 Nginx 配置是否正确:
sudo nginx -t
- 如果没有错误,重新加载 Nginx 服务:
sudo systemctl reload nginx
这样就可以通过 http://example-a.com
和 http://example-b.com
分别访问这两个不同的网站。
内容由零声教学AI助手提供,问题来源于学员提问