Nginx配置虚拟主机的三种方式

Nginx配置虚拟主机的三种方式

Nginx 支持三种类型的虚拟主机配置

  1. 基于 IP 的虚拟主机(不支持云服务器!)
  2. 基于端口的虚拟主机
  3. 基于域名的虚拟主机(应用最多)

1.基于 IP 的虚拟主机配置方式

注意:买的云服务器主机不支持该方式,应为云服务器不能修改网关,修改网关会导致无法远程连接!!!
云服务器请使用2.基于端口号或者3.基于域名来配置!

[1] 需求

一台 Linux 服务器绑定两个 ip:120.25.255.144、120.25.255.188访问不同的 ip 请求不同的 html 目录,即:
访问 http://120.25.255.144将访问“html144”目录下的 html 网页
访问 http://120.25.255.188将访问“html188”目录下的 html 网页

[2] 创建 HTML 目录

为了区分,把复制得到的目录名设置为html144、html145,分别表示144端口和145端口访问的页面。
在这里插入图片描述

为了区分html页面,我们可以修改html144和html145目录中的index.html页面,在标题Welcome to Nginx 后面加ip地址。
在这里插入图片描述

[3]Linux 绑定多 IP

注意:购买的云服务器不支持该功能!一旦修改网关后就不能使用SSH连接。必须应用于自己安装的虚拟机。
Linux 操作系统允许绑定多 IP。使用 IP 别名的方式,在一块物理网卡上可以绑定多个 lP地址。这样就能够在使用单一网卡的同一个服务器上运行多个基于 IP 的虚拟主机。但是在绑定多 IP 时需要将动态的 IP 分配方式修改为静态的指定 IP。

  • 1 将动态 IP 修改为静态 IP
    修改ifcfg-eth0文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0 
(将动态IP改成静态IP@[TOC](这里写自定义目录标题))
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=(设置 IP 地址)
NETMASK=255.255.255.0
GATEWAY=(设置网关)
DNS1=114.114.114.114
DNS2=4.4.4.4
IPV6INIT=no

在这里插入图片描述
重启Linux系统。
注意:重启后要关闭防火墙,或者添加80端口
打开Windows下的CMD,ping 虚拟机的IP地址。如果出现以下页面则表示修改成功。
在这里插入图片描述

  • 2.IP 绑定
    将/etc/sysconfig/network-scripts/ifcfg-eth0 文件复制两份,命名为ifcfg-eth0:1
    和ifcfg-eth0:2修改其中内容:
    DEVICE=eth0:1
    IPADDR=192.168.70.188
    其他项不用修改
    重启系统
    具体操作如下
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth0:1
cp ifcfg-eth0 ifcfg-eth0:2

在这里插入图片描述
修改ifcfg-eth0:1内容
在这里插入图片描述
修改ifcfg-eth0:2内容
在这里插入图片描述
修改完毕后重启虚拟机
重启后用Windows下的CMD ping IP地址
若都能ping成功则说明绑定多IP成功。
在这里插入图片描述

[4]修改Nginx 的配置文件 nginx.conf

在nginx/conf/目录下编译nginx.conf配置文件
在这里插入图片描述
重启nginx
在nginx/sbin/目录下,执行以下命令
关闭Nginx命令: ./nginx -s quit
开启Nginx命令:./nginx
然后用浏览器访问nginx主页
在这里插入图片描述
出现对应的页面则表示配置成功。

2.基于端口号的虚拟主机配置方式

[1]创建html目录

在nginx根目录下,拷贝html目录两份,命名为html端口号
在这里插入图片描述
为了区分访问的页面,把html3881、html3882中的index.html均修改标题。
在这里插入图片描述
ps:默认不支持中文,所以访问时中文会乱码。我已经把中文删除了

[2]修改nginx/conf/nginx.conf文件

nginx.conf的配置文件如下,我们主要配置的是其中的server{}结构

user root;
worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    #一个Server就是一个虚拟主机
    server {
        #监听的端口号
        listen       80;
        #虚拟主机的ip地址
        server_name 192.168.85.144 ;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        #主要配置路由访问信息
        location / {
            #用于指定访问根目录时,访问虚拟主机的web目录
            root   html144;
            #在不指定访问具体资源时,默认的展示资源的列表
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

在这里插入图片描述

保存后退出
重启nginx

#进入nginx/sbin目录下
关闭nginx:./nginx -s quit
开启nginx: ./nginx

在这里插入图片描述
至此,配置成功。

3.通过域名来配置虚拟主机

[1] 需求

两个域名指向同一个 nginx 服务器,用户访问不同的域名时显示不同的内容。
域名规划:
1,test.qiaotong.com
2,test.qt.com
至于为什么不用www.开头,是应为浏览器在访问www.开头的网址时会强制使用https协议,而目前程度上仅支持http协议。若要支持https协议则需要再进行配置。

[2]创建 HTML 目录

进入nginx根目录下,拷贝html目录重命名为html-qiaotong、html-qt
在这里插入图片描述
编辑html-qiaotong、html-qt目录中的index.html文件,用来区分。
在这里插入图片描述
在这里插入图片描述

[3]修改 windows 的 hosts 文件配置域名与 ip 的映射

注意:如果是服务器已经备案域名了,则无需此步骤
注意:如果是服务器已经备案域名了,则无需此步骤
注意:如果是服务器已经备案域名了,则无需此步骤
该步骤的作用范围仅作用于当前windows电脑
文件路径:C:\Windows\System32\drivers\etc
在这里插入图片描述
保存并关闭。修改之后,在浏览器输入配置的网址,就会直接访问对应的ip地址了。当然,仅作用于当前windows电脑。

[4] 修改 Nginx 的配置文件完成基于域名的虚拟主机配置

进入nginx/conf目录下,修改nginx.conf文件
vim /usr/local/nginx/conf/nginx.conf
在这里插入图片描述
重启nginx

#进入nginx/sbin目录
关闭nginx    ./nginx -quit
开启nginx    ./nginx

用http协议根据域名访问
在这里插入图片描述
至此,配置成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值