:配置Nginx虚拟主机
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了:配置Nginx虚拟主机相关的知识,希望对你有一定的参考价值。
拓扑图:
推荐步骤:
- 安装nginx配置基于IP地址虚拟主机客户端访问验证,第一个虚拟主机监听IP地址192.168.100.20,第二个虚拟主机监听IP地址192.168.100.30
- 配置基于端口虚拟主机,192.168.100.10:8080监听第一个虚拟主机,192.168.100.10:8181监听第二个虚拟主机,客户端访问验证
- 配置基于域名虚拟主机,www.bdqn.com监听默认虚拟主机,www.benet.com监听第一个虚拟主机,www.accp.com监听第二个虚拟主机
实验步骤:
一、安装Nginx配置基于IP地址虚拟主机客户端访问验证,第一个虚拟主机监听IP地址192.168.100.20,第二个虚拟主机监听IP地址192.168.100.30
1、安装Nginx依赖程序
1)挂载系统光盘
2)将系统光盘挂载到/mnt目录
[root@centos01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# ls /mnt/
CentOS_BuildTag
EULA images LiveOS
repodata
RPM-GPG-KEY-CentOS-Testing-7
EFI
GPL isolinux Packages
RPM-GPG-KEY-CentOS-7 TRANS.TBL
3)删除系统自带yum源配置文件yum源
[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos01 ~]# vim /etc/yum.repos.d/local.repo
[local]
name=centos
baseurl=file:///mnt
enabled=1
gpgcheck=0
4)安装Nginx依赖程序创建管理Nginx服务用户
[root@centos01 ~]# yum -y install pcre-devel
zlib-devel
[root@centos01 ~]# umount /mnt/
[root@centos01 ~]# useradd -M -s /sbin/nologin
nginx
2、安装Nginx网站服务器端
1)切换到nginx源代码程序光盘
2)挂载Nginx源代码程序
[root@centos01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# ls /mnt/
amoeba-mysql-binary-2.2.0.tar.gz nagios-plugins-1.5.tar.gz
apache-tomcat-7.0.54.tar.gz nginx-1.6.0.tar.gz
awstats-7.3.tar.gz nrpe-2.15.tar.gz
3)解压源代码程序
[root@centos01 ~]# tar zxvf /mnt/nginx-1.6.0.tar.gz
-C /usr/src/
4)配置Nginx服务器端
[root@centos01 ~]# cd /usr/src/nginx-1.6.0/ //切换源代码目录
[root@centos01 nginx-1.6.0]# ./configure \\ //配置Nginx
--prefix=/usr/local/nginx \\ //指定安装位置
--user=nginx \\ //指定管理用户
--group=nginx \\ //指定管理组
--with-http_stub_status_module //加载统计模块
5)编辑安装nginx
[root@centos01 nginx-1.6.0]# make && make
install
[root@centos01 nginx-1.6.0]# cd
3、优化Nginx命令和服务控制
1)优化服务命令
[root@centos01 ~]# ln -s /usr/local/nginx/sbin/*
/usr/local/sbin/
2)检查服务配置文件是否错误
[root@centos01 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf
syntax is ok
nginx: configuration file
/usr/local/nginx/conf/nginx.conf test is successful
3)启动服务
[root@centos01 ~]# nginx
[root@centos01 ~]# netstat -anptu | grep nginx
tcp
0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2819/nginx: master
4)停止Nginx服务
[root@centos01 ~]# killall nginx
4、配置虚拟主机网站目录
1)创建虚拟主机网站根目录
[root@centos01 ~]# mkdir -p /www/benet/
[root@centos01 ~]# mkdir -p /www/accp/
2)设置网站主页
[root@centos01 ~]# ls -R /www/
/www/:
accp benet
/www/accp:
index.html
/www/benet:
index.html
5、虚拟生成虚拟主机网卡配置文件
1)生成网卡配置文件
[root@centos01 ~]# cd /etc/sysconfig/network-scripts/
[root@centos01 network-scripts]# cp ifcfg-ens32
ifcfg-ens32:1
[root@centos01 network-scripts]# cp ifcfg-ens32
ifcfg-ens32:2
[root@centos01 network-scripts]# cd
2)修改第一块网卡配置文件
[root@centos01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32:1
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32:1
DEVICE=ens32:1
ONBOOT=yes
IPADDR=192.168.100.20
NETMASK=255.255.255.0
3)修改第二块网卡配置文件
[root@centos01 ~]# vim
/etc/sysconfig/network-scripts/ifcfg-ens32:2
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32:2
DEVICE=ens32:2
ONBOOT=yes
IPADDR=192.168.100.30
NETMASK=255.255.255.0
4)重新启动网卡服务查看IP地址
[root@centos01 ~]# ifconfig
ens32:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet
192.168.100.10 netmask 255.255.255.0 broadcast 192.168.100.255
inet6
fe80::20c:29ff:fe4c:c769 prefixlen
64 scopeid 0x20<link>
ether
00:0c:29:4c:c7:69 txqueuelen 1000 (Ethernet)
RX
packets 5286 bytes 466682 (455.7 KiB)
RX
errors 0 dropped 0 overruns 0
frame 0
TX
packets 3468 bytes 514089 (502.0 KiB)
TX
errors 0 dropped 0 overruns 0 carrier 0
collisions 0
ens32:1:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet
192.168.100.20 netmask
255.255.255.0 broadcast 192.168.100.255
ether
00:0c:29:4c:c7:69 txqueuelen 1000 (Ethernet)
ens32:2:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet
192.168.100.30 netmask
255.255.255.0 broadcast 192.168.100.255
ether
00:0c:29:4c:c7:69 txqueuelen 1000 (Ethernet)
6、修改Nginx主配置文件支持基于IP地址虚拟主机
1)修改主配置文件
[root@centos01 ~]# vim
/usr/local/nginx/conf/nginx.conf
user nginx; //管理Nginx服务用户
worker_processes
1; //Nginx进程根据CPU核心数设置
events
worker_connections 1024; //nginx服务最大并发数1024
http
include mime.types;
default_type
application/octet-stream;
sendfile on;
keepalive_timeout 65;
server //配置第一个虚拟主机
listen 80; //第一个虚拟主机监听端口
server_name 192.168.100.20; //第一个虚拟主机监听IP地址
charset utf-8; //虚拟主机使用默认字符编码
access_log
logs/www.benet.com.access.log; //第一个虚拟主机日志文件
location /
root /www/benet/; //第一个虚拟主机网站根目录
index index.html index.htm; //第一个虚拟主机主页
server
listen 80;
server_name 192.168.100.30;
charset utf-8;
access_log logs/www.accp.com.access.log;
location /
root /www/accp/;
index index.html index.htm;
2)检查简称主配置文件
[root@centos01 ~]# nginx -t
nginx: the configuration file
/usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file
/usr/local/nginx/conf/nginx.conf test is successful
3)启动nginx服务
[root@centos01 ~]# nginx
[root@centos01 ~]# netstat -anptu | grep nginx
tcp
0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4327/nginx: master
4)客户端Win10配置IP地址
5)客户端访问http://192.168.100.10访问默认站点
6) 客户端访问http://192.168.100.20访问benet站点
7)客户端访问http://192.168.100.30访问accp站点
二、配置基于端口虚拟主机,192.168.100.10:8080监听第一个虚拟主机,192.168.100.10:8181监听第二个虚拟主机,客户端访问验证
1、配置Nginx主配置文件支持基于端口虚拟主机
1)修改主配置文件
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
user nginx; //管理Nginx服务用户
worker_processes
1; //Nginx进程根据CPU核心数设置
events
worker_connections 1024; //nginx服务最大并发数1024
http
include mime.types;
default_type
application/octet-stream;
sendfile on;
keepalive_timeout 65;
server //配置第一个虚拟主机
listen 8080; //第一个虚拟主机监听端口
server_name 192.168.100.10; //第一个虚拟主机监听IP地址
charset utf-8; //虚拟主机使用默认字符编码
access_log
logs/www.benet.com.access.log; //第一个虚拟主机日志文件
location /
root /www/benet/; //第一个虚拟主机网站根目录
index index.html index.htm; //第一个虚拟主机主页
server
listen 8181;
server_name 192.168.100.10;
charset utf-8;
access_log
logs/www.accp.com.access.log;
location /
root /www/accp/;
index index.html index.htm;
2)检查主配置文件
[root@centos01 ~]# nginx -t
nginx: the configuration file
/usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file
/usr/local/nginx/conf/nginx.conf test is successful
3)重新启动nginx服务
[root@centos01 ~]# killall nginx
[root@centos01 ~]# nginx
4)查看nginx服务运行状态
[root@centos01 ~]# netstat -anptu | grep nginx
tcp
0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4505/nginx: master
tcp
0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4505/nginx: master
tcp
0 0 0.0.0.0:8181 0.0.0.0:* LISTEN 4505/nginx: master
2、客户端访问网站服务器进行验证
1)客户端使用IP地址http://192.168.100.10:80访问默认站点
2)客户端使用IP地址http://192.168.100.10:8080访问benet站点
3)使用客户端IP地址http://192.168.100.10:8181访问accp站点
三、配置基于域名虚拟主机,www.bdqn.com监听默认虚拟主机,www.benet.com监听第一个虚拟主机,www.accp.com监听第二个虚拟主机
1、网站服务器和DNS服务器配置IP地址和DNS服务器
1)网站服务器配置IP地址
[root@centos01 ~]# vim
/etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
DNS1=192.168.100.40
2)重启启动服务查看配置DNS
[root@centos01 ~]# systemctl restart network
[root@centos01 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.100.40
3)DNS服务器配置IP地址
[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.40
NETMASK=255.255.255.0
DNS1=192.168.100.40
4)重新启动网卡服务查看配置DNS服务器
[root@centos02 ~]# systemctl restart network
cat [root@centos02 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.100.40
2、安装DNS服务器
1)安装系统光盘
2)系统盘关在到/mnt目录
[root@centos02 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# ls /mnt/
CentOS_BuildTag
EULA images LiveOS
repodata
RPM-GPG-KEY-CentOS-Testing-7
EFI
GPL isolinux Packages
RPM-GPG-KEY-CentOS-7 TRANS.TBL
3)安装DNS服务
[root@centos02 ~]# rpm -ivh
/mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥
准备中...
################################# [100%]
正在升级/安装...
1:bind-32:9.9.4-50.el7 #################################
[100%]
[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm:
头V3 RSA/SHA256 Signature, 密钥
准备中...
################################# [100%]
正在升级/安装...
1:bind-chroot-32:9.9.4-50.el7 ################################# [100%]
[root@centos02 ~]# rpm -ivh
/mnt/Packages/bind-utils-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-utils-9.9.4-50.el7.x86_64.rpm:
头V3 RSA/SHA256 Signature, 密钥
准备中... #################################
[100%]
软件包 bind-utils-32:9.9.4-50.el7.x86_64 已经安装
4)修改DNS服务器主配置文件
[root@centos02 ~]# vim /etc/named.conf
options
listen-on port 53 any; ;
directory "/var/named/";
;
zone "bdqn.com" IN
type
master;
file
"/var/named/bdqn.com.zone";
;
zone "benet.com" IN
type
master;
file
"/var/named/benet.com.zone";
;
zone "accp.com" IN
type
master;
file
"/var/named/accp.com.zone";
;
5)配置DNS区域配置文件
[root@centos02 ~]# vim /var/named/bdqn.com.zone //默认站点监听域名
$TTL 86400
@ SOA bdqn.com. root.bdqn.com.
(
2022082910
1H
15M
1W
1D
)
@ NS centos02.bdqn.com.
centos02 A 192.168.100.40
www A 192.168.100.10
[root@centos02 ~]# vim /var/named/benet.com.zone //第一个虚拟主机监听域名
$TTL 86400
@ SOA benet.com. root.benet.com.
(
2022082910
1H
15M
1W
1D
)
@ NS centos02.benet.com.
centos02 A 192.168.100.40
www A 192.168.100.10
[root@centos02 ~]# vim /var/named/accp.com.zone //第二个虚拟主机监听域名
$TTL 86400
@ SOA accp.com. root.accp.com.
(
2022082910
1H
15M
1W
1D
)
@ NS centos02.accp.com.
centos02 A 192.168.100.40
www A 192.168.100.10
6)验证DNS服务器
[root@centos02 ~]# nslookup www.benet.com
Server: 192.168.100.40
Address: 192.168.100.40#53
Name: www.benet.com
Address: 192.168.100.10
[root@centos02 ~]# nslookup www.accp.com
Server: 192.168.100.40
Address: 192.168.100.40#53
Name: www.accp.com
Address: 192.168.100.10
[root@centos02 ~]# nslookup www.bdqn.com
Server: 192.168.100.40
Address: 192.168.100.40#53
Name: www.bdqn.com
Address: 192.168.100.10
3、修改Nginx主配置文件支持域名虚拟主机
1)修改Nginx主配置文件
[root@centos01 ~]# vim
/usr/local/nginx/conf/nginx.conf
user nginx; //管理Nginx服务用户
worker_processes
1; //Nginx进程根据CPU核心数设置
events
worker_connections 1024; //nginx服务最大并发数1024
http
include mime.types;
default_type
application/octet-stream;
sendfile on;
keepalive_timeout 65;
server //配置第一个虚拟主机
listen 80; //第一个虚拟主机监听端口
server_name www.benet.com; //第一个虚拟主机监听域名
charset utf-8; //虚拟主机使用默认字符编码
access_log
logs/www.benet.com.access.log; //第一个虚拟主机日志文件
location /
root /www/benet/; //第一个虚拟主机网站根目录
index index.html index.htm; //第一个虚拟主机主页
server
listen 80;
server_name www.accp.com;
charset utf-8;
access_log
logs/www.accp.com.access.log;
location /
root /www/accp/;
index index.html index.htm;
2)检查主配置文件
[root@centos01 ~]# nginx -t
nginx: the configuration file
/usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file
/usr/local/nginx/conf/nginx.conf test is successful
3)停止服务
[root@centos01 ~]# killall nginx
[root@centos01 ~]# nginx
4)查看服务运行状态
[root@centos01 ~]# netstat -anptu | grep nginx
tcp
0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5236/nginx: master
4、配置客户端
1)客户端配置IP地址和DNS
2)客户端使用域名www.bdqn.com访问默认站点
3)客户端使用域名www.benet.com访问benet站点
4)客户端使用域名www.accp.com访问accp站点
以上是关于:配置Nginx虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章