news 2026/6/10 12:57:44

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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详细教程(总结一)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/7 18:03:27

IPD课程系列-产品平台和CCB

一、课程简介如果您的企业面临以下问题,则需要考虑参加本课程:1.如何实现基于产品平台去开发产品?2.如何规划产品平台?3.如何进行技术规划?4.如何进行CBB(公共共享模块)设计?5.如何保…

作者头像 李华
网站建设 2026/4/26 15:03:10

Python多线程与多进程:如何选择?(GIL全局解释器锁详解)

SQLAlchemy是Python中最流行的ORM(对象关系映射)框架之一,它提供了高效且灵活的数据库操作方式。本文将介绍如何使用SQLAlchemy ORM进行数据库操作。目录安装SQLAlchemy核心概念连接数据库定义数据模型创建数据库表基本CRUD操作查询数据关系操…

作者头像 李华
网站建设 2026/5/13 10:57:57

Razor 简介

Razor 简介 概述 Razor 是一种由微软开发的开源服务器端标记语言,它主要用于在 ASP.NET MVC 和 ASP.NET Web Pages 应用程序中创建动态网页。Razor 的设计理念是让开发者能够以简洁的方式编写视图代码,同时保持与 HTML 的紧密集成。本文将详细介绍 Razor 的基本概念、工作原…

作者头像 李华
网站建设 2026/5/23 17:47:03

7-16 WPS JS宏 RandBetween、Address实例8--[唯一性]类的应用

7-16 WPS JS宏 RandBetween、Address实例8--[唯一性]类的应用 函数 RandBetween: 为excel函数,需要WorksheetFunction调用。 格式:WorksheetFunction.RandBetween(起点,终点) Address: 为显示地址 格式:区域范围等…

作者头像 李华
网站建设 2026/6/9 15:36:29

Moltbot 超详细安装使用教程(初学者版)

🦞 从零开始,手把手教你安装配置 Moltbot 个人 AI 助手 适合人群:完全没有编程经验的小白用户 目录 一、什么是 Moltbot?为什么要用它? 1.1 简单理解 1.2 它和 ChatGPT 有什么区别? 1.3 它能帮你做什么? 二、安装前的准备工作 2.1 你需要准备什么? 2.2 确认你的…

作者头像 李华
网站建设 2026/5/22 12:54:26

Highcharts 组合图

Highcharts 组合图 概述 Highcharts 是一个功能强大的 JavaScript 图表库,它能够帮助开发者轻松地创建各种类型的图表,包括组合图。组合图是一种将不同类型的图表元素(如柱状图、折线图、饼图等)组合在一起的图表,用于展示数据之间的关系和趋势。本文将详细介绍 Highcha…

作者头像 李华