Nginx虚拟主机简介
yum安装与源码安装一样,只是Nginx配置文件路径不一致,这里用的yum安装的配置文件路径。
利用虚拟主机的功能,可以在一台Nginx服务器上部署一个或多个虚拟主机。
虚拟主机主配置文件
注意:配置完成Nginx主配置文件以后,后续子配置文件只需要在指定的目录下添加子配置文件,且子配置文件不需要在写http标签。
路径:/etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
charset utf-8;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
单虚拟主机
只需要在http{}区域中设置一个server{}标签即可。
要求
- 部署一个WEB服务
- WEB服务域名为www.wangmingqu.com
- 访问域名可以查看/www/wangmingqu/index.html页面
准备数据
#编辑html文件
mkdir -p /www/wangmingqu/
echo "hello word,I am wangmingqu!" > /www/wangmingqu/index.html
#下载图片
cd /www/wangmingqu/
wget https://img1.bdstatic.com/static/searchdetail/widget/toolbar/imgs/toolbar_ic_2c80ef5.png
#编辑txt文件
cat > /www/wangmingqu/ai.txt << EOF
阿伦·艾弗森(Allen Iverson),全名阿伦·伊宰尔·艾弗森(Allen Ezail Iverson)
1975年6月7日出生于美国弗吉尼亚州汉普顿,美国篮球运动员,司职后卫,绰号“答案(The Answer)”
曾任美国男篮梦之队队长。
EOF
编辑Nginx配置文件
路径:/etc/nginx/conf.d/wangmingqu.conf
server {
#监听的端口
listen 80;
#网站匹配的域名
server_name www.wangmingqu.com;
#网站的字符集设置
charset utf-8;
#匹配“根”目录,即访问http://www.wangmingqu.com:80时匹配一下信息
location / {
#匹配成功以后查找“/www/wangmingqu/”目录下的内容
root /www/wangmingqu/;
#找到匹配路径以后,
index index.html;
}
}
重载Nginx
nginx -t
systemctl reload nginx
本地host配置
路径:C:\Windows\System32\drivers\etc\hosts
添加:192.169.1.128 www.wangmingqu.com
验证虚拟主机
基于多IP的虚拟主机
配置多网卡
#查看IP
ifconfig ens32
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.169.1.128 netmask 255.255.255.0 broadcast 192.169.1.255
inet6 fe80::de68:16bc:e4f9:132 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:40:02:e7 txqueuelen 1000 (Ethernet)
RX packets 45956 bytes 12918483 (12.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7903 bytes 865117 (844.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
#增加IP
ip addr add 192.169.1.126/24 dev ens32
ip addr add 192.169.1.127/24 dev ens32
测试数据
mkdir -p /www/{126,127}
echo "此页面为192.169.1.126" > /www/126/index.html
echo "此页面为192.169.1.127" > /www/127/index.html
编辑配置文件
路径:/etc/nginx/conf.d/ip_config.conf
server {
listen 80;
server_name 192.169.1.126;
charset utf-8;
location / {
root /www/126/;
index index.html;
}
}
server {
listen 80;
server_name 192.169.1.127;
charset utf-8;
location / {
root /www/127/;
index index.html;
}
}
重载Nginx
nginx -t
systemctl reload nginx
验证Nginx
基于多端口的虚拟主机
测试数据
mkdir -p /www/{81,82,83}
echo "81" > /www/81/index.html
echo "82" > /www/82/index.html
echo "83" > /www/83/index.html
编辑配置文件
路径:/etc/nginx/conf.d/ports.conf
server {
listen 81;
server_name 192.169.1.126;
charset utf-8;
location / {
root /www/81/;
index index.html;
}
}
server {
listen 82;
server_name 192.169.1.126;
charset utf-8;
location / {
root /www/82/;
index index.html;
}
}
server {
listen 83;
server_name 192.169.1.126;
charset utf-8;
location / {
root /www/83/;
index index.html;
}
}
重载Nginx
nginx -t
systemctl reload nginx
验证Nginx
基于多域名的虚拟主机
测试数据
mkdir -p /www/name/{wang,ming,qu}
echo "王茗渠的王" > /www/name/wang/index.html
echo "王茗渠的茗" > /www/name/ming/index.html
echo "王茗渠的渠" > /www/name/qu/index.html
编辑配置文件
路径:/etc/nginx/conf.d/domean_name.conf
server {
listen 80;
server_name wang.wangmingqu.com;
charset utf-8;
location / {
root /www/name/wang/;
index index.html;
}
}
server {
listen 80;
server_name ming.wangmingqu.com;
charset utf-8;
location / {
root /www/name/ming/;
index index.html;
}
}
server {
listen 80;
server_name qu.wangmingqu.com;
charset utf-8;
location / {
root /www/name/qu/;
index index.html;
}
}
本地host配置
路径:C:\Windows\System32\drivers\etc\hosts
添加:192.169.1.128 wang.wangmingqu.com ming.wangmingqu.com qu.wangmingqu.com
重载Nginx
nginx -t
systemctl reload nginx
验证Nginx