Linux 高级管理,基于域名的虚拟Web主机

news2024/11/20 3:28:02

实验环境

    某公司的网站服务器使用的公网IP地址为192.168.184.50并使用该IP地址注册了两个域名 www.bdqn1.com和www.jbit.com。服务器中已经安装好了 CentOS 7操作系统.并通过源码编译的 方式安装了Web服务器软件httpd-2.4.25.现需要对httpd服务进行配置.以支持同时运行这两个 Web站点。

需求描述

> 站点www.bdqn.com的网页文档存放在服务器的/var/www/html/bdqn1doc目录下。

> 站点www.jbit.com的网页文档存放在服务器的/var/www/htnl/jbitdoc目录下。

> 构建基于域名的虚拟主机服务器,用于支撑以上两个Web站点。

> 其中www.jbit.com站点只对公司内部员工开放alan、agou,访问时需进行用户认证。 

1.为虚拟主机准备网页文档

     为每个虚拟Web主机准备网站目录及网页文档,为了测试方便,分别为每个虚拟Web主机提供 包含不同内容的首页文件.例如,在/var/www/html 目录下创建两个子文件夹bdqncom、jbitcom, 分别作为www.bdqn.com和www.jbit.com的网站根目录,并分别编写测试网页文件。

[root@node01 ~]# mkdir -p /var/www/html/bdqn1doc
[root@node01 ~]# mkdir -p /var/www/html/jbitdoc
[root@node01 ~]# echo "<h1>www.bdqn1.com</h1>" > /var/www/html/bdqn1doc/index.html
[root@node01 ~]# echo "<h1>www.jbit.com</h1>" > /var/www/html/jbitdoc/index.html

2.添加虚拟主机配置

    在httpd 服务器的主配置文件中,若要启用基于域名的虚拟Web主机.通常需要配置以下几个 方面的内容。

     > 虚拟主机区域:使用<VirtualHost 监听地址>……</VirtualHost>区域配置,为每个虚拟Web 主机建立独立的配置内容.其中至少应包括虚拟主机的网站名称、网页根目录的配置项: 其他(如管理邮箱、访问日志等)配置项可根据实际需要添加。

    > 目录权限:使用<Directory 目录位置>……</Directory>区域配置,为每个虚拟Web主机的 网站目录设置访问权限,如允许任何人访问,目录访问可以继承其父目录的授权许可, 因此可以采取直接为父文件夹授权访问权限的方法来简化配置。

      当虚拟Web 主机的数量较多时,建议使用独立的虚拟主机配置文件,然后在httpd.conf文件中 通过 hclude加载这些配置,这样可以将对httpd.conf文件的改动减至最少,更方便配置内容的维护。

[root@node01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

 输入以下内容

<VirtualHost *:80>
    ServerAdmin webmaster@bdqn1.com
    DocumentRoot "/var/www/html/bdqn1doc"
    ServerName www.bdqn1.com
    ErrorLog "logs/www.bdqn1.com-error_log"
    CustomLog "logs/www.bdqn1.com-access_log" common
    <Directory "/var/www/html">
    Repuire all granted
    </Directory>

</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@jbit.com
    DocumentRoot "/var/www/html/jbitdoc"
    ServerName www.jbit.com
    ErrorLog "logs/www.jbit.com-error_log"
    CustomLog "logs/www.ibit.com-access_log" common
    <Directory "/var/www/html">
    Repuire all granted
    </Directory>

</VirtualHost>

[root@node01 ~]# vim /usr/local/httpd/conf/httpd.conf

把图中的注释掉 ,加载独立的配置文件

3.在客户机中访问虚拟Web主机

    在客户机的浏览器中,使用网站名称分别访问不同的虚拟Web主机.确认能够看到不同的网页 内容,如图中所示,此时表示基于域名的虚拟主机配置成功。若无法看到此结果,则需要检查两 个站点的首页文件,根据上述过程排查配置错误,必要时清空浏览器缓存后重新访问。

4.创建用户认证数据文件

     httpd的基本认证通过校验用户名,密码组合来判断是否允许用户访问。授权访问的用户账号需 要事先建立,并保存在固定的数据文件中。使用专门的htpasswd工具程序,可以创建授权用户数据 文件,并维护其中的用户账号。

     使用htpasswd工具时,必须指定用户数据文件的位置,添加‘-c”选项表示新建立此文件,例 如.执行以下操作可以新建数据文件/usr/local/httpd/conf/.awspwd.其中包含一个名为 alan 的用户信息。

[root@node01 httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd alan //创建用户alan
New password: 
Re-type new password: 
Adding password for user alan

[root@node01 httpd]# cat /usr/local/httpd/conf/.awspwd //查看用户
alan:$apr1$I3lXQ7vR$2gkZbuk5mR1AI088xZld0/

若省略“-c选项,则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户 的密码。例如.需要向.awspwd数据文件中添加一个新用户agou时,可以执行以下操作。

[root@node01 httpd]# bin/htpasswd /usr/local/httpd/conf/.awspwd agou //创建用户agou
New password: 
Re-type new password: 
Adding password for user agou

[root@node01 httpd]# cat /usr/local/httpd/conf/.awspwd //查看用户
alan:$apr1$I3lXQ7vR$2gkZbuk5mR1AI088xZld0/
agou:$apr1$YmQ9U0qG$j66NdvxLbV06KKvVeeSR81

5.添加用户授权配置

    有了授权用户账号以后,还需要修改httpd.conf 配置文件,在特定的目录区域中添加授权配置. 以启用基本认证并设置允许哪些用户访问。例如,若只允许.awspwd 数据文件中的任一用户访问网 页,可以执行以下操作。 

[root@node01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin webmaster@jbit.com
    DocumentRoot "/var/www/html/jbitdoc"
    ServerName www.jbit.com
    ErrorLog "logs/www.jbit.com-error_log"
    CustomLog "logs/www.jbit.com-access_log" common
    <Directory "/var/www/html">
    AuthName " DocumentRoot "
    AuthType Basic
    AuthUserFile /usr/local/httpd/conf/.awspwd
    Require valid-user

    </Directory>

</VirtualHost>

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

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

相关文章

mybatis多表映射-分步查询

1、建库建表 create database mybatis-example; use mybatis-example; create table t_book (bid varchar(20) primary key,bname varchar(20),stuid varchar(20) ); insert into t_book values(b001,Java,s001); insert into t_book values(b002,Python,s002); insert into …

LinuxC中进程通信

LinuxC中进程通信 信号&#xff08;Signals&#xff09;&#xff1a;Linux 提供了信号机制&#xff0c;允许一个进程向另一个进程发送信号以通知特定事件的发生。这是一种轻量级的通信机制&#xff0c;通常用于处理异步事件。您可以使用 kill 命令或 kill 函数来发送信号&…

小米路由器4A千兆版如何刷OpenWRT并使用固定地址远程访问

文章目录 前言1. 安装Python和需要的库2. 使用 OpenWRTInvasion 破解路由器3. 备份当前分区并刷入新的Breed4. 安装cpolar内网穿透4.1 注册账号4.2 下载cpolar客户端4.3 登录cpolar web ui管理界面4.4 创建公网地址 5. 固定公网地址访问 前言 OpenWRT是一个高度模块化、高度自…

基于微服务架构的餐饮系统的设计与实现-计算机毕设 附源码 86393

基于微服务架构的餐饮系统的设计与实现 摘 要 近年来,我国经济和社会发展迅速,人们物质生活水平日渐提高,餐饮行业更是发展迅速,人们对于餐饮行业的认识和要求也越来越高。传统形式的餐饮行业都是以人为本,管理起来需要很多人力、物力、财力,既不方便管理者的管理,也不方便顾…

大创项目推荐 卷积神经网络手写字符识别 - 深度学习

文章目录 0 前言1 简介2 LeNet-5 模型的介绍2.1 结构解析2.2 C1层2.3 S2层S2层和C3层连接 2.4 F6与C5层 3 写数字识别算法模型的构建3.1 输入层设计3.2 激活函数的选取3.3 卷积层设计3.4 降采样层3.5 输出层设计 4 网络模型的总体结构5 部分实现代码6 在线手写识别7 最后 0 前言…

GaussDB数据库语法及gsql入门

一、GaussDB数据库语法入门 之前我们讲了如何连接数据库实例&#xff0c;那连接数据库后如何使用数据库呢&#xff1f;那么我们今天就带大家了解一下GaussDB&#xff0c;以下简称GaussDB的基本语法。 关于如何连接数据库&#xff0c;请戳这里。 学习本节课程之后&#xff0c…

C语言——输出菱形

法一&#xff1a; #include<stdio.h> #define N 7 //假设输出7层菱形 int main(){int i;//i控制第几行 int j;//j控制每一行空格的循环个数 int k;//k控制每一行*的循环次数 for(i1;i<4;i){//将图形分为两部分,前四行(第一部分) for(j1;j<4-i;j){//输出第i行的…

【带头学C++】----- 九、类和对象 ---- 9.11 面向对象模型

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️麻烦您点个关注&#xff0c;不迷路❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ 目 录 9.11 面向对象的框架模型 9.11.1 成员变量与函数的存储架构 代码举例说明&#xff1a; 9.11.2 this指针 9.11.4 this指针的应用…

线程互斥与同步

用户级线程 内核的LWP Linux线程 OS概念中经常说的 用户级线程 和 内核级线程 也就是线程实现真的是在OS内部实现&#xff0c;还是应用层或用户层实现 很明显Linux是属于用户级线程 用户级执行流&#xff08;用户级线程&#xff09; &#xff1a;内核lwp 1 : 1 也有1&…

Anaconda+Pytorch(GPU版)深度学习环境配置笔记

主要参考以下文章进行配置&#xff1a; https://blog.csdn.net/qq_43757976/article/details/131173301 配置版本略有更新&#xff0c;最新版本时间为2023.12.11 一、准备工作 个人电脑配置&#xff1a;laptop RTX4060 win11 个人配置版本&#xff1a;cuda&#xff08;12.1&…

虹科Pico汽车示波器 | 汽车免拆检修 | 2019款别克GL8豪华商务车前照灯水平调节故障

一、故障现象 一辆2019款别克GL8豪华商务车&#xff0c;搭载LTG发动机&#xff0c;累计行驶里程约为10.7万km。车主反映&#xff0c;车辆行驶过程中组合仪表提示前照灯水平调节故障。 二、故障诊断 接车后试车&#xff0c;起动发动机&#xff0c;组合仪表上提示“前照灯水平调节…

OWASP ESAPI 预防XSS跨站脚本攻击

跨站脚本攻击XSS案例&#xff1a;跨站脚本攻击XSS案例及其解决方案_xss攻击案例-CSDN博客 Java集成&#xff1a; 1、引入maven <!--OWASP ESAPI&#xff0c;防御 XSS跨站攻击--><dependency><groupId>org.owasp.esapi</groupId><artifactId>esa…

90%的人都值得学习微信商城的准备工作,7个关键步骤

如何做一个小程序卖东西&#xff1f;90%的人都不知道微信商城的准备工作 近几年&#xff0c;随着疫情的影响和电商的崛起&#xff0c;实体生意大家都变得越来越难做&#xff0c;越来越多的企业老板开始把矛头转向成本费用比实体门店更加低的微商城小程序&#xff0c;通过小程序…

微信小程序 bindtap 事件多参数传递

在微信小程序中&#xff0c;我们无法直接通过 bindtap"handleClick(1,2,3)" 的方式传递参数&#xff0c;而是需要通过自定义属性 data- 的方式进行传递&#xff0c;并在事件回调函数中通过 event.currentTarget.dataset 来获取这些参数。然而&#xff0c;这种传参方式…

【FPGA】数字电路设计基础

数字电路基础 1 什么是数字电路 在学习数字电路之前&#xff0c;我们先要了解下什么是数字电路。想要搞明白数字电路&#xff0c;就要搞明白生活中有 两种概念&#xff0c; 数字信号和模拟信号&#xff0c;模拟信号一般包括压力、气温、速度等信号&#xff0c;模拟量的值是可…

4s店3D虚拟云展厅让看车变得更加便捷和高效

汽车企业7203D虚拟全景展示的特点和优势主要体现在以下几个方面&#xff1a; 逼真的观赏和试乘体验&#xff1a;7203D虚拟全景展示利用虚拟现实技术&#xff0c;提供了高度逼真的汽车观赏和试乘体验。消费者可以在虚拟环境中更加深入地了解汽车的外观、内饰和功能特点&#xff…

【mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar安装】linux安装mysql5.7

之前安装的时候遇到了很多问题&#xff0c;浪费了一些时间。整理出这份教程&#xff0c;照着做基本一遍过。 这是安装包: 链接&#xff1a;https://pan.baidu.com/s/1gBuQBjA4R5qRYZKPKN3uXw?pwd1nuz 1.下载安装包&#xff0c;上传到linux。我这里就放到downloads目录下面…

阻抗控制下机器人接触刚性环境振荡不稳定进行阻抗调节

在阻抗控制下&#xff0c;当机器人接触刚性环境时&#xff0c;可能会出现振荡不稳定的情况。这可以通过调整机器人的阻抗参数来进行调节。 阻抗接触 阻抗参数中的质量、阻尼和刚度都会对机器人控制系统的性能和稳定性产生重要影响。质量主要影响系统的惯性&#xff0c;从而影响…

【网络安全】CTF入门教程(非常详细)从零基础入门到进阶,看这一篇就够了!

一、CTF简介 CTF&#xff08;Capture The Flag&#xff09;中文一般译作夺旗赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。…

ELK综合案例

综合案例 ELKfilebeatnginxjson nginx配置 1,在nginx服务器上安装nginx # yum install epel-release # yum install nginx 2,将nginx日志改成json格式,这样各个字段就方便最终在kibana进行画图统计了 # vim /etc/nginx/nginx.conf ​ http {log_format main $remote_ad…