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:虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章