设为首页 收藏本站
查看: 908|回复: 0

[经验分享] Nginx服务的虚拟主机

[复制链接]

尚未签到

发表于 2018-11-12 07:11:51 | 显示全部楼层 |阅读模式
  虚拟主机技术实现了不用为每一个要运行的网站提供一台单独的Nginx服务器或者运行一组单独的Nginx进程,虚拟主机提供了在同一台服务器上或同一组Nginx进程上运行多个网站的功能。
  Nginx跟Apache一样,也可配置多种类型的虚拟主机,Apache搭建虚拟主机请参见Apache搭建虚拟主机;
  Nginx创建虚拟主机类型:


  • 基于IP的虚拟主机
  • 基于域名的虚拟主机
  • 基于端口的虚拟主机
  使用Nginx搭建虚拟主机服务器时,每个虚拟web站点拥有独立的“server{}”配置段,各自监听地址,端口号以及网站域名。

实验环境


  • Linux系统:Redhat6.5
  • Nginx服务软件:nginx-1.12
  • DNS服务器:192.168.100.111
实验部署
  由于基于IP的虚拟主机需要在服务器端配置多个网卡,且每个网卡需要不同IP地址,受到IP地址限制以及成本控制,这种虚拟主机的配置成本偏高,故在本文中不做赘述!

1、基于域名的虚拟主机
  实现基于域名的虚拟主机首先需要配置DNS域名解析服务,详细过程请参见DNS域名解析服务配置;这里我选择域名为www.one.com和www.two.com两个域名。
  解析结果如下:
DSC0000.jpg

  

注:配置不同域名的虚拟主机有两种方式:  
一是在原有配置文件中直接加入“server()”版块。
  
二是在Nginx的配置文件目录conf下新建虚拟主机配置文件vhost.conf
  
然后在主配置文件中添加行:include /usr/local/nginx/conf/*.conf
  

  本文采用上述第二种配置方式为例,实现基于域名的虚拟主机:
  让Nginx主配置文件支持虚拟主机配置文件

  vim  /usr/local/nginx/conf/nginx.conf

  在主配置文件末尾大括号以内加入以下行:
  

  include /usr/local/nginx/conf/vhost/*.conf;
  

  
}
  

  创建网站域名站点:

  mkdir -p /var/www/one       //创建one.com站点
  mkdir -p /var/www/two       //创建two.com站点

  

echo "this is one web" > /var/www/one/index.html   //创建域名one.com测试首页  
echo "this is two web" > /var/www/two/index.html   //创建域名two.com测试首页
  

  创建虚拟主机单独配置文件:

  cd /usr/local/nginx/conf
  mkdir vhost
  cd vhost
  vim vhost.conf    //虚拟主机独立配置文件

  

server {  server_name  www.one.com;    //虚拟主机名称
  location / {
  root   /var/www/one;     //站点位置
  index  index.html index.php;
  }
  }
  server {
  server_name  www.two.com;
  location / {
  root   /var/www/two;
  index  index.html index.php;
  }
  }
  

  配置完成后,重启Nginx服务;基于域名的虚拟主机访问情况如下:
DSC0001.jpg

DSC0002.jpg


2、基于端口的虚拟主机
  按照上述基于域名的虚拟主机,为每一个不同端口创建不同站点,添加独立的虚拟主机配置文件/conf/vhost/vhost.conf,且需要在主配置文件中添加:
  

include /usr/local/nginx/conf/vhost/*.conf;  

  
}
  

  cd /usr/local/nginx/conf/vhost
  vim /vhost.conf   //编辑虚拟主机独立配置文件

  

server {  listen 192.168.100.111:250;        //监听服务器的端口
  server_name 192.168.100.111:250;
  location / {
  root   /var/www/one;     //首页站点
  index  index.html index.php;   //支持首页文件类型
  }
  }
  server {
  listen 192.168.100.111:222;
  server_name 192.168.100.111:222;
  location / {
  root   /var/www/two;
  index  index.html index.php;
  }
  }
  

  注:此处需要注意的是与Apache虚拟主机基于端口模式区别,在Apache中添加虚拟端口后,需要在主配置文件中增加监听端口,而Nginx中虚拟主机独立配置文件已经注明服务IP地址的端口,因此不需要在主配置文件中增加监听端口。

  killall -3 nginx   //停止Nginx服务
  nginx -t  //检查主配置文件
  nginx //启动Nginx服务

  启动服务后,当用客户端访问其相同IP不同端口时,即出现不同页面:
DSC0003.jpg

DSC0004.jpg




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-633847-1-1.html 上篇帖子: [Nginx] – 安全优化 – 配置文件优化 [二] 下篇帖子: Nginx-8438262
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表