![cd /etc/nginx/sites-available/](https://linux22.com/image/573204/cd%20%2Fetc%2Fnginx%2Fsites-available%2F.png)
我有两个 HTTP 服务器。其中一个 (A) 监听端口 3000,另一个 (B) 监听端口 4000。此外,我有两个域example1.com
和example2.com
。另一方面,我有一个 nginx 服务器监听端口 80。
我希望当请求使用example1.com
域时从服务器 A 获取响应,当请求使用时从服务器 B 获取响应example2.com
。
我应该如何配置 nginx?
答案1
您必须使用proxy_pass
(这可能需要更多的配置)
http://wiki.nginx.org/HttpProxyModule#proxy_pass
http {
server {
server_name www.example1.com;
root /var/www/example1.com/htdocs;
location / {
proxy_pass http://127.0.0.1:3000/;
// more configuration
}
}
server {
server_name www.example2.com;
root /var/www/example2.com/htdocs;
location / {
proxy_pass http://127.0.0.1:4000/;
// more configuration
}
}
}
答案2
您可以为 example1.com 和 exmaple2.com 设置 vhost 和别名
cd /etc/nginx/sites-available/
为您的域名创建一个虚拟主机,有关更多详细信息,请点击此链接。 http://wiki.nginx.org/VirtualHostExample
http {
index index.html;
server {
server_name www.example1.com;
access_log logs/example2.access.log main;
root /var/www/example.com/htdocs;
}
server {
server_name www.exampl2.com;
access_log logs/example2.access.log main;
root /var/www/example2.com/htdocs;
}
}