如何在nginx中定义不同IP上的两个服务器?

如何在nginx中定义不同IP上的两个服务器?

问题如下:我有两个域名,它们指向服务器上的两个可用 IP。例如:

siteone.com 指向 1.2.3.4 sitetwo.com 指向 1.2.3.5

我配置 nginx vhosts 时所做的就是

server {
        listen    site1.com:80; # 
        server_name   site1.com www.site1.com;

在 vhost1 文件上

server {
        listen    site2.com:80; # 
        server_name   site2.com www.site2.com;

在(单独的)vhost2 文件上。当然,这两个 vhost 文件是精确复制的,除了 site1 和 site2 路径。并且 vhost1 本身运行良好。

但是重新启动 nginx 后出现此错误:

重新启动 nginx:配置文件 /etc/nginx/nginx.conf 语法正常 [emerg]: bind() to 1.2.3.5:80 失败 (99: 无法分配请求的地址)配置文件 /etc/nginx/nginx.conf 测试失败

当我放

server {
        listen   *:80; # 
        server_name   site2.com www.site2.com;

在 site2 vhost 上,nginx 重新启动且没有错误,但不会在 site2 路径上呈现页面。

我很困惑,感谢您的帮助。

答案1

尝试这个:

server {
    listen    1.2.3.4:80; # 
    server_name   site1.com www.site1.com;
    ...
}

server {
    listen    1.2.3.5:80; # 
    server_name   site2.com www.site2.com;
    ...
}

相关内容