NGINX多个服务器相同的IP

时间:2015-01-09 16:23:22

标签: nginx server virtual-hosts

我想按如下方式配置我的服务器:

  • 只有1台服务器,1个IP,
  • 只有1个指向该IP的域名,请说example.com
  • 在nginx上运行的两个不同的Web应用程序(在同一个端口80上),分隔为/site1/site2

是否可以配置sites-available/site1sites-available/site2配置文件,以便在第一种情况下通过http://example.com/site1访问它们,在第二种情况下通过http://example.com/site2进行访问?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以将它们分成2个文件,但这有点棘手,因为您基本上创建了一个网站,但配置了两个位置,例如这里是一个骨架

server {
  # listen 80 is default
  location /site1 {
    # do stuff
  }
  location /site2 {
    # do different stuff
  }
}

要将其分开,您需要在服务器范围内包含这两个位置,而不是http范围(默认情况下会发生)

为此,您需要示例创建一个名为/etc/nginx/site-includes的文件夹,并在其中添加site1site2,然后在您的网站内在/etc/nginx/sites-available内,您可以像这样包含它们

server {
  # listen 80 is default
  include /etc/nginx/site-includes/site1;
  include /etc/nginx/site-includes/site2;
}

每个文件都会包含location代码段

location /site1 {
  # do stuff
}

您可以使用通配符

删除依赖项(文件名)
server {
  # listen 80 is default
  include /etc/nginx/site-includes/my-site/*;
}

然后在/etc/nginx/site-includes/my-site/目录中添加尽可能多的文件。

/etc/nginx/nginx.conf

中已经使用了类似的方法
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;