用一个子域configurationNginx

我做了我以前的研究,但似乎无法find如何正确configurationnginx接受一个子域名。

我目前正确地为mydomain.comconfiguration,但不是analytix.mydomain.com:

server { listen 80; server_name *.mydomain.com; access_log /home/ubuntu/virtualenv/mydomain/error/access.log; error_log /home/ubuntu/virtualenv/mydomain/error/error.log warn; connection_pool_size 2048; fastcgi_buffer_size 4K; fastcgi_buffers 64 4k; root /home/ubuntu/virtualenv/mydomain/homelaunch/; location /static/ { alias /home/ubuntu/virtualenv/mydomain/homelaunch/static/; } location / { proxy_pass http://127.0.0.1:8001; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"'; } } 

server_name声明接受<anythinghere>.mydomain.com这是很好的。

如果我访问analytix.mydomain.com ,它会抛出一个Http 500默认值,因为它从mydomain.com的现有应用程序中抛出

该域名已经传播到这个服务器,我试图访问它。

我怎样才能指定一个文件夹,在path,以容纳analytix.mydomain.com的内容? 我会假设我会需要更改nginx conf中的属性(如上所示)

创建一个新的server块,将server_name设置为所需的域。 nginx的正常目录和文件结构如下所示:

 /etc/nginx | |---- /sites-available | | | |---- default.conf | |---- /sites-enabled | |---- default.conf -> ../sites-available/default.conf 

您必须在sites-available创建一个新的文件,并在其中为您的子域sites-available新的server块,并在sites-enabled创建一个符号链接。 一个简单的nginx重新加载将带来新的服务器。

您的新文件结构如下所示:

 /etc/nginx | |---- /sites-available | | | |---- analytix.conf | | | |---- default.conf | |---- /sites-enabled | |---- analytix.conf -> ../sites-available/analytix.conf | |---- default.conf -> ../sites-available/default.conf 

以下是在您的服务器上直接执行此操作所需的命令:

 # cd /etc/nginx/sites-available # cat default.conf > analytix.conf # editor analytix.conf 

更改行server_name *.mydomain.com;server_name analytix.mydomain.com

 # ln -s analytix.conf ../sites-enabled/ # nginx -t 

只有当它说你的配置没问题的时候才能继续(它应该是)。

 # service nginx restart 

就是这样(请注意,上述所有命令都是针对基于Debian的发行版的,如果您使用其他命令,某些命令可能会有所不同)。


为了在服务器上传递不同软件的内容,您必须更改配置中的root指令,并将其指向其他软件的文档根目录。

 # editor analytix.conf 

更改root /home/ubuntu/virtualenv/mydomain/homelaunch/; root /path/to/other/software; 并重新加载你的nginx。

 # nginx -t && service nginx reload 

就是这样,你的新应用程序应该现在就开始服务。