学习Linux Apache服务做的笔记,方便自己查阅与复习。
Apache学习笔记
安装Apache
1 2 3
| yum install httpd systemctl start httpd //启动 systemctl enable httpd //设为开机启动
|
访问:浏览器访问127.0.0.1。
配置文件:
常用参数:
更改网站目录
1 2 3 4 5 6 7 8 9 10
| $ mkdir /home/wwwroot //创建文件夹 $ echo "homepage" > /home/wwwroot/index.html //创建主页 $ vim /etc/httpd/conf/httpd.conf //编辑配置文件 DocumentRoot "/var/www/html" -> DocumentRoot "/home/wwwroot" <Directory "/var/www"> -> <Directory "/home/wwwroot"> $ ls -Zd /var/www/html $ ls -Zd /home/wwwroot //查看两个目录的selinux安全上下文不同之处 $ semanage fcontext -a -t httpd_sys_content_t /home/wwwroot $ semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/* //设置selinux安全上下文 $ restorecon -Rv /home/wwwroot //立即生效
|
SELinux
1 2 3 4 5 6 7
| $ vim /etc/selinux enforcing //强制启用安全策略模式,将拦截服务的不合法请求。 permissive //遇到服务越权访问时,只发出警告而不强制拦截 disabled //对于越权的行为不警告也不拦截 $ getenforce //查看运行状态 $ setenforce 1 //启用,0为禁用。临时,重启后失效 $ semanage //用于管理selinux策略,l 查询,a 添加,m 修改,d 删除。
|
个人用户主页功能
1 2 3 4 5 6 7 8 9
| $ vim /etc/httpd/conf.d/userdir.conf //编辑配置文件 UserDir disable -> # UserDir disable # UserDir public_html -> UserDir public_html $ su amon //切换用户 $ mkdir ~/public_html //创建网站文件夹 $ echo "amon'homepage" > ~/public_html/index.html //创建主页文件 $ chomd -Rf 755 /home/amon //设置文件夹权限 $ getsebool -a | grep http //查找selinux安全域策略 $ setsebool -P httpd_enable_homedirs=on //修改selinux安全域策略,参数P:永久设置并立即生效
|
访问:浏览器访问127.0.0.1/~amon
添加身份验证
1 2 3 4 5 6 7 8 9
| $ htpasswd -c /etc/httpd/passwd amon //c参数表示第一次生成,存放密码的文件、用户名称 $ vim /etc/httpd/conf.d/userdir.conf //修改配置文件 <Directory "/home/*/public_html"> AllowOverride all authuserfile "/etc/httpd/passwd" //密码文件 authname "My privately website" //访问网页提示 authtype basic require user amon //用户进行登录需要验证的用户名称 </Directory>
|
虚拟主机功能
基于IP地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| $ vim /etc/sysconfig/network-scripts/ifcfg-ens33 //设置多个IP地址 ADDRIP0=192.168.10.11 ADDRIP1=192.168.10.12 ADDRIP2=192.168.10.13 $ mkdir /home/wwwroot //创建主页 $ mkdir /home/wwwroot/11 $ mkdir /home/wwwroot/12 $ mkdir /home/wwwroot/13 $ echo "IP:192.168.10.11" > /home/wwwroot/11/index.html $ echo "IP:192.168.10.12" > /home/wwwroot/12/index.html $ echo "IP:192.168.10.13" > /home/wwwroot/13/index.html $ vim /etc/httpd/conf/httpd.conf //编辑配置文件 <VirualHost 192.168.10.11> DocumentRoot /home/wwwroot/11 ServerName www.amonlinux.com <Directory /home/wwwroot/11> AllowOverride none Require all granted </Directory> </VirualHost> <VirualHost 192.168.10.12> DocumentRoot /home/wwwroot/12 ServerName bbs.amonlinux.com <Directory /home/wwwroot/12> AllowOverride none Require all granted </Directory> </VirualHost> <VirualHost 192.168.10.13> DocumentRoot /home/wwwroot/13 ServerName tech.amonlinux.com <Directory /home/wwwroot/13> AllowOverride none Require all granted </Directory> </VirualHost> $ semanage fcontext -a -t httpd_sys_content_t /home/wwwroot //selinux安全上下文 $ semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/11 $ semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/11/* $ semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/12 $ semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/12/* $ semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/13 $ semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/13/* $ restorecon -Rv /home/wwwroot //立即生效
|
访问:浏览器访问192.168.10.11、192.168.10.12、192.168.10.13
基于主机域名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| $ mkdir /home/wwwroot //创建主页 $ mkdir /home/wwwroot/www $ mkdir /home/wwwroot/bbs $ mkdir /home/wwwroot/tech $ echo "www" > /home/wwwroot/www/index.html $ echo "bbs" > /home/wwwroot/bbs/index.html $ echo "tech" > /home/wwwroot/tech/index.html $ vim /etc/hosts //手工定义 IP 地址与域名之间的对应关系 192.168.10.11 www.amonlinux.com bbs.amonlinux.com tech.amonlinux.com $ vim /etc/httpd/conf/httpd.conf //编辑配置文件 <VirualHost 192.168.10.11> DocumentRoot /home/wwwroot/www ServerName "www.amonlinux.com" <Directory /home/wwwroot/www> AllowOverride none Require all granted </Directory> </VirualHost> <VirualHost 192.168.10.11> DocumentRoot /home/wwwroot/bbs ServerName "bbs.amonlinux.com" <Directory /home/wwwroot/bbs> AllowOverride none Require all granted </Directory> </VirualHost> <VirualHost 192.168.10.11> DocumentRoot /home/wwwroot/tech ServerName "tech.amonlinux.com" <Directory /home/wwwroot/tech> AllowOverride none Require all granted </Directory> </VirualHost> $ 设置selinux安全上下文(略)
|
访问:浏览器访问www.amonlinux.com、bbs.amonlinux.com、tech.amonlinux.com
基于端口号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| $ mkdir -p /home/wwwroot/6111 //创建主页 $ mkdir -p /home/wwwroot/6222 $ echo "port:6111" > /home/wwwroot/6111/index.html $ echo "port:6222" > /home/wwwroot/6222/index.html $ vim /etc/httpd/conf/httpd.conf Listen 6111 Listen 6222 <VirualHost 192.168.10.11:6111> DocumentRoot /home/wwwroot/6111 ServerName www.amonlinux.com <Directory /home/wwwroot/6111> AllowOverride none Require all granted </Directory> </VirualHost> <VirualHost 192.168.10.11:6222> DocumentRoot /home/wwwroot/6222 ServerName www.amonlinux.com <Directory /home/wwwroot/6111> AllowOverride none Require all granted </Directory> </VirualHost> $ 设置SELinux安全上下文(略) $ semanage port -l | grep http //查询过滤http协议相关且SELinux服务允许的端口 $ semanage port -a -t httpd_port_t -p tcp 6111 //添加端口 $ semanage port -a -t httpd_port_t -p tcp 6222 $ systemctl restart httpd
|
访问:浏览器访问192.168.10.11:6111 、192.168.10.11:6222
Apache的访问控制
Apache 可以基于源主机名、源 IP 地址或源主机上的浏览器特征等信息对网站上的资源进行访问控制。它通过 Allow 指令允许某个主机访问服务器上的网站资源,通过 Deny 指令实现禁止访问。在允许或禁止访问网站资源时,还会用到 Order 指令,这个指令用来定义 Allow或 Deny 指令起作用的顺序,其匹配原则是按照顺序进行匹配,若匹配成功则执行后面的默认指令。比如“Order Allow, Deny”表示先将源主机与允许规则进行匹配,若匹配成功则允许访问请求,反之则拒绝访问请求。