nginx虚拟主机

一、虚拟主机
虚拟主机:利用虚拟主机技术,可以把一台真正的主机分成许多”虚拟”的主机,每一台虚拟主机都具有独立的域名和IP地址,具有完整的Internet服务器(www, FTP,email)功能。 虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台独立的主机完全一样。

1、配置基于域名虚拟主机

# 创建web站点目录
[root@wwwroot conf]# mkdir /home/wwwroot/{www,bbs}
[root@wwwroot conf]# echo "www" > /home/wwwroot/www/index.html
[root@wwwroot conf]# echo "bbs" > /home/wwwroot/bbs/index.html

#配置虚拟主机
[root@wwwroot conf]# cat conf.d/{www,bbs}.conf
server {
   listen 80;
   server_name www.test.com;
   root /home/wwwroot/www;
   ...
}

server {
   ...
   listen 80;
   server_name bbs.test.com;
   root /home/wwwroot/bbs;
}

2、配置基于端口访问不同的虚拟主机

//仅修改listen监听端口即可, 但不能和系统端口发生冲突
server {
   listen 8080;
   server_name www.test.com;
   root /home/wwwroot/www;
   ...
}
//只修改了监听端口号,域名不变
server {
   ...
   listen 8081;
   server_name www.test.com;
   root /home/wwwroot/bbs;
}

3、配置虚拟主机别名

虚拟主机别名:虚拟主机设置除了主域名以外的一个域名,实现用户访问的多个域名对应同一个虚拟主机网站的功能。

以www.test.com域名的虚拟主机为例:
为其增加一个别名test.com时,出现网站内容和访问www.test.com是一样的,具体配置如下:

//默认配置
[root@wwwroot ~]# vim /etc/nginx/nginx.conf
server {
   listen 80;
   server_name www.test.com;
}

//别名配置
[root@wwwroot ~]# vim /etc/nginx/nginx.conf
server {
   listen 80;
   server_name www.test.com test.com;
   ...
}

//使用Linux下curl测试结果
[root@wwwroot conf]# curl test.com
www.test.com
[root@wwwroot conf]# curl www.test.com
www.test.com

//访问带www和不带www是一样的, 除了别名实现也可以通过rewrite实现
server {
   listen 80;
   server_name test.com;

   rewrite ^/(.*) http://www.test.com/$1 permanent;
}

server {
   listen 80;
   server_name www.test.com ;

   location / {
      root html;

      index www.html;
    }
}
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片