• Linux
  • apache
  • centos
  • Git版本管理
  • Linux基本命令
  • linux配置与优化
  • Nginx
  • PHP
  • Redis
  • Supervisor
  • Swoole
  • windows
  • THINKPHP
  • 开发者手册
  • Chat GPT / Open Ai
  • 基于域名、端口和IP搭建nginx虚拟主机

    全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:925篇文章
  • 发布时间:2022年05月13日 0:16:48
  • 所属分类:Linux, Nginx
  • 阅读次数:877次阅读
  • 标签:
  • 如何搭建nginx虚拟主机?这个问题可能是我们日常工作经常见到的。通过这个问题,希望你能收获更多。下面是解决这个问题的步骤内容。

    Nginx支持的虚拟主机有三种

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

    一、基于域名搭建

    1、编译安装Nginx服务
    2、远程获取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 /abc
    Password for root@//192.168.235.1/LNMP:  
    [root@localhost ~]# ls /abc
    Discuz_X3.4_SC_UTF8.zip    nginx-1.12.0.tar.gz  php-7.1.10.tar.bz2
    mysql-boost-5.7.20.tar.gz  nginx-1.12.2.tar.gz  php-7.1.20.tar.gz

    3、解压源码包、下载安装编译组件包

    [root@localhost ~]# cd /abc
    [root@localhost abc]# tar zxvf nginx-1.12.0.tar.gz -C /opt
    [root@localhost abc]# ls /opt
    nginx-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        //压缩函数库

    4、创建程序用户并配置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
    //安装状态统计模块

    5、编译及安装

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

    6、优化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

    1、配置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.1
    www 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.1
    www 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   
    //关闭增强型安全功能

    1、配置虚拟主机
    2、创建自测网页

    [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

    3、编辑nginx.conf配置文件

    [root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
    
    server {
            listen       80;
            server_name  www.kgc.com;
    
            charset utf-8;
            ##支持中文字符
            access_log  logs/www.kgc.com.access.log;
            ##kgc站点访问日志
            location / {
            }
            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;
            }
     }

    4、重载Nginx服务

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

    5、测试网页,输入www .kgc. com 与 www. accp. com两个域名进行访问

    image.png

    image.png

    二、基于端口

    1、配置虚拟主机
    2、创建另一个端口的测试网页

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

    3、编辑nginx.conf配置文件,仅修改监听地址

    [root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
    
    server {
            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;
            }
     }


    4、重载Nginx服务

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

    image.png

    三、基于IP

    1、添加网卡,并规划好IP
    主机IP  :192.168.235.158  ;  192.168.235.142
    域名     :www . kgc . com ;  www . accp . com

    2、修改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.1
    www IN  A       192.168.235.142
    ##更改IP地址为 192.168.235.142
    
    [root@localhost ~]# systemctl restart named
    ##重启域名解析服务

    3、编辑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;
             }
      }

    4、重载Nginx服务

    [root@localhost ~]# killall -s HUP nginx
    [root@localhost ~]# netstat -ntap | grep 80
    tcp        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

    5、测试网页,分别输入IP地址192.168.235.158和192.168.235.142进行访问

    image.png

    顶一下
    (0)
    100%
    订阅 回复
    踩一下
    (0)
    100%
    » 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。
  • 【上一篇】
  • 【下一篇】
  • 目前有 0 条留言 其中:访客:0 条, 博主:0 条

    给我留言

    您必须 [ 登录 ] 才能发表留言!