使用nginx的基本安装,您的sites-available
文件夹只有一个文件:default
sites-available
文件夹如何工作以及如何使用它来托管多个(单独的)网站?
答案 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 names和How 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/;
}
}