在nginx下配置自动虚拟主机
01-9
以前用apache,很多虚拟主机的时候,用 mod_vhost_alias 模块去解决。nginx似乎没有这样的功能。
原来为了做这个功能,我用python写了一堆脚本,去自动管理nginx的配置文件,结果还是不理想。频繁重写配置文件,频繁重启,总会出现点问题。
在nginx的0.8.*下,发现了这样的功能:http://wiki.nginx.org/NginxHttpCoreModule
Since nginx 0.8.25 named captures can be used in server_name:
server {
server_name ~^(www\.)?(?.+)$;
location / {
root /sites/$domain;
}
}
大喜,于是乎做出如下配置,实现了nginx下自动虚拟主机的功能:
- server {
- listen 80;
- server_name ~^(?P<domainname>.+)\.autovhost\.sunboyu\.cn$;
- location / {
- #autoindex on;
- root /home/vhost/$domainname;
- index index.html index.htm;
- }
- access_log /home/autovhost.sunboyu.cn.log main;
- }
- </domainname>
测试通过。
我的开源虚拟主机管理系统nginx版本指日可待。