Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行
Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上
由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一,也叫网页服务器软件
它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中
同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部,也是一个基金会的名称、一种武装直升机等等
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、协议版本、请求头部和请求数据
服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
主配置目录 | /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/* |
(1)开启server虚拟机
rht-vmctl reset server
rht-vmctl view server
(2)设置网络并重启
vim /etc/sysconfig/network-script/ifcfg-eth0
(3)设置主机名
hostnamectl -set hostname apache.server
(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
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
vim /etc/httpd/f
(2)修改默认发布文件
f
systemctl restart httpd.service
测试
首先我的真机是可以上网的 当我在浏览器里面输入www.baidu时,百度浏览器会出来
当我点击百度里面的新闻时,它会跳转到news.baidu 当我点击百度里面的地图时,它会跳转到map.baidu
说明此时百度的apache服务有很多域名
操作步骤:
(1)在子配置文件中建立文件
vim /etc/httpd/conf.f
(2)重启httpd
(3)测试:访问一个页面。
(4)再次访问一个music和news的页面
f
systemctl restart httpd
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
(1)基于ip访问控制
控制用户访问"hello world!"页面
编写vhost配置文件
重启http
测试:
更改顺序读取顺序
测试:
(2)基于密码认证
建立认证文件
htpasswd -cm .htpassfile admin
编写子配置文件
测试:(admin可以通过,admin1不可以)
编写子配置文件
测试:(所有用户都可以)
(1)php语言的设置
恢复实验环境
编写一个php语言的默认发布文件
vim index.php
<?phpphpinfo();
?>
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
测试:
我现在也想将我的apache服务加密
这个加密锁需要开启443端口 netstat -antlupe | grep httpd
默认锁:
(1)我们需要在自己的apache服务器上面安装锁
yum install mod_ssl -y
(2)查看端口
(3)防火墙上允许443端口
(4)下载认证
生成自己的锁:
(1)下载生成自己的钥匙和锁
(2)加密的网站
(3)生成锁和钥匙
(4)将锁与钥匙指定给apache
f
(5)测试:
怎样让客户在自己的浏览器中输入172.25.254.103(80端口)时自动跳转为172.25.254.103(443端口)
(1)编写子配置文件
(2)重启文件
测试:网页中输入:news.westos不会跳转到
测试:网页中输入:
(1)编写子配置文件
(2)重启文件
测试:网页中输入:news.westos会跳转到
^(/.*)$ | 客户在浏览器地址栏中输入的所有字符 |
---|---|
强制客户加密访问 | |
%{HTTP_HOST} | 客户请求主机 |
$1 | "1"表示(/.∗) |
1 | 表示(/.∗)的值 |
本文发布于:2024-01-27 19:27:20,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063548402173.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |