互联网主流web服务软件apache的详解(从http—https)

阅读: 评论:0

互联网主流web服务软件apache的详解(从http—https)

互联网主流web服务软件apache的详解(从http—https)

1.什么是apache (Web服务器)?

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行
Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上
由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一,也叫网页服务器软件 
它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中
同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部,也是一个基金会的名称、一种武装直升机等等

2.什么是协议?

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写
是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议
HTTP是基于==TCP/IP==通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统
HTTP协议工作于客户端-服务端架构为上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求
Web服务器根据接收到的请求后,向客户端发送响应信息

HTTP工作原理: HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端
HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据
服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

3.apache基础信息

主配置目录/etc/httpd/conf
主配置文件/etc/httpd/f
子配置目录/etc/httpd/conf.d/
子配置文件/etc/httpd/conf.d/*.conf
默认发布目录/var/www/html
默认发布文件index.html
默认端口80
默认安全上下文httpd_sys_content_t
程序开启默认用户apache
apache日志/etc/httpd/logs/*

4.搭建实验环境

(1)开启server虚拟机

rht-vmctl reset server
rht-vmctl view server

(2)设置网络并重启

vim /etc/sysconfig/network-script/ifcfg-eth0

(3)设置主机名

hostnamectl -set hostname apache.server

5.在虚拟机上搭建apache-web服务器

(1)配置yum仓库——以便安装apache

mkdir /iso ###镜像
mkdir /source ####镜像挂载
vim /pos.d  ###配置yum仓库

(2)安装apache并启动

 yum install httpd.x86_64 -ysystemctl start httpdsystemctl enable httpd


(3)设置防火墙

firewall-cmd --list-all
firewall-cmd --permanent --add-service=http
firewall-cmd --reload 
irewall-cmd --list-all


(4)查看配置目录与配置文件

rpm -ql httpd
rpm -qc httpd




(5)查看httpd的服务端口

 netstat -antlupe | grep httpd


(6)默认发布目录

cd /var/www/html/
ls
vim index.html




测试:访问172.25.254.103

(7)安装apache手册

man 5 httpd
yum arch -y
systemctl  restart httpd

测试:172.25.254.103/manual
(8)查看主配置文件

vim /etc/httpd/f



6.apache服务的相关设置

  • 修改端口:
vim /etc/httpd/f 
systemctl restart httpd.service 
netstat -antlupe | grep httpd




注:此时浏览器上访问不到8080,原因是:防火墙只允许80端口

设置防火墙,让8080可通过
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --list-all


  • 设置上下文

(1)查看防火墙的状态
(2)修改端口为6666
(3)重启httpd——启动失败
(4)设置火墙状态——启动成功
(5)查看http在enforing下可以使用的端口
semanage port -l | grep http



在火墙状态为enforing下6666端口使用成功——修改上下文

semanage port -a -t http_port_t -p tcp 6666
semanage port -l | grep http


重启httpd并设置火墙使6666端口通过

firewall-cmd --permanent --add-port=6666/tcp
firewall-cmd --reload 


  • 修改发布目录

(1)准备工作

mkdir /westos
cd /westos/
vim index.html


(2)修改默认发布目录由/var/www/html到/westos
注:查看/westos的安全上下文,不可以被apache访问

 ls -Zd /westos/semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?' 
restorecon -RvvF  /westos/


修改默认发布目录并授权到该目录

f 
systemctl restart httpd.service 


测试:浏览器中输入172.25.254.103

  • 修改默发布文件
    (1)查看默认发布文件
vim /etc/httpd/f


(2)修改默认发布文件

f 
systemctl restart httpd.service 



测试

7.apache的虚拟主机(让一台apache主机可以发布多个网页)

首先我的真机是可以上网的 当我在浏览器里面输入www.baidu时,百度浏览器会出来
当我点击百度里面的新闻时,它会跳转到news.baidu 当我点击百度里面的地图时,它会跳转到map.baidu
说明此时百度的apache服务有很多域名

操作步骤:
(1)在子配置文件中建立文件

vim /etc/httpd/conf.f

(2)重启httpd

(3)测试:访问一个页面。

(4)再次访问一个music和news的页面

  • 编写子配置文件中的f并重启httpd
f
systemctl restart httpd

  • 建立f指定页面访问的路径
 mkdir -p /var/www/virtual/westos/{music,news}
编写页面显示的内容
cd /var/www/virtual/westos/music/
vim index.html
cd /var/www/virtual/westos/news/
vim index.html

编写本地解析文件

vim /etc/hosts
内容:172.25.254.103 www.westos music.westos,org news.westos,org

8.apache基于认证的访问控制(想让谁访问谁才能访问,这样比较安全)

(1)基于ip访问控制
控制用户访问"hello world!"页面
编写vhost配置文件

重启http
测试:

更改顺序读取顺序

测试:


(2)基于密码认证
建立认证文件

htpasswd -cm .htpassfile admin


编写子配置文件
测试:(admin可以通过,admin1不可以)



编写子配置文件

测试:(所有用户都可以)

9.apache支持的语言(html php cgi wsgi)

(1)php语言的设置

  1. 恢复实验环境

  2. 编写一个php语言的默认发布文件

vim index.php
<?phpphpinfo();
?>
  1. 安装php插件重启httpd
    测试:

    (2)perl语言设置

172.25.254.103/manual/查看apache服务手册,看设置cgi语言都需要在配置文件里面写入哪些内容 选CGI查看粘贴东西


在默认发布下建立目录并更改上下文

编写测试脚本

给一个可执行权限

测试:
shell脚本中

./i


浏览器中输入:172.25.254.103/i

编写子配置文件(应该将翻译过后的html传给apache)


重启httpd
测试:

(3)python语言的设置
下载插件


下载测试脚本(script,wsgi)放在/var/www/html目录上

给一个可执行权限

测试:

shell脚本中

./script,wsgi


测试:浏览器中输入:172.25.254.103/script.wsgi

编写子配置文件(应该将翻译过后的html传给apache)

重启httpd
测试:

10.https加密访问

我现在也想将我的apache服务加密
这个加密锁需要开启443端口 netstat -antlupe | grep httpd


默认锁:
(1)我们需要在自己的apache服务器上面安装锁

yum install mod_ssl -y



(2)查看端口

(3)防火墙上允许443端口
(4)下载认证



生成自己的锁:
(1)下载生成自己的钥匙和锁

(2)加密的网站


(3)生成锁和钥匙


(4)将锁与钥匙指定给apache

f


(5)测试:

11.设定https虚拟主机并设定网页重写

怎样让客户在自己的浏览器中输入172.25.254.103(80端口)时自动跳转为172.25.254.103(443端口)

  • 特定网页自动跳转到443端口,加密

(1)编写子配置文件

(2)重启文件
测试:网页中输入:news.westos不会跳转到

测试:网页中输入:

  • 所有网站都自动跳转到443的端口,均加密——网页重写

(1)编写子配置文件

(2)重启文件
测试:网页中输入:news.westos会跳转

^(/.*)$客户在浏览器地址栏中输入的所有字符
强制客户加密访问
%{HTTP_HOST}客户请求主机
$1"1"表示(/.∗)
1表示(/.∗)的值

本文发布于:2024-01-27 19:27:20,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063548402173.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:互联网   详解   主流   软件   http
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23