千家信息网

Nginx虚拟主机应用——基于域名、IP、端口的虚拟主机

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,Nginx支持的虚拟主机有三种●基于域名的虚拟主机●基于IP的虚拟主机●基于端口的虚拟主机每一种虚拟主机均可通过"server{}" 配置段实现各自的功能基于域名的虚拟主机实验环境1.基础源码包(无密
千家信息网最后更新 2024年11月28日Nginx虚拟主机应用——基于域名、IP、端口的虚拟主机

Nginx支持的虚拟主机有三种

●基于域名的虚拟主机
●基于IP的虚拟主机
●基于端口的虚拟主机
每一种虚拟主机均可通过"server{}" 配置段实现各自的功能

基于域名的虚拟主机

实验环境

1.基础源码包(无密码):https://pan.baidu.com/s/14WvcmNMC6CFX1SnjHxE7JQ
2.CentOS 7版本Linux虚拟机
主机IP域名
192.168.235.158www.kgc.com,www.accp.com

实验步骤

一、编译安装Nginx服务

第一步:远程获取Windows上的源码包,并挂载到Linux上

[root@localhost ~]# smbclient -L //192.168.235.1Enter SAMBA\root's password: Sharename       Type      Comment---------       ----      -------LNMP            Disk  [root@localhost ~]# mkdir /abc[root@localhost ~]# mount.cifs //192.168.235.1/LNMP /abcPassword for root@//192.168.235.1/LNMP:  [root@localhost ~]# ls /abcDiscuz_X3.4_SC_UTF8.zip    nginx-1.12.0.tar.gz  php-7.1.10.tar.bz2mysql-boost-5.7.20.tar.gz  nginx-1.12.2.tar.gz  php-7.1.20.tar.gz

第二步:解压源码包

[root@localhost ~]# cd /abc[root@localhost abc]# tar zxvf nginx-1.12.0.tar.gz -C /opt[root@localhost abc]# ls /optnginx-1.12.0  rh

第三步:下载安装编译组件包

[root@localhost abc]# cd /opt[root@localhost opt]# yum install -y \> gcc \             //C语言> gcc-c++ \         //c++语言> pcre-devel \      //pcre语言工具> zlib-devel        //压缩函数库

第四步:创建程序用户并配置Nginx服务相关组件

[root@localhost opt]# useradd -M -s /sbin/nologin nginx//创建程序用户nginx,并限定其不可登录终端[root@localhost opt]# cd nginx-1.12.0/[root@localhost nginx-1.12.0]# ./configure \            //配置nginx> --prefix=//usr/local/nginx \      //指定安装路径                        > --user=nginx \//指定用户名> --group=nginx \//指定用户所属组> --with-http_stub_status_module//安装状态统计模块

第五步:编译与安装Nginx

[root@localhost nginx-1.12.0]# make && make install

第六步:优化Nginx服务启动脚本,并建立命令软连接

[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //创建nginx服务命令软链接到系统命令[root@localhost nginx-1.12.0]# systemctl stop firewalld.service //关闭防火墙[root@localhost nginx-1.12.0]# setenforce 0//关闭增强型安全功能[root@localhost nginx-1.12.0]# nginx //输入nginx 开启服务[root@localhost nginx-1.12.0]# netstat -ntap | grep 80      //查看服务的80 端口,显示已开启tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7520/nginx: master  

二、配置DNS域名解析服务

[root@localhost ~]# yum -y install bind//安装DNS服务的bind包[root@localhost ~]# vim /etc/named.conf //编辑主配置文件options {        listen-on port 53 { any; };        ##将监听地址127.0.0.1替换为any,        listen-on-v6 port 53 { ::1; };        directory       "/var/named";        dump-file       "/var/named/data/cache_dump.db";        statistics-file "/var/named/data/named_stats.txt";        memstatistics-file "/var/named/data/named_mem_stats.txt";        recursing-file  "/var/named/data/named.recursing";        secroots-file   "/var/named/data/named.secroots";        allow-query     { any; };        ##将授权localhost替换为any[root@localhost ~]# 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; };};      [root@localhost ~]# cd /var/named[root@localhost named]# cp -p named.localhost kgc.com.zone [root@localhost named]# cp -p named.localhost accp.com.zone [root@localhost named]# vim kgc.com.zone //编辑kgc域名区域数据配置文件$TTL 1D@       IN SOA  @ rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      @        A       127.0.0.1www IN  A       192.168.235.158##删除原来末行的内容,添加域名解析地址为本机地址[root@localhost named]# vim accp.com.zone //编辑accp域名区域数据配置文件$TTL 1D@       IN SOA  @ rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      @        A       127.0.0.1www IN  A       192.168.235.158##删除原来末行的内容,添加域名解析地址为本机地址[root@localhost named]# systemctl start named   //开启dns服务[root@localhost named]# systemctl stop firewalld.service    //关闭防火墙[root@localhost named]# setenforce 0   //关闭增强型安全功能

三、配置虚拟主机

第一步:创建测试网页

[root@localhost named]# cd [root@localhost ~]# mkdir -p /var/www/html/kgc[root@localhost ~]# mkdir -p /var/www/html/accp[root@localhost ~]# ls /var/www/html/accp  kgc[root@localhost ~]# cd /var/www/html/[root@localhost html]# echo "this kgc web" > kgc/index.html[root@localhost html]# echo "this accp web" > accp/index.html

第二步:编辑nginx.conf配置文件

[root@localhost html]# vim /usr/local/nginx/conf/nginx.confserver {        listen       80;        server_name  www.kgc.com;        charset utf-8;        ##支持中文字符        access_log  logs/www.kgc.com.access.log;        ##kgc站点访问日志        location / {                    root   /var/www/html/kgc;            index  index.html index.htm;        }        error_page   500 502 503 504  /50x.html;        ##服务端报错相关网页        location = /50x.html {            root   html;        } }server {        listen       80;        server_name  www.accp.com;        charset utf-8;        access_log  logs/www.accp.com.access.log;        location / {            root   /var/www/html/accp;            index  index.html index.htm;        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        } }

第三步:重载Nginx服务

[root@localhost ~]# killall -s HUP nginx[root@localhost ~]# netstat -ntap | grep 80tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6117/nginx: master 

第四步:测试网页,输入www.kgc.com与www.accp.com两个域名进行访问



基于端口的虚拟主机

配置虚拟主机

第一步:创建另一个端口的测试网页

[root@localhost ~]# cd /var/www/html/[root@localhost html]# echo "this is kgc 8080 web" > kgc/index.html 

第二步:编辑nginx.conf配置文件,仅修改监听地址

[root@localhost html]# vim /usr/local/nginx/conf/nginx.confserver {        listen 192.168.235.158:80;        ##监听主机的80端口        server_name  www.kgc.com;        charset utf-8;        access_log  logs/www.kgc.com.access.log;        location / {            root   /var/www/html/kgc;            index  index.html index.htm;        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        } }server {        listen 192.168.235.158:8080;        ##监听主机的8080端口        server_name  www.kgc.com;        charset utf-8;        access_log  logs/www.kgc.com.access.log;        location / {            root   /var/www/html/kgc;            index  index.html index.htm;        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        } }

第三步:重载Nginx服务

[root@localhost html]# killall -s HUP nginx[root@localhost html]# netstat -ntap | grep 80tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      41958/nginx: master 

第四步:测试网页,分别访问80端口的默认网页以及8080端口的网页

基于IP的虚拟主机

第一步:添加网卡,并规划域名IP

主机IP域名
192.168.235.158www.kgc.com
192.168.235.142www.accp.com

第二步: 修改accp域名的区域数据文件配置

[root@localhost ~]# vim /var/named/accp.com.zone$TTL 1D@       IN SOA  @ rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      @        A       127.0.0.1www IN  A       192.168.235.142##更改IP地址为 192.168.235.142[root@localhost ~]# systemctl restart named##重启域名解析服务

第三步:编辑nginx.conf配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf##此段不做修改server {        listen 192.168.235.158:80;        server_name  www.kgc.com;        charset utf-8;        access_log  logs/www.kgc.com.access.log;        location / {            root   /var/www/html/kgc;            index  index.html index.htm;        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        } }server {         listen 192.168.235.142:80;         ##修改本段监听地址为192.168.234.142         server_name  www.accp.com;         charset utf-8;         access_log  logs/www.accp.com.access.log;         location / {             root   /var/www/html/accp;             index  index.html index.htm;         }         error_page   500 502 503 504  /50x.html;         location = /50x.html {             root   html;         }  }

第四步:重载Nginx服务

[root@localhost ~]# killall -s HUP nginx[root@localhost ~]# netstat -ntap | grep 80tcp        0      0 192.168.235.142:80      0.0.0.0:*               LISTEN      7299/nginx: master  tcp        0      0 192.168.235.158:80      0.0.0.0:*               LISTEN      7299/nginx: master  

第五步:测试网页,分别输入IP地址192.168.235.158和192.168.235.142进行访问


到此便是Nginx虚拟主机应用的全部内容了,谢谢阅读!!!

0