nginx和sites-available上的多个网站

Kri*_*ian 70 linux webserver nginx

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

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

Car*_*los 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
Run Code Online (Sandbox Code Playgroud)

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


VBa*_*art 27

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

如您所见,这些目录没有神奇之处.

如果要托管多个网站,则应使用多个server块和/或server_name指令.官方教程如下:服务器名称nginx如何处理请求.


jmo*_*oss 18

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

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

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
Run Code Online (Sandbox Code Playgroud)

使用您选择的编辑器编辑文件(对我来说是vim)

sudo vi /etc/nginx/sites-available/default
Run Code Online (Sandbox Code Playgroud)

这是工作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/;
    }

}
Run Code Online (Sandbox Code Playgroud)