配置虚拟主机
虚拟主机介绍
虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供 www 服务,这样就可以实现一台主机对外提供多个web 服务,每个虚拟主机之间是独立的,互不影响的。
虚拟主机技术是互联网服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应用于 HTTP(Hypertext Transfer Protocol,超文本传输协议)服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。
Nginx 的虚拟主机配置方式
Nginx 支持三种类型的虚拟主机配置
- 基于 IP 的虚拟主机
- 基于端口的虚拟主机
- 基于域名的虚拟主机
1 基于 IP 的虚拟主机配置方式
1.1 需求
一台 Linux 服务器绑定两个ip:192.168.0.123、192.168.0.124
访问不同的 ip 请求不同的 html 目录,即:
- 访问 http://192.168.0.123 将访问“html123”目录下的 html 网页
- 访问 http://192.168.0.124 将访问“html124”目录下的 html 网页
1.2 Linux 绑定多 IP
Linux 操作系统允许绑定多 IP。使用 IP 别名的方式,在一块物理网卡上可以绑定多个lP 地址。这样就能够在使用单一网卡的同一个服务器上运行多个基于 IP 的虚拟主机。但是在绑定多 IP 时需要将动态的 IP 分配方式修改为静态的指定 IP
修改网卡信息 1
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.123
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=4.4.4.4
DNS2=8.8.8.8
IPV6INIT=no
将/etc/sysconfig/network-scripts/ifcfg-eth0 文件复制一份,命名为 ifcfg-eth0:1 名字需要注意格式
修改其中内容:
DEVICE=eth0:1
IPADDR=192.168.0.124
其他项不用修改
重启系统
1.3 修改nginx.conf 配置文件
首先修改,必须要是root用户,否则权限不够
修改后的配置文件
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#每一个server就是一个虚拟的主机
server {
listen 80;
#指定虚拟主机的ip或者域名
server_name 192.168.0.123;
#访问时的配置
location / {
#访问 / 时 进入的目录
root html123; #访问的目录可以写绝对路径
#默认显示的页面
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#每一个server就是一个虚拟的主机
server {
listen 80;
#指定虚拟主机的ip或者域名
server_name 192.168.0.124;
#访问时的配置
location / {
#访问 / 时 进入的目录
root html124; #访问的目录可以写绝对路径
#默认显示的页面
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
2 基于端口的虚拟主机配置方式
2.1 需求
Nginx 对提供 8080 与 9090 两个端口的监听服务
- 请求 8080 端口则访问 html8080 目录下的 index.html
- 请求 9090 端口则访问 html9090 目录下的 index.html
2.1 创建 HTML 目录
修改后的配置文件
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#每一个server就是一个虚拟的主机
server {
listen 8888;
#指定虚拟主机的ip或者域名
server_name 192.168.0.123;
#访问时的配置
location / {
#访问 / 时 进入的目录
root html8888; #访问的目录可以写绝对路径
#默认显示的页面
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#每一个server就是一个虚拟的主机
server {
listen 9999;
#指定虚拟主机的ip或者域名
server_name 192.168.0.123;
#访问时的配置
location / {
#访问 / 时 进入的目录
root html9999; #访问的目录可以写绝对路径
#默认显示的页面
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
3 基于域名的虚拟主机配置方式
3.1 需求
两个域名指向同一个 nginx 服务器,用户访问不同的域名时显示不同的内容。
域名规划:
- test.shouhe.com
- test.sige.com
3.2 创建 HTML 目录
3.3 修改 windows 的 的 hosts 文件配置域名与 ip 的映射
文件路径:
C:\Windows\System32\drivers\etc
修改后的配置文件
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#基于域名
server {
listen 80;
#指定虚拟主机的ip或者域名
server_name test.qingniao.com;
#访问时的配置
location / {
#访问 / 时 进入的目录
root html-qingniao; 可以使用绝对路径
#默认显示的页面
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#基于域名
server {
listen 80;
#指定虚拟主机的ip或者域名
server_name test.sige.com;
#访问时的配置
location / {
#访问 / 时 进入的目录
root html-sige;
#默认显示的页面
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}