配置虚拟主机

news2025/1/22 9:15:13

配置虚拟主机
   虚拟主机在一台Web 服务器上,可以为多个独立的IP地址、域名或端口号提供不同的Web 站点。对于访问量不大的站点来说,这样做可以降低单个站点的运营成本。

子任务1 配置基于IP地址的虚拟主机

基于IP地址的虚拟主机的配置需要在服务器上绑定多个IP地址,然后配置Apache,把多个网站绑定在不同的IP地址上,访问服务器上不同的IP地址,就可以看到不同的网站。

【例1】假设Apache服务器具有192.168.10.1和192.168.10.2两个IP地址(提前在服务器中配置这两个IP地址)。现需要利用这两个IP地址分别创建两个基于IP地址的虚拟主机,要求不同的虚拟主机对应的主目录不同,默认文档的内容也不同。

  • 单击“应用程序”➙“系统工具” ➙“设置”➙”网络”,单击设置按钮,打开如图1所示的配置对话框,可以直接单击“+”添加IP地址,完成后单击“Apply”按钮。这样可以在一块网卡上配置多个IP地址,当然也可以直接在多块网卡上配置多个IP地址。 

          图1    添加 多个IP地址

② 分别创建/var/www/ip1和/var/www/ip2两个主目录和默认文件。

[root@Centos7-1 ~]# mkdir   /var/www/ip1   /var/www/ip2

[root@Centos7-1 ~]# echo "this is 192.168.10.1's web.">/var/www/ip1/index.html

[root@Centos7-1 ~]# echo "this is 192.168.10.2's web.">/var/www/ip2/index.html

③ 添加/etc/httpd/conf.d/vhost.conf文件。该文件的内容如下:

[root@Centos7 ~]# vim /etc/httpd/conf.d/vhost.conf

#设置基于IP地址为192.168.10.1的虚拟主机

<Virtualhost 192.168.10.1>

DocumentRoot  /var/www/ip1        

</Virtualhost>

#设置基于IP地址为192.168.10.2的虚拟主机

<Virtualhost 192.168.10.2>

DocumentRoot /var/www/ip2

</Virtualhost>

④ SELnux设置为允许,让防火墙放行httpd服务,重启httpd服务。

[root@Centos7 ~]# setenforce 0

[root@Centos7 ~]# getenforce

Permissive

[root@Centos7 ~]# firewall-cmd --permanent --add-service=http

success

[root@Centos7 ~]# firewall-cmd --reload 

success

[root@Centos7 ~]# systemctl restart httpd

⑤ 在客户端浏览器中可以看到http://192.168.10.1和http://192.168.10.2两个网站的浏览效果如图2所示。

                             图2  测试时出现默认页面                        

奇怪!为什么看到了httpd服务程序的默认首页面?

我们在尝试访问http://192.168.10.1/index.html页面时,竟然发现页面中显示“Forbidden,You don't have permission to access /index.html on this server.”。这一切都是因为主配置文件里没设置目录权限所致!!

解决方法是在/etc/httpd/conf/httpd.conf中添加有关两个网站目录权限的内容(只设置/var/www目录权限也可以

<Directory "/var/www/ip1">

    AllowOverride None

    Require all granted

</Directory>

<Directory "/var/www/ip2">

    AllowOverride None

    Require all granted

</Directory>

 子任务 2 配置基于域名的虚拟主机
   基于域名的虚拟主机的配置只需服务器有一个IP地址即可,所有的虚拟主机共享同一个IP,各虚拟主机之间通过域名进行区分。
   要建立基于域名的虚拟主机,DNS 服务器中应建立多个主机资源记录,使它们解析到同一个IP地址。例如:

www.smile.com.      IN    A       192.168.10.1
www.devil.com.       IN    A       192.168.10.1

【例2】假设Apache服务器IP地址为192.168.10.1。在本地DNS服务器中该IP地址对应的域名分别为www1.devil.com和www2.devil.com。现需要创建基于域名的虚拟主机,要求不同的虚拟主机对应的主目录不同,默认文档的内容也不同。

① 分别创建/var/www/smile和/var/www/devil两个主目录和默认文件。

[root@Centos7-1 ~]# mkdir   /var/www/www1   /var/www/www2

[root@Centos7-1 ~]# echo "www1.devil.com's web.">/var/www/www1/index.html

[root@Centos7-1 ~]# echo "www2.devil.com's web.">/var/www/www2/index.html

② 修改httpd.conf文件。添加目录权限内容如下:

<Directory "/var/www">

    AllowOverride None

    Require all granted

</Directory>

③ 修改/etc/httpd/conf.d/vhost.conf文件。该文件的内容如下(原来内容清空):

<Virtualhost 192.168.10.1>

DocumentRoot  /var/www/www1

ServerName  www1.devil.com

</Virtualhost>

<Virtualhost 192.168.10.1>

DocumentRoot /var/www/www2

ServerName  www2.devil.com

</Virtualhost>

④ SELnux设置为允许,让防火墙放行httpd服务,重启httpd服务。在客户端Client1上测试。要确保DNS服务器解析正确、确保给Client1设置正确的DNS服务器地址(etc/resolv.conf)。
   注意:在本例的配置中,DNS 的正确配置至关重要,一定确保 devil.com 域名及主机的

正确解析,否则无法成功。正向区域配置文件如下(参考之前发的DNS配置)。

[root@Centos7-1 devil]# vim /var/named/devil.com.zone

$TTL 1D

@       IN SOA   dns.devil.com. mail.devil.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

@                IN    NS                  dns.devil.com.

@                IN    MX         10      mail.devil.com.

dns              IN    A                   192.168.10.1

www1             IN    A                   192.168.10.1

www2             IN    A                   192.168.10.1

 

 子任务3 配置基于端口号的虚拟主机
   基于端口号的虚拟主机的配置只需服务器有一个IP地址即可,所有的虚拟主机共享同一个IP,各虚拟主机之间通过不同的端口号进行区分。在设置基于端口号的虚拟主机的配置时,需要利用Listen语句设置所监听的端口。

【例3】假设Apache服务器IP地址为192.168.10.1。现需要创建基于8088和8089两个不同端口号的虚拟主机,要求不同的虚拟主机对应的主目录不同,默认文档的内容也不同,如何配置?

① 分别创建/var/www/8088和/var/www/8089两个主目录和默认文件。

[root@Centos7-1 ~]# mkdir   /var/www/8088   /var/www/8089

[root@Centos7-1 ~]# echo "8088 port‘s  web.">/var/www/8088/index.html

[root@Centos7-1 ~]# echo "8089 port‘s  web.">/var/www/8089/index.html

② 修改/etc/httpd/conf/httpd.conf文件。该文件的修改内容如下:

Listen 8088                    

Listen 8089

<Directory "/var/www">

    AllowOverride None

    Require all granted

</Directory>

③ 修改/etc/httpd/conf.d/vhost.conf文件。该文件的内容如下(原来内容清空):

<Virtualhost 192.168.10.1:8088>

        DocumentRoot    /var/www/8088

</Virtualhost>

<Virtualhost 192.168.10.1:8089>

        DocumentRoot /var/www/8089    

</Virtualhost>

④ 关闭防火墙和允许SELinux,重启httpd服务。然后在客户端Client1上测试。测试结果大失所望!如图3所示。

   图3   访问192.168.10.1: 8088报错

⑤ 处理故障。这是因为firewall防火墙检测到8088和8089端口原本不属于Apache服务应该需要的资源,但现在却以httpd服务程序的名义监听使用了,所以防火墙会拒绝使用Apache服务使用这两个端口。

[root@Centos7-1 ~]# firewall-cmd --list-all

public (active)  …………<略>

  services: ssh dhcpv6-client samba dns http

  ports:

  …………<略>

[root@Centos7-1 ~]#firewall-cmd --zone=public --add-port=8088/tcp

success

[root@Centos7-1 ~]# firewall-cmd --permanent --zone=public --add-port=8089/tcp

[root@Centos7-1 ~]# firewall-cmd --permanent --zone=public --add-port=8088/tcp

[root@Centos7-1 ~]# firewall-cmd --reload

[root@Centos7-1 ~]# firewall-cmd --list-all

public (active)

  …………<略>

  services: ssh dhcpv6-client samba dns http

  ports: 8089/tcp 8088/tcp

  …………<略>

⑥ 再次在Client1上测试,结果如图4所示。

                           图4   不同端口虚拟机的测试结果       

技巧:依次单击“Applications"→“Sundry”→“Firewall”,打开防火墙配置窗口,可以详尽地配置防火墙,包括配置 public 区域的port(端口)等,读者不妨多操作试试,定会有惊喜。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解STM32启动文件

本文对STM32启动文件startup_stm32f10x_hd.s的代码进行讲解&#xff0c;此文件的代码在任何一个STM32F10x工程中都可以找到。 启动文件使用的ARM汇编指令汇总 Stack——栈 Stack_Size EQU 0x00000400 AREA STACK, NOINIT, READWRITE, ALIGNStack_Mem SPACE Stack_Size__initi…

nodejs安装及环境配置

node.js下载 地址&#xff1a;https://nodejs.org/en/download/ 如果要下载指定的版本&#xff0c;可以点击下面的链接。 开始安装 双击msi&#xff0c;开始安装node.js。 点击【Next】按钮 勾选复选框&#xff0c;点击【Next】按钮 修改好目录后&#xff0c;点击【Nex…

大三学生HTML期末作业,网页制作作业——HTML+CSS+JavaScript饮品饮料茶(7页)

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

vuex配置项(核心概念),vuex的触发流程

1.vuex中有哪些配置项&#xff08;核心概念&#xff09;作用是什么 state作用&#xff1a; 负责存储数据 getters作用&#xff1a;state计算属性(有缓存) mutaions作用&#xff1a;负责同步更新state数据 mutaions是唯一可以修改state数据的方式 actions作用&#xff1a;负责…

当AI学会创作,是否应该感到担忧?

当AI学会创作&#xff0c;是否应该感到担忧&#xff1f;0. 前言1. 人工智能与 AIGC1.1 人工智能简介1.2 人工智能与 AIGC1.3 步入 AIGC 时代2. 文本生成模型3. 代码生成模型4. 图像生成模型小结与展望0. 前言 近来&#xff0c;随着 Open AI 发布的新一代 AI 聊天机器人 ChatGP…

【Redis】Redis 持久化(RDB和AOF)

文章目录概述RDB触发机制如何恢复 rdb 文件&#xff1f;RDB 优点&#xff1a;RDB 缺点&#xff1a;AOFAOF 优点AOF 缺点概述 Redis 是内存数据库&#xff0c;如果不将内存中的数据库状态保存到磁盘&#xff0c;那么服务器一旦进程退出&#xff0c;服务器中的数据库状态也会消失…

软件供应链安全状况报告

根据 ReversingLabs 于 2022 年 12 月 5 日发布的报告《软件供应链安全状况》&#xff08;文末提供报告阅读地址&#xff09; &#xff0c;在 2020 年至 2022 年初供应链攻击呈指数级增长之后&#xff0c;企业在整个2022 年出现了缓慢但稳定的增长。 ReversingLabs的研究基于上…

深证L2接口是如何运营的?

深证L2接口是现在大数据时代常用的一种程序接口&#xff0c;它集程序与协议于一体&#xff0c;为用户提供他们所需要的数据&#xff0c;这大大提高了用户的交易效率。 深证L2接口是如何运营的&#xff1f; 首先就是获取股票数据运用得最频繁的领域&#xff0c;股票交易市场领…

看完这篇还不懂 MySQL 的 MVCC 机制算我输

前言 MySQL中大名鼎鼎的MVCC机制想必大家都有所耳闻吧&#xff0c;虽然在平时MySQL使用过程中基本上用不到&#xff0c;但是面试中出场率十分高&#xff0c;而且作为架构师的你也是需要知道它的工作机制。那么你对MVCC机制了解多少呢&#xff1f;MVCC机制是用来干嘛的呢&#…

判断链表是否有环,如果有返回环的入口,即链表有环证明,和找到环的入口证明(非常清晰的证明过程)

有环链表 判断一个链表有环&#xff0c;如果有环&#xff0c;返回起点 使用快慢指针的方式&#xff0c;两个指针同时指向头节点&#xff0c;慢指针low一次走一步&#xff0c;快指针fast一次走两步&#xff0c;只要low和fast相遇即说明链表有环 只要快指针和慢指针有相差的步…

Maven Javafx javafx-maven-plugin打包项目,添加dll文件

在pom.xml的 javafx-maven-plugin内添加 additionalAppResources&#xff0c;并进行重新加载 <plugin><groupId>com.zenjava</groupId><artifactId>javafx-maven-plugin</artifactId><version>8.8.3</version><configuration&g…

2022,软件测试真的有说的这么容易吗?

前言 大家都说软件测试入门容易&#xff0c;似乎软件测试成了跳进互联网生态圈的最佳途径。但是不少小伙伴在入门软件测试后&#xff0c;却变的相当的迷茫&#xff0c;不知道自己应该做什么&#xff0c;似乎点点点就成了工作中唯一的事情了。趁现在负能量还没有缠身的时候&…

服务优化实践

性能分析常用方法 1. top top指令默认用来监控cpu使用情况&#xff0c;根据cpu使用情况&#xff0c;分析整个系统运作情况&#xff08;大多数系统cpu密集型&#xff09;top指令查询的进程&#xff0c;将会根据cpu使用率大小进行排序&#xff0c;使用的比较多的排在前面&#x…

重生强化【Reincarnating RL】论文梳理

重生强化【Reincarnating RL】论文梳理 文章目录重生强化【Reincarnating RL】论文梳理前言&#xff1a;文章链接&#xff1a;作者团队介绍&#xff1a;沈向洋老师的论文十问&#xff1a;联系方式&#xff1a;前言&#xff1a; 好久没写文章速读了&#xff0c;最近群友推荐了两…

html5期末大作业:自适应网站开发——公司网站7页 ,响应式页面

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

这10张图拿去,别再说学不会RecyclerView的缓存复用机制了

ViewPager2是在RecyclerView的基础上构建而成的&#xff0c;意味着其可以复用RecyclerView对象的绝大部分特性&#xff0c;比如缓存复用机制等。 作为ViewPager2系列的第一篇&#xff0c;本篇的主要目的是快速普及必要的前置知识&#xff0c;而内容的核心&#xff0c;正是前面…

SQL概述以及MySQL常用语句总结

目录数据库概述SQL与NoSQL对比关系型数据库管理系统的常用实例MySQL介绍安装数据库的连接SQLDDLDMLDQL单表查询多表查询多表关系连接查询连接分类内连接 JOIN外连接左外连接 LEFT JOIN右外连接 RIGHT JOIN自连接 JOIN联合查询 UNION子查询标量子查询列子查询行子查询表子查询DC…

大二Web课程设计——家乡主题网页设计(web前端网页制作课作业) 四川旅游网页设计制作

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

【Spring】——12、BeanPostProcessor的执行流程?(源码分析)

&#x1f4eb;作者简介&#xff1a;zhz小白 公众号&#xff1a;小白的Java进阶之路 专业技能&#xff1a; 1、Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理 2、熟悉Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理&#xff0c;具备⼀定的线…

[附源码]Python计算机毕业设计房屋租赁管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等…