httpd
HTTP指的是Hyper Text Transfer Protocol,超文本传输协议,主要为网站服务器程序与浏览器之间传输网页定义相关的标准。
HTML指的是Hyper Text Markup Language,超文本标记语言,是静态网页文件的标记规范。
1.Web通信基本概念
基于B/S(Browser/Server)架构的网页服务
服务端提供网页,浏览器下载并显示网页
实现Web的软件: httpd nginx tomcat
Apache
网络路径:在浏览器输入的地址
实际路径:服务器存放网页文件的路径
2.独立Web主机
装包httpd > 重启httpd > 测试 > 默认网页存放路径 /var/www/html
配置文件路径:
/etc/httpd/conf/httpd.conf //主配置文件
/etc/httpd/conf.d/.conf //调用配置文件
提供的默认配置:
Listen:监听地址:端口(80)
ServerName:本站点注册的DNS名称(空缺)
DocumentRoot:网页根目录(/var/www/html)
DirectoryIndex:起始页/首页文件名(index.html)
3.虚拟Web主机
1)由一台服务器提供多个不同的Web站点
2)分类:基于域名的虚拟主机
基于端口的虚拟主机
基于ip地址的虚拟主机
3)配置一个虚拟站点: (每四行为一个虚拟主机)
vim /etc/httpd/conf.d/.conf
<VirtualHost ip地址:端口>
ServerName 此站点的DNS名称
DocumentRoot 此站点的网页根目录
4)一旦启用虚拟Web主机后
—外部的ServerName DocumentRoot会被忽略
—第一个虚拟站点被视为默认站点
4. 网页内容访问
文件夹权限
–针对DocumentRoot网页目录的控制权限
–httpd运行身份(用户/组):apache
客户机地址限制
使用配置区段
–每个文件夹自动继承其父目录的ACL访问权限
–除非针对子目录有明确设置
配置: vim /etc/httpd/conf.d/.conf
<Directory 目录的绝对路径>
Require all denied //拒绝所有客户端访问
Require all granted //允许所有客户端访问
Require ip IP或网段地址 … … //允许个别客户端访问
5.增加新的Web目录
SELinux策略: 更改安全上下文值
ls -Zd 目录 //查看目录安全上下文值
semanage fcontext -l //查看安全上下文值列表
semanage fcontext -a -t httpd_sys_content_t '新目录(/.)?’ //将新目录增加到预设的标准Web目录范围(增加Web目录)
chcon -R --reference=模板目录 新目录 //参照模板目录,重设新目录的属性 -R:递归
6.部署动态网站
静态网站概述
–服务端的原始网页=浏览器访问到的网页
–由Web服务软件处理所有请求
–文本/图片等静态资源
动态网站的运行
–服务端的原始网页≠浏览器访问到的网页
–由Web服务软件接受请求,动态程序转后端模块处理
–PHP网页 Python网页 JSP网页 …
1) 具备Python网页文件
webinfo.wsgi
2)页面跳转
vim /etc/httpd/conf.d/virtualhost.conf
<VirtualHost ip地址:端口>
ServerName 此站点的DNS名称
DocumentRoot 此站点的网页根目录
Alias 网页文件根目录(/) 目标路径/文件名
3)装mod_wsgi软件
vim /etc/httpd/conf.d/virtualhost.conf
<VirtualHost ip地址:端口>
ServerName 此站点的DNS名称
DocumentRoot 此站点的网页根目录
WsgiScriptAlias 网页文件根目录(/) 目标路径/文件名
4)监听端口
Listen 端口
<VirtualHost ip地址:端口>
ServerName 此站点的DNS名称
DocumentRoot 此站点的网页根目录
WsgiScriptAlias 网页文件根目录(/) 目标路径/文件名
5)SELinux策略更改(非默认端口开放)
semanage port -l //查看默认端口
semanage port -a -t http_port_t -p tcp 端口号 //非默认端口开放 a:添加 t:类型 p:协议
7.安全Web服务
PKI公钥基础设施
Public Key Infrastructure,公钥基础设施
– 公钥:主要用来加密数据
– 私钥:主要用来解密数据(与相应的公钥匹配)
– 数字证书:证明拥有者的合法性/权威性(单位名称、有效期、公钥、颁发机构及签名、…)
– Certificate Authority,数字证书授权中心:负责证书的申请/审核/颁发/鉴定/撤销等管理工作
配置思路:
/etc/pki/tls/certs/证书文件.crt
/etc/pki/tls/private/私钥文件.key
指定SSL虚拟站点的DNS名称,网页根目录
指定站点证书/根证书/站点秘钥的位置
1.部署网站证书(营业执照)
]# cd /etc/pki/tls/certs/
]# wget http://classroom.example.com/pub/tls/certs/server0.crt
2.部署根证书(工商局信息)
]# cd /etc/pki/tls/certs/
]# wget http://classroom.example.com/pub/example-ca.crt
3.部署私钥(用于解密数据)
]# cd /etc/pki/tls/private/
]# wget http://classroom.example.com/pub/tls/private/server0.key
4.安装mod_ssl软件,支持https加密通信
[[email protected] /]# yum -y install mod_ssl
[[email protected] /]# ls /etc/httpd/conf.d/ssl.conf
5.修改支持https加密通信的配置文件
[[email protected] /]# vim /etc/httpd/conf.d/ssl.conf
59 DocumentRoot “/var/www/html”
60 ServerName www0.example.com:443
指定网站证书
100 SSLCertificateFile /etc/pki/tls/certs/server0.crt
指定私钥
107 SSLCertificateKeyFile /etc/pki/tls/private/server0.key
指定根证书
122 SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt
6.重起httpd服务
[[email protected] /]# systemctl restart httpd
[[email protected] ~]# firefox https://www0.example.com
我已了解可能的风险----》添加例外----》确认安全例外
上一篇: 运维工程师常见面试题
推荐阅读
-
Apache服务器主配置文件httpd.conf详解
-
HTTP实验:分别使用httpd-2.2和httpd-2.4实现
-
CentOS7配置httpd虚拟主机教程
-
Linux系统实现ansible自动化安装配置httpd的方法
-
Apache2的httpd.conf翻译
-
CentOS 7 在最小化安装之后进行安装Apache服务,httpd-2.4.34
-
httpd.conf 二级域名设置方法
-
httpd虚拟主机、站点访问控制、基于用户的访问控制、持久链接等应用配置实例
-
APACHE 配置文件中文版 httpd.conf FOR Apache 2.2.13
-
Apache 的 httpd.conf 中文详解