nginx:虚拟主机

Posted flag_HW

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx:虚拟主机相关的知识,希望对你有一定的参考价值。

虚拟主机

一个web服务器软件默认情况下只发布了一个web,一个web发布出去需要三个条件:ip、port、域名

一个web服务器软件如何发布多个web呢?

虚拟主机:就是把一台物理服务器划分成多个“虚拟”的服务器,每个虚拟主机都可以有独立的域名和工作目录

 

基于ip的虚拟主机

场景:一台物理服务器配置多个ip地址,每个ip地址发布一个web。  缺点:如果是对外提供服务的网站则每个ip都需要付费

实现过程:

  • 服务器网卡添加辅助ip:

ifconfig ens33:1 192.168.43.150/24

  • 辅助ip添加完毕后状态:

 

  •  nginx 基于ip的虚拟主机配置:

server {
listen 192.168.43.133:80;
access_log logs/test.access.log test;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 192.168.43.150:80;
access_log logs/test.access.log test;
location / {
root html/web1;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

  • 测试基于ip的虚拟主机

 

 

基于端口的虚拟主机

场景:nginx服务器只有一个ip地址时可以使用基于端口的虚拟主机,不过该种实现只能在内网使用,因为端口无法通告给dns

实现过程:

  • 去掉网卡辅助ip:

 

  •  nginx基于端口虚拟主机配置:

server {
listen 80;
access_log logs/test.access.log test;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 9080;
access_log logs/test.access.log test;
location / {
root html/web2;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

  • 验证基于端口的虚拟主机:

 

 

基于域名的虚拟主机

场景:nginx服务器只有一个公网ip且需要将多个web服务发布到公网,可以使用基于域名的虚拟主机来实现

实现过程:

  • 配置测试机器的本地hosts

192.168.43.133是nginx服务器的ip地址,后面的域名是nginx配置文件中的域名

192.168.43.133 www.web1.com
192.168.43.133 www.web2.com

  • nginx基于域名的虚拟主机实现配置文件

server {
listen 80;
server_name www.web1.com
access_log logs/test.access.log test;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name www.web2.com
access_log logs/test.access.log test;
location / {
root html/web2;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

  • 测试效果

 

以上是关于nginx:虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

Nginx服务的虚拟主机

Nginx虚拟主机配置Nginx的Rwrite配置

nginx虚拟主机配置

lnmp默认nginx怎么添加虚拟主机

Nginx 虚拟主机配置

Nginx服务器Nginx虚拟主机Nginx反向代理