本章说明什么是 Web 服务程序,并对比主流的 Web 服务。记录 httpd 服务中的“全局配置参数”、“区域配置参数”和“注释信息”。本章还包括 SELinux 服务以及多个基于 httpd 服务功能的部署实验。
网站服务程序
我们平时访问的网站服务就是 Web 服务,它允许用户通过浏览器访问到互联网中各种资源,提供服务程序的 Web 服务器会通过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户。
目前能够提供 Web 网络服务的程序有:
- IIS(Internet Information Services,互联网信息服务) 是 Windows 系统中默认的 Web 服务程序,这是一款图形化的网站管理工具,但是,IIS 只能在 Windows 系统中使用
- Nginx 一款轻量级的网站服务软件
- Apache 目前拥有很高市场占有率的 Web 服务程序之一,支持基于 IP、域名及端口号的虚拟主机功能,支持多种认证方式,集成有代理服务器模块、安全 Socket 层(SSL),能够实时监视服务状态与定制日志消息,并有着各类丰富的模块支持
我们可以通过 YUM 仓库安装 httpd 服务
>>> yum install httpd
>>> systemctl start httpd
>>> systemctl enable httpd
>>> ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
然后在浏览器中输入 http://127.0.0.1
就可以看到用于提供 Web 服务的 httpd 服务程序的默认页面了
配置服务文件参数
配置文件位置
httpd 服务程序的主要配置文件及存放位置如表所示:
配置文件 | 位置 |
---|---|
服务目录 | /etc/httpd |
主配置文件 | /etc/httpd/conf/httpd.conf |
网站数据目录 | /var/www/html |
访问日志 | /var/log/httpd/access_log |
错误日志 | /var/log/httpd/error_log |
配置信息类别
在 httpd 服务程序的主配置文件中,存在三种类型的信息:注释行信息、全局配置、区域配置
-
全局配置参数
作用于对所有的子站点
-
区域配置参数
单独针对于每个独立的子站点进行设置
httpd 常用的参数
参数 | 功能 |
---|---|
ServerRoot | 服务目录 |
ServerAdmin | 管理员邮箱 |
User | 运行服务的用户 |
Group | 运行服务的用户组 |
ServerName | 网站服务器的域名 |
DocumentRoot | 网站数据目录 |
Listen | 监听的 IP 地址与端口号 |
DirectoryIndex | 默认的索引页页面 |
ErrorLog | 错误日志文件 |
CustomLog | 访问日志文件 |
Timeout | 网页超时时间,默认为 300 秒 |
DocumentRoot 定义网站数据的保存路径,向 /var/www/html
目录中写入一个 index 文件,替换掉 httpd 服务程序的默认首页面,该操作会立即生效
>>> echo "Welcome To LinuxProbe.Com" > /var/www/html/index.html
>>> firefox
修改保存网站数据的目录
-
建立网站数据的保存目录,并创建首页文件
>>> mkdir /home/wwwroot >>> echo "The New Web Directory" > /home/wwwroot/index.html
-
修改 httpd 主配置文件
- 将约第 119 行用于定义网站数据保存路径的参数 DocumentRoot 修改为/home/wwwroot,
- 将约第 124 行用于定义目录权限的参数 Directory 后面的路径也修改为/home/wwwroot
>>> vim /etc/httpd/conf/httpd.conf ………………省略部分输出信息……………… 113 114 # 115 # DocumentRoot: The directory out of which you will serve your 116 # documents. By default, all requests are taken from this directory, bu t 117 # symbolic links and aliases may be used to point to other locations. 118 # 119 DocumentRoot "/home/wwwroot" 120 121 # 122 # Relax access to content within /var/www. 123 # 124 <Directory "/home/wwwroot"> 125 AllowOverride None 126 # Allow open access: 127 Require all granted 128 </Directory> ………………省略部分输出信息………………
-
重新启动 httpd 服务
SELinnux 安全子系统
SELinux(Security-Enhanced Linux)是美国国家安全局开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。RHEL 7 系统使用 SELinux 技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。
SELinux 从多方面监控违法行为:对服务程序的功能进行限制(SELinux 域限制可以确保服务程序做不了出格的事情);对文件资源的访问限制(SELinux 安全上下文确保文件资源只能被其所属的服务程序进行访问)。
SELinux 的三种配置模式
模式 | 说明 |
---|---|
enforcing | 强制启用安全策略模式,将拦截服务的不合法请求 |
permissive | 遇到服务越权访问时,只发出警告而不强制拦截 |
disabled | 对于越权的行为不警告也不拦截 |