nginx中一台服务器单iP多域名配置
Nginx中一台服务器单IP多域名配置方法
一、每个域名一个文件的配置方法
- 创建域名配置文件
- 首先打开nginx域名配置文件存放目录(例如:/usr/local/nginx/conf/servers),如果要绑定域名如www.itblood.com,则在此目录下建立一个文件:www.itblood.com.conf。
- 编写配置规则
- 在该文件中编写规则,例如:
listen 80;server_name www.itblood.com; #绑定域名index index.htm index.html index.php; #默认文件root /home/www/itblood.com; #网站根目录include location.conf; #调用其他规则,也可去除
- 重启nginx服务器
- 使用命令(如在CentOS系统下):/etc/init.d/nginx restart,这样域名就绑定成功了。
二、一个文件多个域名的配置方法
- 编写配置规则
- 在同一个配置文件中添加多个域名的规则,只要把单个域名的配置重复写下来即可。例如:
server{ include location.conf; #调用 listen 80; server_name www.domain1.com; #绑定域名1 index index.htm index.html index.php; root /home/www/domain1.com; } server{ include location.conf; #调用 listen 80; server_name www.domain2.com; #绑定域名2 index index.htm index.html index.php; root /home/www/domain2.com; }
- 注意事项
- 在Nginx的配置文件中只有一个server配置的时候,server_name是无效的,也就是说任何域名绑定了这个IP的时候,无论server_name填什么域名,都会匹配到这个唯一的server。只有在多个server的时候,server_name才会有效。
三、利用server_name指令的匹配特性进行配置
- server_name指令匹配顺序
- Nginx中的server_name指令在接到请求后的匹配顺序有多种情况。例如,可能有精确匹配、通配符匹配和正则表达式匹配等情况。
- 假设配置如下:
listen 80; server_namessdr.infowww.ssdr.info; server{ server_name www.*; server_name~^(?.+)\.howtocn\.org$; }
- Nginx将按照一定顺序(如1,2,3,4的顺序对server_name进行匹配),只要有一项匹配以后就会停止搜索,所以在使用这个指令的时候一定要分清楚它的匹配顺序(类似于location指令)。
- 利用正则表达式捕获简化配置
- 例如:
server server_name~^(www\.)?(.+)$; root/data/wwwsite/$2;
- 这种方式可以根据不同的域名结构,利用正则表达式的捕获功能来尽量精简配置文件,方便日常维护。
本篇文章所含信息均从网络公开资源搜集整理,旨在为读者提供参考。尽管我们在编辑过程中力求信息的准确性和完整性,但无法对所有内容的时效性、真实性及全面性做出绝对保证。读者在阅读和使用这些信息时,应自行评估其适用性,并承担可能由此产生的风险。本网站/作者不对因信息使用不当或误解而造成的任何损失或损害承担责任。
