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

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

sites-available文件夹是如何工作的?我将如何使用它来托pipe多个(单独的)网站?

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

您可以变得富有创造性,并在进行网站维护时使用此方法将网站redirect到维护模式页面。

所以结构如下所示:

 /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-enabledsites-enabled的唯一符号链接项,因此第三个条目someOtherSite.com因此处于脱机状态。

如果您查看nginx.conf ,您会发现include来自sites-enabledsites-enabled目录中的所有文件的include指令。 该目录存储符号链接,以便从sites-availableconfiguration文件sites-available ,以便方便地打开和closures部分configuration。

正如你所看到的,这些目录没有什么魔力。

如果您想要托pipe多个网站,则应使用多个server块和/或server_name指令。 官方教程在这里: 服务器名称和nginx如何处理请求 。

您将可用站点的默认文件链接到启用的站点。 然后,修改可用站点以包含两个服务器块,每个服务器块使用不同的server_name。 请参阅以下内容。 这假设你必须有名为example.com和example2.com的域名。 你也可以把你的@records指向你安装了nginx的服务器的ip地址。

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

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

编辑文件使用您select的编辑器(vim为我)

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

假设你在端口4567和4568上运行web应用程序,这里是工作nginx conf的内容。

 server { server_name www.example.com location / { proxy_pass http://localhost:4567/; } } server { server_name www.example2.com location { proxy_pass http://localhost:4568/; } }