Web网站服务器

目录

一、什么是Apache?

二、虚拟目录是什么?

三、Apcahe相关配置文件

四、httpd.conf主配置文件的常用配置参数

五、Web网站配置案例

5.1搭建基于用户的个人主页网站

5.2、配置虚拟目录

5.3、配置虚拟主机

5.3.1搭建两个基于IP地址的虚拟主机

5.3.2搭建两个基于域名的站点

5.3.3搭建两个基于端口号的站点

5.4、账号认证访问网站

5.5、搭建https安全网站


一、什么是Apache?

Apache是开放源代码的Web服务器软件,通俗将就是一个用于搭建网站的服务软件。类似的还有微软的IIS、IBM webSphere、Tomcat。

有两个版本:

  • http:超文本传输协议,通过线路以明文形式发送,默认使用80端口/TCP。
  • https:经TLS/SSL安全加密的超文本传输协议,默认使用443端口/TCP。

 

二、虚拟目录是什么?

虚拟目录是一个位于Apache服务器网页文件主目录之外的目录。每个虚拟目录对应一个真实的存放网页文件的物理路径目录,用户通过访问虚拟目录的名字就可以访问到真实目录下的网页文件,而无需在输入真实的网页文件路径。可以针对虚拟目录设置不同的访问权限。

 

三、Apcahe相关配置文件

/etc/httpd    ----------Apache服务主要数据文件存放的根目录

/etc/httpd/conf/httpd.conf -------主配置文件

/etc/httpd/conf.d  --------虚拟主机的配置文件所在目录

/etc/httpd/conf.d/userdir.conf----------个人web站点的配置文件

/etc/httpd/logs--------日志文件目录

/var/www/html--------用户浏览网站时网页文件默认所在目录

四、httpd.conf主配置文件的常用配置参数

1、ServerName  -----网站服务器的域名和端口号,服务器根据用户提供的此值来确定是否访问的是自己。

2、ServerRoot-------设置服务器的根目录,用于存储web服务器的匹配数据文件。

3、Listen-------监听的端口号

4、DocumentRoot-------默认网站提供html文档的根目录。

5、Directory-------用于设置web服务器文件目录的访问权限和访问方式

6、DirectoryIndex------指定网站首页的默认文件

7、VirtualHost-------搭建基于虚拟主机多个站点时所用的配置参数设置

8、ServerAdmin-------设置web服务器管理员邮箱地址,当用户访问网站出错时将显示管理员邮箱地址

9、Time out--------设置web网站接收或发送数据时的超时时间。

10、Error Log-------指定Apcahe服务器错误日志存放的文件路径

11、Custom Log-----指定Apache服务器访问日志文件路径

12、Include-------指定所要包含的其它配置文件所在路径

五、Web网站配置案例

5.1搭建基于用户的个人主页网站

*服务端和客户端需保持网络互通,客户端正确解析服务器的域名所对应IP地址

Server

1、安装httpd服务软件

2、创建用于个人主页的账户

3、进入用户家目录创建一个用于存储个人网页文件的主目录public_html,并允许其它人有执行访问权限

4、在用户个人主目录内创建一个用于用户访问的网页文件

5、修改httpd个人站点配置文件

6、防火墙放行httpd服务,设置selinux布尔值的相应参数来允许网络用户访问个人用户的家目录。

 

7、开启httpd服务,并设置开机自启

 

Client端:

8、访问服务器个人主页进行测试

5.2、配置虚拟目录

描述:创建一个名为/myweb的虚拟目录其对应的真实目录物理路径为/usr/web。

Server端:

1、创建/usr/web真实目录和其用户访问所需的网页文件。

2、修改/etc/httpd/conf/httpd.conf主配置文件相关参数。

3、防火墙放行http服务,并修改虚拟目录所对应的物理目录的安全上下文。

4、重启httpd服务使其配置立即生效

Client端:

5、使用客户端访问虚拟目录进行测试

5.3、配置虚拟主机

概述:虚拟主机允许在一台web服务器上搭建多个web站点,用户访问时各web站点可以通过IP地址、域名或端口号来进行区分访问不同站点。

5.3.1搭建两个基于IP地址的虚拟主机

Server端:

1、给网卡添加两个IPv4的地址,用于后面分别绑定两个站点做区分。

2、分别创建两个站点的网页文件主目录和其要访问的网页文件。

3、在httpd的主配置文件/etc/httpd/conf/httpd.conf中添加虚拟主机相关参数并赋值。

4、防火墙放行http服务,保证创建的网页文件主目录selinux的安全上下文正确。

5、重启httpd服务使其配置文件立即生效。

6、客户端通过基于不同的IP地址访问网站进行测试。

5.3.2搭建两个基于域名的站点

Server端:

1、创建两个站点所需的网页文件和其主目录。

2、在主配置文件/etc/httpd/conf/httpd.conf 中添加虚拟主机一下相关参数。

3、防护墙放行http服务,保证所创建的两个站点目录文件的安全上下文正确。

4、重启httpd服务使配置文件立即生效。

Client端:

6、保证客户端正确配置DNS所对应网站使用的IP地址解析,此处客户端使用本地解析。

7、客户端分别访问web1.shanyue.com和web2.shanyue.com进行站点测试。

5.3.3搭建两个基于端口号的站点

Server端:

1、创建两个用于测试的站点所使用的网页文件和其所在的主目录

2、修改/etc/httpd/conf/httpd.conf 主配置文件中的虚拟主机所使用的相关参数,并设置其http服务监听的端口号。

3、防火墙放行两个网站绑定的8080和8081端口。

4、由于修改了http服务默认监听的端口号,此时selinux会认为新修改的端口号不是http服务规定所使用的端口号。因此需要修改新设置的端口号标签类型,使http服务认为此新设置的端口号是合法的。否则修改配置文件重启http服务时会报配置文件语法错误。

*注意:此处由于8081和8082端已被占用定义无法对其进行删除重新添加,但此过程是对的,可以换用其它监听端口测试。此处实验就临时把selinux安全策略设置为允许宽松模式,来跳过http的站点监听端口检测语法检测。

5、重启http服务使其重读http的配置文件,让配置立即生效。

Client端:

6、在客户端分别使用不同的端口号访问刚搭建的站点看其是否搭建成功。

5.4、账号认证访问网站

Server端:

1、创建客户端访问网站时,所需输入的账户和其密码。

2、修改账户密码文件的selinux标签属性。

说明:用户访问网站默认使用web服务器账户是apache账户、因此需保证apache用户有访问此密码文件路径目录的r读和x访问权限,依此来验证客户端访问网站输入的密码是否正确(密码文件可以保存到非站点物理目录下)。

3、开启网站的用户访问密码认证。

4、重启httpd服务使其配置立即生效

Client端:

1、访问web服务器开启用户账户认证的站点,进行测试。

5.5、搭建https安全网站

注意:经TLS/SSL安全加密的超文本传输协议,默认情况下使用端口443/TCP

Server端:

1、安装httpd服务软件、和用于https加密的mod_ssl软件。

2、搭建CA服务器,用于为web站点签发证书。首先创建CA服务所需的目录结构。

3、为CA服务器和web服务器生成一把私钥。

4、修改CA服务配置文件/etc/pki/tls/openssl.cnf参数,允许向CA服务器申请证书的客户可以任意定义申请证书的相关参数。

6、为CA服务机构创建自签的根证书。以后访问此机构颁发的证书网站的客户端可以通过在本地导入CA根证书来信任网站证书。

7、为要搭建的web站点向CA申请数字证书。首先在web服务器上创建证书申请模板文件。然后在发送给CA服务器,由于本实验CA和web服务在一台服务器上,因此模板无需发送给CA服务器。

8、创建CA服务器颁发证书所需文件

9、CA签发web站点提交的证书申请

10、修改https的/etc/httpd/conf.d/ssl.conf 主配置文件相关参数来使将搭建的网站绑定从CA哪里获得的证书,并指定web站点用于解密的私钥文件。

11、把证书文件、秘钥文件和根CA文件分别拷贝到ssl.conf配置文件里的对应路径下面。

12、防火墙放行https服务

13、在httpd服务默认的网页主目录下创建个用于客户端https访问的网页文件。

14、重启httpd服务使其配置文件立即生效

Client端:

1、正确配置web网站域名的DNS解析,此实验采用DNS本地解析。域名最好使用CA颁发给Web服务器证书中的通用域名,以此来让客户端正确解析网站的证书。

2、将网站证书颁发机构CA的根证书内容导入到linux受信任的根证书颁发机构区域文件内来信任站点证书(说明:Linux系统中大部分浏览工具的信任根CA都在此文件内指定。但对于firefox浏览器需要另外导入根CA证书)。

3、客户端以https的方式访问web网站进行测试。通过curl命令可以正常访问站点)。

4、客户端通过firefox图形化浏览器访问https站点进行测试。

5、firefox浏览器导入证书颁发机构的根CA,以此来信任访问的网站出示的证书。

firefox导入根CA证书成功,在次访问https站点不在报错。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

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

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

相关文章

【一等奖方案】大规模金融图数据中异常风险行为模式挖掘赛题「NUFE」解题思路

第十届CCF大数据与计算智能大赛(2022 CCF BDCI)已圆满结束,大赛官方竞赛平台DataFountain(简称DF平台)正在陆续释出各赛题获奖队伍的方案思路,欢迎广大数据科学家交流讨论。 本方案为【大规模金融图数据中…

JDBC使用了哪种设计模式

JDK中提供了操作数据库的接口,比如 java.sql.Driver java.sql.Connection java.sql.Statement java.sql.PreparedStatement 不同的数据库厂商提供操作自己数据库的驱动包, 比如mysql public class Driver extends NonRegisteringDriver implements jav…

10. selenium API (二)

目录 1. 多层框架/窗口定位 2. 下拉框处理 2.1 前端界面 2.2 代码 3. 针对 alert 弹窗进行操作 3.1 前端界面 3.2 代码 4. 文件提交 4.1 前端界面 4.2 代码 5. 显示等待 6. 操作浏览器滚动条 7. 截图 8. 浏览器关闭 9. 窗口切换 在上篇文章中,我们学…

Django请求的生命周期

Django请求的生命周期是指: 当用户在浏览器上输入URL到用户看到网页的这个时间段内,Django后台所发生的事情。 直白的来说就是当请求来的时候和请求走的阶段中,Django的执行轨迹。 一个完整的Django生命周期: 用户从客户端发出一条请求以后&#xff…

css3英文文字换行,超过两行...展示

需求:超过两行...展示 开发的过程中发现div内容中文可以换行英文不换行,导致长度会溢出。 是英文全英文的话浏览器会解析成一个单词, 加上这句就好了 word-break:break-all; 一开始不知道是会解析成一个单词,用字符串拼接处理…

华为云新生代开发者招募

开发者您好,我们是华为2012UCD的研究团队 为了解年轻开发者的开发现状和趋势 正在邀请各位先锋开发者,与我们进行2小时的线上交流(江浙沪附近可线下交流) 聊聊您日常开发工作中的产品使用需求 成功参与访谈者将获得至少300元京…

基于亚马逊云科技无服务器服务快速搭建电商平台——性能篇

使用 Serverless 构建独立站的优势 在传统架构模式下,如果需要进行电商大促需要提前预置计算资源以支撑高并发访问,会造成计算资源浪费并且增加运维工作量。本文介绍一种新的部署方式,将 WordPress 和 WooCommerce 部署在 Amazon Lambda 中。…

CVPR2022 Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels

Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels 使用不可靠的伪标签的半监督语义分割 Paper:https://openaccess.thecvf.com/content/CVPR2022/html/Wang_Semi-Supervised_Semantic_Segmentation_Using_Unreliable_Pseudo-Labels_CVPR_202…

Docker 容器逃逸漏洞 (CVE-2020-15257)复现

漏洞概述 containerd是行业标准的容器运行时,可作为Linux和Windows的守护程序使用。在版本1.3.9和1.4.3之前的容器中,容器填充的API不正确地暴露给主机网络容器。填充程序的API套接字的访问控制验证了连接过程的有效UID为0,但没有以其他方式…

C语言:大小端字节序存储

一、大小端字节序存储介绍 大端字节序存储模式:把一个数据低位字节处的数据存放在高地址处,数据高位字节处的数据存放在低地址处 小端字节序存储模式:把一个数据低位字节处的数据存放在低地址处,数据高位字节处的数据存放在高地址…

论文阅读_医疗知识图谱_GraphCare

英文名称: GraphCare: Enhancing Healthcare Predictions with Open-World Personalized Knowledge Graphs 中文名称: GraphCare:通过开放世界的个性化知识图增强医疗保健预测 文章: http://arxiv.org/abs/2305.12788 代码: https://github.com/pat-jj/GraphCare 作…

mall :hutool项目源码解析

文章目录 一、mall开源项目1.1 来源1.2 项目转移1.3 项目克隆 二、Hutool工具类库2.1 Hutool 简介 三、源码解析3.1 集成与配置3.1.1 导入依赖3.1.2 添加配置 3.2 核心工具类3.2.1 AnnotationUtil使用:注解工具类3.2.2 BeanUtil使用:JavaBean的工具类3.2…

redis实战-实现优惠券秒杀解决超卖问题

全局唯一ID 唯一ID的必要性 每个店铺都可以发布优惠券: 当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题: id的规律性太明显,容易被用户根据id的间隔来猜测…

【Linux】【驱动】注册字符设备号

【Linux】【驱动】注册字符设备号 1. 绪论1 、静态分配设备号2、动态分配设备号3、注销设备号 2 实现的代码3 加载驱动程序 1. 绪论 在之前杂项设备的时候,设备号是固定的,字符设备就需要自己去申请设备号了, 申请设备号有两个方式&#xff…

Python入门教程 - 基本语法 (一)

目录 一、注释 二、Python的六种数据类型 三、字符串、数字 控制台输出练习 四、变量及基本运算 五、type()语句查看数据的类型 六、字符串的3种不同定义方式 七、数据类型之间的转换 八、标识符命名规则规范 九、算数运算符 十、赋值运算符 十一、字符串扩展 11.1…

如何飞速成为开源贡献者(Contributor)

如何飞速成为开源贡献者Contributor 一、环境信息1.1 硬件信息1.2 软件信息 二、Git安装2.1 Git介绍2.2 Git下载安装 三、开源项目选定四、GitHub参与开源流程4.1 Fork项目4.2 SSH配置4.2.1 为什么要配置SSH4.2.2 如何配置SSH 4.3 Clone项目4.4 IDEA关联4.5 PR生成4.6 PR提交 一…

OceanBase 4.x改装:另一种全链路追踪的尝试

本文作者:夏克 OceanBase 社区文档贡献者,曾多次参与 OceanBase 技术征文比赛,获得优秀名次。从事金融行业核心系统设计开发工作多年,服务于某交易所子公司,现阶段负责国产数据库调研。 本文为 OceanBase 第七期技术征…

java-数组

数组静态初始化写法: //静态初始化数组 int[] age new int[] {7,18,19}; double[] scores new double[]{67.5,77.8,94.2,99};//静态初始化数组简化写法 int[] age1 {7,18,19}; double[] scores2 {67.5,77.8,94.2,99};数组在内存中定义方式: 1.在内…

飞天使-python的面向对象

文章目录 面向对象面向对象思想类的定义和使用继承封装多态访问控制 参考视频 面向对象 面向对象思想 面向过程和面对对象的区别是什么? 答: 复用性高,面向对象类的定义和使用 类型里面的定义的时候 self 不能省去,应该写出 class person:…

开源项目如何推进人工智能

推荐:使用 NSDT场景编辑器快速搭建3D应用场景 对于那些不熟悉这个概念的人来说,开源软件或项目是那些向公众提供源代码的软件或项目,允许他们查看、使用和修改它。使用开源软件和工具具有多种优势,尤其是在构建复杂的基于 AI 的产…