基本安装nginx后,您的sites-available
文件夹只有一个文件:default
该sites-available
文件夹如何工作,我将如何使用它托管多个(单独的)网站?
Answers:
只需添加另一种方法,您就可以为托管的每个虚拟域或站点使用单独的文件。您可以将默认副本作为每个副本的起点,并为每个站点进行自定义。
然后在启用站点的站点中创建符号链接。这样,您可以通过添加或删除符号链接并发布服务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
处于脱机状态。
如果您看一下nginx.conf
,您将找到include
包含sites-enabled
目录中所有文件的指令。此目录存储从中指向配置文件的符号链接sites-available
,以便于打开和关闭部分配置。
如您所见,这些目录没有神奇之处。
如果要托管多个网站,则应使用多个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
使用您选择的编辑器编辑文件(对我而言是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/;
}
}