我是Nginx的新手,我正在尝试让子域工作。
我想做的是把我的域(让我们称之为example.com
)和添加:
sub1.example.com
,sub2.example.com
,还具有www.example.com
可用。
我知道如何用Apache做到这一点,但Nginx是一个真实的的挠头。
我在运行Debian 6。
我的当前/etc/nginx/sites-enabled/example.com:
server {
server_name www.example.com example.com;
access_log /srv/www/www.example.com/logs/access.log;
error_log /srv/www/www.example.com/logs/error.log;
root /srv/www/www.example.com/public_html;
location / {
index index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name;
}
}
它正在为example.com和www.example.com提供服务。
我已尝试在同一文件中添加第二个服务器块,如下所示:
server {
server_name www.example.com example.com;
access_log /srv/www/www.example.com/logs/access.log;
error_log /srv/www/www.example.com/logs/error.log;
root /srv/www/www.example.com/public_html;
server {
server_name sub1.example.com;
access_log /srv/www/example.com/logs/sub1-access.log;
error_log /srv/www/example.com/logs/sub1-error.log;
root /srv/www/example.com/sub1;
}
location / {
index index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name;
}
}
没找到。有什么想法吗?我会非常感谢任何反馈。
6条答案
按热度按时间1mrurvl11#
错误是将服务器块放在服务器块内,您应该关闭主服务器块,然后为子域打开一个新的服务器块
0tdrvxhp2#
您只需要添加以下行来代替server_name
重启Nginx就这样。
bqf10yzr3#
1.在DNS提供商中为 * www.example.com * 和 * www.example.com * 中的每个添加A字段sub1.example.comsub2.example.com
1.设置服务器。最后保留example.com
如下所示
1.重新启动Nginx
sudo systemctrl restart nginx
z4iuyo4d4#
你需要为你的子域创建另一个带有serverblock的nginx配置文件,如下所示:
o8x7eapl5#
根据您的服务器实现,有一个可定制的解决方案:
在一个nginx“sites”文件中有两个(或更多)子域?如果你有一个通配符TLS证书,那么你就可以维护一个nginx配置文件。所有的配置文件都使用相同的服务,但是端口不同?(想想不同的应用程序版本同时运行,每个版本都在本地监听不同的端口)
我知道性能会“糟糕”,但话又说回来,因为决定是去与一个服务器的所有这就像抱怨一个econobox不能拉那么多的人作为一辆公共汽车,因为小车有一个“沉重”的车顶行李架上。
正则表达式Maven可以潜在地提高这样一个自定义解决方案的性能,特别是因为它可以省略CPU开销很大的“if”条件语句。
pnwntuvh6#
也许这可以帮助一些有挑战的人,这让我磨了一整天。首先,如果你有SSL安装,删除它(删除更好),这将有助于重置之前的配置,扰乱子域配置。
在etc/nginx/.../default文件中创建一个新的服务器块