Linux系统架构-----Nginx上构建虚拟主机

一.构建虚拟主机概述

  • 利用虚拟主机,不用为每个运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程,虚拟主机提供了在同一台服务器、同一组Nginx进程上运行的多个网站的功能
  • 与Apache相同,Nginx也可以配置多种类型的虚拟主机,分别是基于域名、基于端口、基于IP地址的虚拟主机
  • 使用Nginx搭建虚拟主机服务器时,每个虚拟web站点拥有独立的“server {}”配置段,各自监听的IP地址、端口号段单独指定。

二.基于域名的虚拟主机

  • 安装DNS服务
#配置DNS服务器
yum install bind -y
#配置文件
vim /etc/named.conf              //修改主配置文件,修改监听地址
vim /etc/named.rfc1912.zones     //修改区域配置文件

zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
        allow-update { none; };
};

zone "accp.com" IN {
        type master;
        file "accp.com.zone";
        allow-update { none; };
};

cd /var/named                           
cp -p named.localhost kgc.com.zone
vim kgc.com.zone                        //修改区域数据配置,进行正向解析
cp -p kgc.com.zone accp.com.zone
#关闭防火墙,开启服务
systemctl stop firewalld
setenforce 0
systemctl start named
  • 测试DNS服务
#修改测试机的DNS服务器的IP地址

echo "nameserver 192.168.43.211" >> /etc/resolv.conf

注:当用windows系统作为测试机时,可以c盘的\Windows\System32\drivers\etc\hosts,添加

192.168.43.211  www.kgc.com www.accp.com

  • 安装Nginx服务
yum install vsftpd -y      //安装ftp服务
systemctl start vsftpd      //开启ftp服务
 #使用wget工具从官网上下载nginx压缩包
wget http://nginx.org/download/nginx-1.17.6.tar.gz
#解压
tar zxvf nginx-1.12.2.tar.gz
#安装环境包
yum install gcc gcc-c++ pcre* zlib-devel make -y
#创建用户,不建立宿主文件,且不能再shell上登录
useradd -M -s /sbin/nologin nginx
#配置,安装且编译
cd nginx-1.12.2/

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
#nigix运行的用户和组都为nginx
#启用http_stub_status_module模块以支持状态统计,便于查看服务器的连接信息

make && make install
#优化服务控制,systemctl工具

vim /lib/systemd/system/nginx.service 

[Unit]
Dsecription=nginx                        //描述
After=network.target                     //描述服务类别
[Service]
Type=forking                             //后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid   //PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx      //启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID   //根据PID重载
ExecStop=/usr/bin/kill -s QUIT $MAINPID    //根据PID关闭
PrivateTmp=true
[Install]
WantedBy=multi-user.target

#添加执行权限
chmod 755 /lib/systemd/system/nginx.service
  • 基于域名构建虚拟主机
#配置nginx的主配置文件
vim /usr/local/nginx/conf/nginx.conf
server {
                server_name www.kgc.com;
                location / {
                        root /var/www/kgc;
                        index index.html;
        }
}
        server {
                server_name www.accp.com;
                location / {
                        root /var/www/accp;
                        index index.html;
        }
}
#创建主页面文件
cd /var
mkdir -p www/kgc www/accp
cd /var/www
echo "<h1>KGC</h1>" > kgc/index.html
echo "<h1>ACCP</h1>" > accp/index.html
#重启服务
systemctl restart nginx.service
  • 测试服务结果

三.基于端口的虚拟主机

  • 基于端口的虚拟主机和基于域名配置基本一样,区别在于,Nginx的主配置文件中,修改server{}参数
#基于域名的基础上在主配置文件上加入下列配置
vim /usr/local/nginx/conf/nginx.conf
server {
	listen 192.168.43.211:80;
                server_name 192.168.43.211:80;
                location / {
                        root /var/www/kgc;
                        index index.html;
        }
}
        server {
	listen 192.168.43.211:8080;
                server_name 192.168.43.211:8080;
                location / {
                        root /var/www/accp;
                        index index.html;
        }
}
  • 重启服务,查看端口
[root@192 nginx]# systemctl restart nginx.service
[root@192 nginx]# netstat -natp | grep nginx
tcp        0      0 192.168.43.211:8080     0.0.0.0:*               LISTEN      38236/nginx: master 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      38236/nginx: master 
[root@192 nginx]# 
  • 验证服务

 

 

四.基于IP地址的虚拟主机

  • 增加双网卡
  • #基于域名的站点配置基础上在主配置文件上加入下列配置
vim /usr/local/nginx/conf/nginx.conf
server {
	listen 192.168.43.200:80;
                server_name 192.168.43.200:80;
                location / {
                        root /var/www/kgc;
                        index index.html;
        }
}
        server {
	listen 192.168.43.211:80;
                server_name 192.168.43.211:80;
                location / {
                        root /var/www/accp;
                        index index.html;
        }
}
  • 重启服务
[root@192 nginx]# systemctl restart nginx.service 
  • 验证服务

发布了94 篇原创文章 · 获赞 108 · 访问量 6400

猜你喜欢

转载自blog.csdn.net/qq_42761527/article/details/103624769