Configuration 使用子域配置Nginx
我已经做了之前的研究,但似乎找不到如何正确配置nginx以接受子域 我目前已为mydomain.com正确配置,但未为analytix.mydomain.com配置:Configuration 使用子域配置Nginx,configuration,nginx,amazon-ec2,subdomain,Configuration,Nginx,Amazon Ec2,Subdomain,我已经做了之前的研究,但似乎找不到如何正确配置nginx以接受子域 我目前已为mydomain.com正确配置,但未为analytix.mydomain.com配置: server { listen 80; server_name *.mydomain.com; access_log /home/ubuntu/virtualenv/mydomain/error/access.log; error_log /hom
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\u name
声明正在接受.mydomain.com
,这很好
如果我访问analytix.mydomain.com
,它会抛出一个Http 500默认值,这很好,因为它会从mydomain.com
该域已分发到此服务器,我正在尝试访问它
如何在路径上指定文件夹来存放
analytix.mydomain.com
?我假设需要更改nginx conf中的一个属性(如上所示)创建一个新的server
块,将server\u名称设置为所需的域。nginx的正常目录和文件结构如下所示:
/etc/nginx
|
|---- /sites-available
| |
| |---- default.conf
|
|---- /sites-enabled
|
|---- default.conf -> ../sites-available/default.conf
/etc/nginx
|
|---- /sites-available
| |
| |---- analytix.conf
| |
| |---- default.conf
|
|---- /sites-enabled
|
|---- analytix.conf -> ../sites-available/analytix.conf
|
|---- default.conf -> ../sites-available/default.conf
您必须在站点可用
中为您的子域创建一个新文件,其中包含新的服务器
块,并在站点启用
中创建指向此新文件的符号链接。只需重新加载nginx即可启动新服务器
您的新文件结构如下所示:
/etc/nginx
|
|---- /sites-available
| |
| |---- default.conf
|
|---- /sites-enabled
|
|---- default.conf -> ../sites-available/default.conf
/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\u name*.mydomain.com
至服务器\u name analytix.mydomain.com
# ln -s analytix.conf ../sites-enabled/
# nginx -t
只有当它说您的配置正常(应该正常)时才继续
就是这样(请注意,以上所有命令都是针对基于Debian的发行版的,如果您使用其他命令,某些命令可能会有所不同)
为了在服务器上交付不同软件的内容,您必须更改配置中的root
指令,并将其指向其他软件的文档根
# editor analytix.conf
更改root/home/ubuntu/virtualenv/mydomain/homelaunch/代码>到根/路径/到/其他/软件
并重新加载nginx
# nginx -t && service nginx reload
就这样,您的新应用程序现在应该可以使用了。尝试更改服务器名称:
server_name "~^(?<sub>.+)\.mydomain\.com$";
server\u name“~^(?.+)\.mydomain\.com$”;
谢谢您的回答。我唯一的问题是ln-s analytix.conf../sites enabled/
,但当我将文件更改为绝对路径时,它按预期工作-ln-s/etc/nginx/sites available/analytix.conf../sites enabled/
您需要在正确的目录中才能执行答案中所示的操作,请在你的答案中添加一些解释,以便其他人可以从中学习