当前位置: 首页 > news >正文

Nginx:如何配置基于ip的虚拟主机(总结二)

一、什么是虚拟主机

虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响的。

如下图:

通过nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置:

1、基于ip的虚拟主机

2、基于域名的虚拟主机

3、基于端口的虚拟主机

实际使用的过程中,我们一般常用的是用域名或是端口来区分web服务。这里为了讲的全面一点,会把三种配置都讲一讲。

二、Nginx配置文件的结构

nginx的配置文件结构如下:

......events{.......}http{.......server{.......}server{.......}}

每个server就是一个虚拟主机。

三、基于ip的虚拟主机配置

Linux操作系统允许添加IP别名,就是在一块物理网卡上绑定多个lP地址。这样就能够在使用单一网卡的同一个服务器上运行多个基于IP的虚拟主机。

应用场景
一台nginx服务器绑定两个ip:192.168.78.132、192.168.78.133,访问不同的ip请求不同的html目录,即:

访问http://192.168.78.132将访问html132目录下的html网页

访问http://192.168.78.133将访问html133目录下的html网页

i. 准备环境
创建192.168.78.132 的虚拟机,保证本地电脑和虚拟网络通畅。

在192.168.78.132上安装nginx。这个之前讲过nginx 的源码安装,可以去看看这篇文章:
https://mayantong.blog.csdn.net/article/details/157505562?spm=1011.2415.3001.5331

ii. 绑定多ip
1、修改网络配置文件,进入到/etc/sysconfig/network-scripts,编辑ifcfg-ens33文件如下:

TYPE=EthernetPROXY_METHOD=none BROWSER_ONLY=no # BOOTPROTO=dhcp 注意区别!!! DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=26c2f3f8-62c5-4571-80e2-ca394cfd43da DEVICE=ens33 ONBOOT=yes ZONE=public# 注意区别 IPADDR0=192.168.78.132PREFIX0=24IPADDR1=192.168.78.133PREFIX1=16

2、保存修改,重启网络: systemctl restart network

[root@bogonnetwork-scripts]# systemctl restart network

iii. 创建两个web网站
进入/usr/local/nginx 目录,将原来nginx的html目录拷贝两个目录 “html132”和“html133”,为了方便测试需要修改每个目录下的index.html内容使之个性化。

cd/usr/local/nginx cp-r html html132 cp-r html html133

iv. 配置虚拟主机
修改/usr/local/nginx/conf/nginx.conf文件,添加两个虚拟主机,如下:

#user nobody;worker_processes1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events{worker_connections1024;}http{include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout65;#配置虚拟主机192.168.78.132server{#监听的ip和端口,配置192.168.78.132:80listen80;#虚拟主机名称这里配置ip地址 server_name192.168.78.132;#所有的请求都以/开始,所有的请求都可以匹配此location location/{#使用root指令指定虚拟主机目录即网页存放目录 #比如访问http://ip/test.html将找到/usr/local/html3/test.html #比如访问http://ip/item/test.html将找到/usr/local/html3/item/test.html root/usr/local/nginx/html132;#指定欢迎页面,按从左到右顺序查找 index index.html index.htm;}}#配置虚拟主机192.168.78.133server{listen80;server_name192.168.78.133;location/{root/usr/local/nginx/html133;index index.html index.htm;}}}

v. 测试
重新启动nginx,观察端口监听状态:

访问http://192.168.78.132/

访问http://192.168.78.133/

四、最后

以上,就把nginx 基于ip的配置虚拟主机讲完了。后面会继续讲基于域名和端口的配置。

历史文章

Nginx:如何安装Nginx详细教程(总结一)

http://www.jsqmd.com/news/318914/

相关文章:

  • A.每日一题——2976. 转换字符串的最小成本 I
  • Pandas实战技巧,大数据新手入门必学
  • 高通SEE架构深度解析(3): 核心组件从功能模块到安全体系
  • IPD课程系列-产品平台和CCB
  • ollama 调用vlm模型 显存可以省到只用5g左右
  • 高通SEE架构深度解析(2): Sensor HAL层代码实战与ADSP通信
  • 把数字翻译成英文,其实是在考你“结构化思维”
  • python护工预约评价系统管理小程序
  • C++中的职责链模式实战
  • Python多线程与多进程:如何选择?(GIL全局解释器锁详解)
  • 智能标注平台开发:AI应用架构师的必备技能
  • 趣味项目与综合实战
  • 高通SEE架构深度解析(1): 架构原理与核心组件
  • python快递校园帮互助微信小程序设计与实现
  • C++网络编程(Boost.Asio)
  • 摸鱼软件系列:隐藏软件为了方便上班时摸鱼打开某些软件时怕被发现又不想关闭
  • python快餐店微信扫码点餐订餐小程序
  • 构建SpringBoot项目Docker镜像并发布到k8s集群中进行运行
  • 2026年政务服务智能化演进:从被动咨询到“端侧”业务闭环
  • python关于英雄联盟云顶之弈的游戏攻略视频辅助微信小程序
  • python基于小程序的临沂大学非机电动车车辆充电维修管理系统
  • 按照片拍摄日期批量重命名({年}{月}{日}{时}{分}{秒}_{文件名}_{时间戳})工具
  • 全面应用掌握!提示工程架构师带你全面掌握Agentic AI国际化应用技能
  • 使用Python进行PDF文件的处理与操作
  • 提取文件(文件夹)名称小工具目录树文件名字提取BAT脚本加软件
  • 解码分布式节点技术:五大核心特质赋能多行业数字化落地
  • jQuery Mobile 过渡
  • Moltbot 超详细安装使用教程(初学者版)
  • 7-16 WPS JS宏 RandBetween、Address实例8--[唯一性]类的应用
  • 7-15 WPS JS宏 class、constructor自定义关于[唯一性]的类