Apache服务
目前提供Web网络服务的程序有IIS、Nginx和Apache。
IIS是Windows系统中的web服务程序。Nginx是一款轻量级的网站服务软件,高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器,是一个异步的模型架构。Apache HTTP Server是Apache软件基金会的一个开放源码的网页服务器,其特点是同步多进程模型,一个连接对应一个进程。
一、Apache服务配置
Apache服务的软件包名称为httpd,服务程序httpd。
Linux系统中的配置文件
配置文件名称 | 存放路径 |
服务目录 | /etc/httpd |
主配置文件 | /etc/httpd/conf/httpd.conf |
网站数据目录 | /var/www/html |
访问日志 | /var/log/httpd/access_log |
错误日志 | /var/log/httpd/error_log |
二、SELinux安全子系统
SELinux域:服务功能限制
安全上下文:文件权限限制
SELinux服务有三种配置模式(配置文件/etc/selinux/config):
enforcing:强制启用安全策略模式,拦截服务的不合理请求。
permissive:遇到服务越权时,发出警告,不做强制拦截。
disabled:关闭SELinux,对越权的行为不做警告,也不拦截。
使用getenforce命令获得当前SELinux服务的运行模式,可以用setenforce [0|1]命令修改SELinux当前的运行模式(0为禁用,1为启用)。这种修改只是临时的,在系统重启后就会失效。
1.semanage命令
semanage命令用于管理SELinux的策略。格式“semanage [选项] [文件]”
semanage命令参数及作用
参数 | 作用 |
-l | 用于查询 |
-a | 用于添加 |
-t | 具体用什么值 |
-m | 用于修改 |
-d | 用于删除 |
使用ls命令查询原文件或目录的安全上下文。查询目录,参数d;查询上下文,参数Z。
[root@langfeng ~]# ls -lZd /var/www/html/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
解决方案:①修改目录的安全上下文,使用fcontext选项。②并使用restorecon命令重启SELinux安全上下文立即生效,-Rv对指定目录进行递归操作(无法使用递归操作,各级目录需要进行设置)。
[root@langfeng ~]# ls -Zd /home/aaa/
drwxr-xr-x. root root unconfined_u:object_r:home_root_t:s0 /home/aaa/
[root@langfeng ~]# semanage fcontext -a -t httpd_sys_content_t /home/aaa
[root@langfeng ~]# ls -Zd /home/aaa/
drwxr-xr-x. root root unconfined_u:object_r:home_root_t:s0 /home/aaa/
[root@langfeng ~]# restorecon -v /home/aaa/
restorecon reset /home/aaa context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
[root@langfeng ~]# ls -Zd /home/aaa/
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /home/aaa/
2.SELinux域安全策略规则
当非目录的SELinux的安全上下文(文件权限)影响权限后,需要考虑到是否是SELinux域(服务功能)限制影响的。
解决方案:①使用getsebool命令查询协议相关的安全策略。②setsebool命令来修改SELinux策略中规则的布尔值,加上-P参数表示修改后规则永久生效。③
[root@langfeng ~]# getsebool -a
abrt_anon_write --> off
abrt_handle_event --> off
abrt_upload_watch_anon_write --> on
antivirus_can_scan_system --> off
antivirus_use_jit --> off
auditadm_exec_content --> on
authlogin_nsswitch_use_ldap --> off
authlogin_radius --> off
authlogin_yubikey --> off
……
3.虚拟主机功能
虚拟主机功能,可以把一台处于运行状态的物理服务器分割成多个“虚拟的服务器”。Apache的虚拟主机功能是服务器基于用户请求的不同IP地址、主机域名或端口号,实现提供多个网站同时为外部提供访问服务的技术。
①基于IP地址
如果一台服务器有多个IP地址,而且每个IP地址与服务器上部署的每个网站一一对应,这样当用户请求访问不同的IP地址时,会访问到不同网站的页面资源。在httpd的配置文件(/etc/httpd/conf/httpd.conf)中增加基于IP地址的虚拟主机网站参数。
<VirtualHost 192.168.241.101>
DocumentRoot "/var/www/html/101"
ServerName www.langfeng.com
<Directory /var/www/html/101 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
②基于域名
基于本地文件(/etc/hosts),或者能够通过DNS解析的地址。在httpd的配置文件(/etc/httpd/conf/httpd.conf)中增加基于IP地址的虚拟主机网站参数。
<VirtualHost 192.168.241.100>
DocumentRoot "/var/www/html"
ServerName www.langfeng.com
<Directory /var/www/html>
AllowOverride None
Require all granted
</directory>
</VirtualHost>
<VirtualHost 192.168.241.101>
DocumentRoot "/var/bbs/html"
ServerName bbs.langfeng.com
<Directory /var/bbs/html>
AllowOverride None
Require all granted
</directory>
</VirtualHost>
③基于端口号
需要在配置文件中,增加监听的端口号,
来源:oschina
链接:https://my.oschina.net/u/4450343/blog/3210364