码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx虚拟主机

时间:2018-04-02 20:12:05      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:Nginx

虚拟主机定义:

虚拟主机指的是在单一机器上运行多个网站
虚拟主机可以是基于IP的,即每个IP一个站点;或者是基于域名的,即每个域名一个站点
这些站点在同一物理服务器上,对用户不会有任何的感知

Nginx也可以配置多种类型的虚拟主机:

1.基于IP的虚拟主机
2.基于端口的虚拟主机
3.基于域名的虚拟主机

下面将分别介绍这些虚拟主机的配置,及优缺点

基于IP的虚拟主机

可以在一块物理网卡上绑定多个IP地址,这是实现基于IP虚拟主机的前提
缺点:
配置复杂,不但要关注Nginx本身的配置,同时也要关注网卡的特殊配置
访问的时候需要使用IP地址:端口(默认80不需要写)去访问,实际上也很复杂

基于端口的虚拟主机

使用端口来区分,浏览器使用域名或IP地址:端口号访问
实例配置:

server {
   listen 8080;
     server_name www.maiyap.com;
     root /data/wwwhtml/www.maiyap.com;
}
server{
   listen 9090;
     server_name www.maiyalog.com;
     root /data/wwwhtml/www.maiyalog.com;
}

缺点:
虚拟主机使用端口去做区分,导致HTTP协议不标准(标准的HTTP协议为80端口),有可能导致端口冲突,影响Nginx正常运行
业务调用必须要知道业务开启的端口,端口一旦发生改变调用方和被调用方都与要进行调整

基于域名的虚拟主机是最常见的一种虚拟主机

只需要配置DNS服务器,将每个主机名映射到正确的IP地址,然后配置Nginx服务器,令其识别不同的主机名就可以了
这种虚拟技术使用多虚拟主机可以共享同一个IP地址,有效的解决了IP地址不足的问题
实例配置:

server {
   listen 80;
     server_name www.maiyap.com;
     root /data/wwwhtml/www.maiyap.com;
}
server{
   listen 80;
     server_name www.maiyalog.com;
     root /data/wwwhtml/www.maiyalog.com;
}

优点:
所有虚拟主机使用用一个端口,弥补了基于端口虚拟主机的缺陷
所有虚拟主机使用同一个IP地址,弥补了基于IP虚拟主机的缺陷

默认虚拟主机
默认虚拟主机就是配置文件里的第一个虚拟主机.就是如果解析到这台机器的域名,不管是什么域名,只要配置文件中没有配置,就会访问到默认主机上
在Nginx中若不指定默认虚拟主机,同样配置文件中的第一个虚拟主机将会是默认虚拟主机.
实例配置:

server{
         listen 80 default_server;  #说明是默认虚拟主机
                 server_name _;               #虚拟主机没有域名,为空
                 root   /data/wwwhml/default;
                 access_log /data/wwwhtml/logs/default-access_log main;
         error_log /data/wwwhtml/logs/default-error_log;
               rewrite ^/(.*) http://maiyap.com/$1 permanent;         #将所有的未知请求,都导流到maiyap.com服务上
}

Nginx虚拟主机

标签:Nginx

原文地址:http://blog.51cto.com/13581826/2093939

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!