Linux运维学习——DAY11

萝らか妹 提交于 2020-03-24 20:34:17

3 月,跳不动了?>>>

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>

        ③基于端口号

            需要在配置文件中,增加监听的端口号,

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!