【笔记】在虚拟机中通过apache2给一个主机上配置多个web服务器

(配置出来的web服务器又叫虚拟主机……)

下载apache2

sudo apt update

sudo apt install apache2

(一)ip相同 web端口不同的web服务器

进入 /var/www/html

创建站点一和站点二的目录文件(目录文件名自定义哈)

sudo mkdir web1 web2

并进入其中分别创建一个index.html

ps:/var/www/html是Apache服务器默认的网站根目录

修改httpd的主配置文件 /etc/apahce2/ports.conf

监听这两个端口(自定义) 分别对应上面的web1 和web2站点

 ps:

ports.conf文件中增加监听6060和7070端口

使得Apache服务器在这两个端口接受HTTP请求

进入/etc/apache2/sites-available 创建配置文件web.conf(此配置文件名自定义)

此配置定义web站点的配置参数

 ps:

/etc/apache2/sites-available中每个配置文件代表一个web服务器的配置

这样可以通过删除或创建直接启动或禁用web服务器 而不需要去编辑apache的主配置文件

创建一个软连接在/etc/apache2/sites-enabled目录

 sudo ln -s /etc/apache2/sites-available/web.conf /etc/apache2/sites-enabled/web.conf

ps:

为web.conf配置文件创建一个同名的软链接

这样Apache服务器会在启动时 自动加载并应用该配置文件中的设置

创建软连接输入全路径

ln -s 文件原本路径 被创建软连接路径

重启apache2服务

sudo systemctl restart apache2
 

在主机/虚拟机上输入

虚拟机地址:设定的web端口号

即可得到

成功

(二)配置端口相同,IP不同的web服务器

1.依旧是来到/var/www/html中新建目录

这次新建的目录为web_ip1 和web_ip2(自定义即可)

并且在目录中新建一个index.html 加入以下内容

2.来到/etc/apache2/sites-available配置文件新建配置文件web_ip.conf(配置文件自定义即可)

这是用来定义同端口 ip不同的web服务器的配置

这里的ip用的是4.2中的ip(不知道就往下看)图片中ip不应对应4.2的ip

3.同样的在/etc/apache2/site-enabled目录中新建上面那个软连接 为了能在apache服务器启动时配置就能生效

sudo ln -s /etc/apache2/sites-available/web_ip.conf /etc/apache2/sites-enabled/web_ip.conf

4.配置本虚拟机的ip地址

4.1首先查看本虚拟机的网络名字

nmcli connection show
 

4.2配置两个ip到本虚拟机

sudo nmcli connection modify netplan-ens33 ipv4.addresses '192.168.81.37/24'

sudo nmcli connection modify netplan-ens33 +ipv4.addresses '192.168.81.38/24'

这两句分别执行 

 nmcli connection show netplan-ens33 | grep ipv4.addresses
来查看是否添加两个ip到本虚拟机中

成功即可

5.重启apache2

sudo systemctl restart apache2

6.在主机/虚拟机中输入

http://192.168.81.37:80

http://192.168.81.38:80 失败了 我也不知道为啥

(三)创建配置基于域名的web服务器

1.在/var/www/html中创建两个目录 web_dns1 和web_dns2

并且分别在下面创建一个index.html 写入专门的网页代码   同(二)1.

2.在/etc/apache2/sites-availabl添加web_dns.conf的配置文件(文件名自定义)

内容如下 ip地址是你当前虚拟机所使用的就好

3.创建软连接 将此配置添加到apache2启动器自动加载器中

sudo ln -s /etc/apache2/sites-available/web_dns.conf /etc/apache2/sites-enabled/web_dns.conf

4.修改bind的配置文件 /etc/bind/named.conf.local
 

4.1没有下载bind9 就先下载

sudo apt install bind9 -y

4.2进入 /etc/bind/named.conf.local

编辑加入

 

zone "www.web_dns1.net" IN {
type master;
file "/etc/bind/db.web_dns1";
};
zone "www.web_dns2.net" IN {
type master;
file "/etc/bind/db.web_dns2";
};
 

如果后续bind9服务重启失败 可以使用 sudo named-checkconf来检查这里的错误

如果有错 会返回错误的行号和原因

行号显示在vim编辑器中用 :set nu

4.3进入bind的工作目录 /etc/bind

创建编辑两个正向解析区文件db.web_dns1和db.web_dns2(可以在bind的工作目录下通过cat db.local 来复制粘贴模板就不必一个个手打 但是要注意不要复制到空格 此配置文件非常严格)

db.web_dns2同理 就不展示了

5.在/etc/resolv.conf修改配置文件 注释原来的nameserver

这里新增的nameserver是你自己上面用的ip地址 也就是你现在使用的虚拟机ip地址

6.重启bind9和apache2服务器

如果不知道自己的软件服务器名字是什么

使用

systemctl list-units --type=service | grep -i 你要查找的软件名

就可以返回重启所需要的服务器名了

7.在虚拟机的浏览器中输入http://www.web_dns1.net

显示则实验成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/946464.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Qt】多元素控件:QListWidget、QTableWidget、QTreeWidget

目录 QListWidget 核心属性: 核心方法: 核心信号: 例子: QListWidgetItem QTableWidget 核心方法: 核心信号 QTableWidgetItem 例子: QTreeWidget 核心方法: 核心信号&#xff1a…

vulnhub靶场【Hogwarts】之bellatrix

前言 靶机:hotwarts-dobby,ip地址为192.168.1.69 攻击:kali,ip地址为192.168.1.16 都采用虚拟机,网卡为桥接模式 主机发现 使用arp-scan -l或netdiscover -r 192.168.1.1/24扫描发现主机 信息收集 使用nmap扫描端…

Kerberos用户认证-数据安全-简单了解-230403

hadoop安全模式官方文档:https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html kerberos是什么 kerberos是计算机网络认证协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。 概念&#…

2025:OpenAI的“七十二变”?

朋友们,准备好迎接AI的狂欢了吗?🚀 是不是跟我一样,每天醒来的第一件事就是看看AI领域又有什么新动向? 尤其是那个名字如雷贯耳的 OpenAI,简直就是AI界的弄潮儿,一举一动都牵动着我们这些“AI发…

有什么AI辅助阅读文献工具推荐?

AI的发展速度非常快,在很多方面都已经可以提供货真价实的辅助能力。 比如AI辅助阅读方面,可以获取、分析和理解大量文献资料。这可以帮助我们快速浏览和理解PDF文件和其他文档,提高我们的工作效率和学习效率,达到降本增效。 作为…

目标检测,语义分割标注工具--labelimg labelme

1 labelimg labelimg可以用来标注目标检测的数据集, 提供多种格式的输出, 如Pascal Voc, YOLO等。 1.1 安装 pip install labelimg1.2 使用 命令行直接输入labelimg即可打开软件主界面进行操作。 使用非常简单, 不做过细的介绍&#xff0…

30天开发操作系统 第 10 天 -- 叠加处理

前言 得益于昨天的努力,我们终于可以进行内存管理了。不过仔细一看会注意到,bootpack.c都已经有254行了。笔者感觉这段程序太长了,决定整理一下,分出一部分到memory.c中去。(整理中)…好了,整理完了。现在bootpack.c变…

C语言性能优化:从基础到高级的全面指南

引言 C 语言以其高效、灵活和功能强大而著称,被广泛应用于系统编程、嵌入式开发、游戏开发等领域。然而,要写出高性能的 C 语言代码,需要对 C 语言的特性和底层硬件有深入的了解。本文将详细介绍 C 语言性能优化的背后技术,并通过…

unity学习4:git和SVN的使用差别

目录 1 svn 1.1 操作逻辑 1.2 对应工具 1.3 SVN避免冲突的好习惯 2 git 2.1 git的基础操作逻辑 2.1.1 commit时,提交文件之外的其他文件需要pull 2.1.2 commit时,发现要提交的本地文件和服务器的文件冲突了 2.1.3 pull 时 2.2 对应工具 2.3 …

2024 年博客总结

2024年 我做了个Hexo博客 ,博客地址为:https://blog.mybatis.io。 2024 年发布的文章 一共发布了 31 篇博客,平均一个月 2.6 篇。 Ollama 导入自定义模型 阅读数/评论数: 7433/5Spring AI 使用本地 Ollama Embeddings 阅读数/评论数: 5311…

Python中PDF转Word的技术

Python PDF转Word技术概述 在日常办公和数据处理中,经常需要将PDF文档转换为Word文档,以便进行编辑、修改或格式调整。Python作为一种强大的编程语言,提供了多种库和工具来实现这一功能。以下是对Python中PDF转Word技术的详细介绍。 一、技…

vue3+ts+element-plus 表单el-form取消回车默认提交

问题描述:在表单el-form中的el-input中按回车后,页面会刷新,url也会改变, 回车前: 回车后: 相关代码: 解决方法1:在 el-form 上阻止默认的 submit 事件,增加 submit.pre…

【数据结构05】排序

系列文章目录 【数据结构05】排序 . 【算法思想04】二分查找 文章目录 系列文章目录[toc] 1. 基本思想与实现1.1 插入类排序1.1.1 直接插入排序(*)1.1.2 折半插入排序1.1.3 希尔排序(*) 1.2 交换类排序1.2.1 冒泡排序&#xff08…

QT----------文件系统操作和文件读写

一、输入输出设备类 功能: Qt 提供了一系列的输入输出设备类,用于处理不同类型的 I/O 操作,如文件、网络等。 二、文件读写操作类 QFile 类: 提供了对文件的读写操作,可以打开、读取、写入和关闭文件。示例&#x…

Qt自定义步骤引导按钮

1. 步骤引导按钮 实际在开发项目过程中,由一些流程比较繁琐,为了给客户更好的交互体验,往往需要使用step1->step2这种引导对话框或者引导按钮来引导用户一步步进行设置;话不多说,先上效果 2. 实现原理 实现起来…

《Java核心技术II》流中的filter、map和flatMap方法

filter、map和flatMap方法 filter filter通过转换产生过滤后的新流,将字符串流转化为只包含长单词的另一个流。 List words ...; Stream longWords words.stream().filter(w->w.length()>12) filter类型是Predicate(谓词,表示动作)类型对象&#xff0c…

Junit4单元测试快速上手

文章目录 POM依赖引入业务层测试代码Web层测试代码生成测试类文件 在工作中我用的最多的单元测试框架是Junit4。通常在写DAO、Service、Web层代码的时候都会进行单元测试&#xff0c;方便后续编码&#xff0c;前端甩锅。 POM依赖引入 <dependency><groupId>org.spr…

FPGA自学之路:到底有多崎岖?

FPGA&#xff0c;即现场可编程门阵列&#xff0c;被誉为硬件世界的“瑞士军刀”&#xff0c;其灵活性和可编程性让无数开发者为之倾倒。但谈及FPGA的学习难度&#xff0c;不少人望而却步。那么&#xff0c;FPGA自学之路到底有多崎岖呢&#xff1f; 几座大山那么高&#xff1f;…

【Leecode】Leecode刷题之路第97天之交错字符串

题目出处 97-交错字符串-题目出处 题目描述 个人解法 思路&#xff1a; todo代码示例&#xff1a;&#xff08;Java&#xff09; todo复杂度分析 todo官方解法 97-交错字符串-官方解法 方法1&#xff1a;动态规划 思路&#xff1a; class Solution {public boolean isInte…

【微服务】【Sentinel】认识Sentinel

文章目录 1. 雪崩问题2. 解决方案3. 服务保护技术对比4. 安装 Sentinel4.1 启动控制台4.2 客户端接入控制台 参考资料: 1. 雪崩问题 微服务调用链路中的某个服务故障&#xff0c;引起整个链路中的所有微服务都不可用&#xff0c;这就是雪崩。动图演示&#xff1a; 在微服务系统…