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爱好者指正,小弟定当虚心受教!

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

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

相关文章

Yolov5 改进之损失函数 SlideLoss 注意力机制 MultiSEAM

用于学习记录 文章目录 前言一、SlideLoss1.1 utils/loss.py1.2 data/hyps/hyp.scratch-low.yaml二、注意力机制 MultiSEAM2.1 models/common.py2.2 models/yolo.py2.3 models/MultiSEAM.yaml三、训练结果图总结前言 一、SlideLoss YOLO-FaceV2: A Scale and Occlusion Aware …

[递归] 子集 全排列和组合问题

1.1 子集I 思路可以简单概括为 二叉树&#xff0c;每一次分叉要么选择一个元素&#xff0c;要么选择空&#xff0c;总共有n次&#xff0c;因此到n1进行保存结果&#xff0c;返回。像这样&#xff1a; #include <cstdio> #include <vector> #include <algorithm&…

SurfaceFlinger中Binder案例

SurfaceFlinger中Binder案例 1、SurfaceFlinger服务init启动2、SurfaceFlinger服务继承BnSurfaceComposer端2.1 Code标签扩展2.2 Code标签扩展对应调用 3、SurfaceFlinger服务的BpSurfaceComposer端3.1 FWK使用案例3.2 Native使用案例 android12-release 1、SurfaceFlinger服务…

在Visual Studio 2017上配置Glut

上篇 已经介绍了如何配置OpenGL&#xff0c;但缺点是每次新建一个项目时&#xff0c;都应重新安装 “nupengl.core.redist” 与 “nupengl.core” 这两个文件&#xff0c;这在有网的情况下还是可以实现的&#xff0c;但不是一个长久之计。现在介绍另一种方法&#xff0c;用Glut…

C#---第二十:不同类型方法的执行顺序(new / virtual / common / override)

本文介绍不同类型的方法&#xff0c;在代码中的执行顺序问题&#xff1a; 构造方法普通方法&#xff08;暂用common代替&#xff09;、虚方法&#xff08;Virtual修饰&#xff09;、New方法&#xff08;new修饰&#xff09;三个优先级相同overide方法&#xff08;会替换virtual…

【AI辅助办公】PDF转PPT,移除水印

PDF转PPT 将PDF上传链接即可转换成PPT。​​​​​​ ​​​​​​​ https://www.camscanner.com/pdftoppthttps://www.camscanner.com/pdftoppt​​​​​​​​​​​​​​移除水印 第一步&#xff1a;打开视图-宏 第二步&#xff1a;输入宏名&#xff08;可以是人以文字…

记录一次Modbus通信的置位错误

老套路&#xff0c;一图胜千言&#xff0c;框图可能有点随意&#xff0c;后面我会解释 先描述下背景&#xff0c;编程语言是QT5 C,在Modbus线程内有一个死循环&#xff0c;一直在读8个线圈的状态&#xff0c;该线程内读到的消息会直接发送给UI线程&#xff0c;UI线程会解析Modb…

联想电脑装系统无法按F9后无法从系统盘启动的解决方案

开机时按F9发现没有加载系统盘. 打开BIOS设置界面&#xff0c;调整设置如下: BOOT MODE: Legacy Support.允许legacy方式boot. BOOT PRIORITY: Legacy First. Legacy方式作为首选的boot方式. USB BOOT: ENABLED. 允许以usb方式boot. Legacy: 这里设置legacy boot的优先级,…

CSAPP的Lab学习——BombLab

文章目录 前言一、一号炸弹&#xff08;小试牛刀&#xff09;二、二号炸弹&#xff08;六重循环&#xff09;三、三号炸弹&#xff08;不同输入&#xff0c;不同答案&#xff09;四、四号炸弹&#xff08;判断语句的实现&#xff09;五、五号炸弹&#xff08;跳转&#xff0c;循…

创建git项目并提交

1.创建仓库 2.点击创建 3复制gitee码云的HttpS连接 4 提交上传 打开项目并点击菜单栏上的【CVS】–》【Import into version control】–》【Create Git Repository】创建本地仓库 在打开的【Create Git Repository】对话框内选择本地仓库的位置&#xff0c;这里我选择…

C语言(第三十天)

1. 什么是bug bug本意是昆虫”或“虫子”&#xff0c;现在一般是指在电脑系统或程序中&#xff0c;隐藏着的一些未被发现的缺陷或问 题&#xff0c;简称程序漏洞。 “Bug” 的创始人格蕾丝赫柏&#xff08;Grace Murray Hopper&#xff09;&#xff0c;她是一位为美国海军工作的…

React面向组件编程

往期回顾&#xff1a;# React基础入门之虚拟Dom【一】 面向组件编程 react是面向组件编程的一种模式&#xff0c;它包含两种组件类型&#xff1a;函数式组件及类式组件 函数式组件 注&#xff1a;react17开始&#xff0c;函数式组件成为主流 一个基本的函数组件长这个样子 …

three.js(十):线性几何体

线性几何体 WireframeGeometry 网格几何体EdgesGeometry 边缘几何体 WireframeGeometry 网格几何体 WireframeGeometry( geometry : BufferGeometry ) geometry — 任意几何体对象。 const geometry new SphereGeometry(); const wireframe new WireframeGeometry(geometr…

python爬取bilibili,下载视频

一. 内容简介 python爬取bilibili&#xff0c;下载视频 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 链接&#xff1a;https://pan.baidu.com/s/1WuXTso_iltLlnrLffi1kYQ?pwd1234 三.主要流程 3.1 下载单个视频 代码 import requests impor…

优思学院|六西格玛中的概率分布有哪些?

为什么概率分布重要&#xff1f; 概率分布是统计学中一个重要的概念&#xff0c;它帮助我们理解随机变量的分布情况以及与之相关的概率。在面对具体问题时&#xff0c;了解概率分布可以帮助我们选择适当的检验或分析策略&#xff0c;以解决问题并做出合理的决策。 常见的概率…

Redis问题集合(三)在Redis容器里设置键值对

前言 前提是已经拉取了Redis镜像并创建了对应的容器做个记录&#xff0c;方便后续查看 步骤 查看Redis容器的ID&#xff1a;docker ps -a 进入容器&#xff1a;docker exec -it 容器ID /bin/bash进入redis命令行&#xff1a;redis-cli输入密码&#xff1a;auth 配置密码 查看…

Apipost:为什么是开发者首选的API调试工具

文章目录 前言正文接口调试接口公共参数、环境全局参数的使用快速生成并导出接口文档研发协作接口压测和自动化测试结论 前言 Apipost是一款支持 RESTful API、SOAP API、GraphQL API等多种API类型&#xff0c;支持 HTTPS、WebSocket、gRPC多种通信协议的API调试工具。除此之外…

【使用DataEase数据可视化分析工具访问cpolar】

DataEase 是开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务的改进与优化。是开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务的改进与优化。 在本地搭建后,借助cpolar 内…

Java-泛型

文章目录 Java泛型什么是泛型&#xff1f;在哪里使用泛型&#xff1f;设计出泛型的好处是什么&#xff1f;动手设计一个泛型泛型的限定符泛型擦除泛型的通配符 结论 Java泛型 什么是泛型&#xff1f; Java泛型是一种编程技术&#xff0c;它允许在编译期间指定使用的数据类型。…

E9—TEMAC IP实现千兆网口UDP传输2023-08-28

1.关于IP收费的问题 Tri Mode Ethernet MAC是收费IP&#xff0c;打开IP后&#xff0c;当左下角显示Bought IP license available则IP可用。 2.功能说明 应用搭建的场景是&#xff0c;上位机发送数据&#xff0c;首先发起arp请求&#xff0c;随后下位机给出arp应答响应&#…