Nginx虚拟主机
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.conf 忽略了 nginx-ingress 配置映射片段
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途