nginx&上的多个网站网站可用

时间:2012-07-27 17:56:51

标签: linux nginx webserver

使用nginx的基本安装,您的sites-available文件夹只有一个文件:default

sites-available文件夹如何工作以及如何使用它来托管多个(单独的)网站?

3 个答案:

答案 0 :(得分:86)

只是为了添加另一种方法,您可以为您托管的每个虚拟域或站点使用单独的文件。 您可以使用默认副本作为每个站点的起点,并为每个站点进行自定义 然后在已启用站点中创建符号链接。通过这种方式,您只需添加或删除符号链接并发出服务nginx重新加载即可上下站点。

您可以获得创意,并在进行网站维护时使用此方法将网站重定向到维护模式页面。

所以结构看起来像这样:

/sites-available/ (you can use obvious file names like this)
| 
|-> a.mysite.com
|-> b.mysite.com
|-> someOtherSite.com

/sites-enabled/ (these are just symlinks to the real files in /sites-available)
| 
|-> a.mysite.com
|-> b.mysite.com

请注意,由于sites-enabled中只有前两个条目是唯一符号链接的项目,因此第三个条目someOtherSite.com离线。

答案 1 :(得分:27)

如果查看nginx.conf,您会发现include指令包含sites-enabled目录中的所有文件。此目录将符号链接存储到sites-available的配置文件,以便于打开和关闭部分配置。

正如您所看到的,这些目录没有什么神奇之处。

如果您想托管多个网站,则应使用多个server块和/或server_name指令。官方教程如下:Server namesHow nginx processes a request

答案 2 :(得分:17)

您可以对启用的网站可用网站的默认文件进行符号链接。然后,您修改可用站点以包括两个服务器块,每个服务器块具有不同的server_name。请参阅以下内容。这假设您必须使用名为example.com和example2.com的域。您还可以将@records指向已安装nginx的服务器的IP地址。

将可用网站符号链接到已启用的网站

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

使用您选择的编辑器编辑文件(vim for me)

sudo vi /etc/nginx/sites-available/default

以下是工作nginx conf的内容,假设您在端口4567和4568上运行Web应用程序。

server {

    server_name www.example.com

    location / {
        proxy_pass http://localhost:4567/;
    }

}


server {

    server_name www.example2.com

    location {
        proxy_pass http://localhost:4568/;
    }

}