Linux-apache阿帕奇

apache


1.apche

企业中常用的web服务,用来提供http://(超文本传输协议)
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python解释器编译到服务器中。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等。

2.apache的安装部署
yum install httpd -y(配置好yum源进行安装 这里就不再多说了)

Linux-apache阿帕奇
yum install httpd-manual

Linux-apache阿帕奇
systemctl start httpd
systemctl enable httpd
systemctl stop firewlld
systemctl disable firewalld
Linux-apache阿帕奇
测试   http://172.25.254.100
 http://172.25.254.100/manual
Linux-apache阿帕奇

#3.apache
的基础信息
#
主配置目录:   /etc/httpd/conf
#
主配置文件:   /etc/httpd/conf/httpd.conf
#
子配置目录:   /etc/httpd/conf.d/
#
子配置文件:   /etc/httpd/conf.d/*.conf
#
默认发布目录: /var/www/html
#
默认发布文件: index.html
#
默认端口: 80

Linux-apache阿帕奇
#
默认安全上下文:httpd_sys_content_t

Linux-apache阿帕奇
#
程序开启默认用户: apache
#apache
日志:  /etc/httpd/logs/*



修改默认端口:
vim /etc/httpd/conf/httpd.conf
43 Listen 8080     ##
修改默认端口为
8080
Linux-apache阿帕奇
这时候再用本来默认的80端口访问 发现访问失败了

Linux-apache阿帕奇

尝试用8080端口发现访问成功

Linux-apache阿帕奇



修改默认发布文件:
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序

 vim /etc/httpd/conf/httpd.conf
164     DirectoryIndex index.htmltest.html    ##
index.html不存在时访问test.html

Linux-apache阿帕奇
之后我们删除掉/var/www/html/index.html 建立一个test.html 在test.html中写入我是test啊???之后果然可以发现原来的index.html被删除后果然去访问这个test.html了 表明默认的发布文件修改成成功

Linux-apache阿帕奇



修改默认发布目录:
120 DocumentRoot "/www/html"
120 DocumentRoot "/www/html"
121 <Directory "/www">
122         Require all granted
123 </Directory>

Linux-apache阿帕奇
semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'
storecon -RvvF /www/(这里我们必须修改更改目录的文件上下文与原来默认的发布目录一致)

Linux-apache阿帕奇

Linux-apache阿帕奇

我们在修改后的默认发布目录/www/html/index.html 中写入了HELLO 我们看一下是否修改成功

Linux-apache阿帕奇

Linux-apache阿帕奇

4.apache的虚拟主机
vim /etc/httpd/conf.d/adefault.conf(这里加了个a 开头 为了让系统首先读取默认文件 系统看文件的首字母巨鼎读取顺序的)
<VirtualHost _default_:80>
    DocumentRoot"/var/www/html"
    CustomLog"logs/www.westos.com.log" combined
</VirtualHost>

Linux-apache阿帕奇
vim /etc/httpd/conf.d/linux.conf
<VirtualHost *:80>
    ServerName linux.westos.com #
指定站点名称
    DocumentRoot"/var/www/virtual/linux.westos.com/html/" #
站点默认发布目录
    CustomLog"logs/linux.westos.com.logs" combined       #
站点日志combined标示四种日志的集合

</VirtualHost>
<Directory "/var/www/virtual/linux.westos.com/html/">
    Require all granted
</Directory>

Linux-apache阿帕奇
vim /etc/httpd/conf.d/c.conf
<VirtualHost *:80>
    ServerName c.westos.com
    DocumentRoot"/var/www/virtual/c.westos.com/html/"
    CustomLog"logs/c.westos.com.logs" combined
</VirtualHost>
<Directory "/var/www/virtual/c.westos.com/html/">
    Require all granted
</Directory>

Linux-apache阿帕奇
建立好目录与文件的写入

Linux-apache阿帕奇

Linux-apache阿帕奇

Linux-apache阿帕奇



测试:
在测试主机中作好本地解析
vim /etc/hosts
172.25.254.100 c.westos.com linux.westos.com
Linux-apache阿帕奇
 整体如下所示

Linux-apache阿帕奇

分别访问www.westos,com c.westos.com linux.westos.com (写入的index.html的内容可参考上图)

Linux-apache阿帕奇

Linux-apache阿帕奇

Linux-apache阿帕奇

Linux-apache阿帕奇


5.apache
内部的访问控制
1.
针对与主机的访问控制
  5 <Directory"/var/www/html/test">
  6         Order deny,allow       ##
列表读取顺序,后读取的列表会覆盖限度去内容的重复部分

  7         Allow from 172.25.254.44
  8         Deny from all
  9 </Directory>
Linux-apache阿帕奇
这里我们禁止了172.25.254.100主机的访问

Linux-apache阿帕奇

 我们用172.25.254.82访问

Linux-apache阿帕奇

但是用172.25.254.100访问 发现果然被禁止了

Linux-apache阿帕奇


2.用户方式的访问控制

htpasswd -cm    /etc/httpd/userpass annie(创建用户并且加密给上密码 )
htpasswd -m     /etc/httpd/userpass  riven(这里不能用-cm否则原来创建的用户会被覆盖的)

Linux-apache阿帕奇
Linux-apache阿帕奇


vim adefault.conf
 10 <Directory"/var/www/html/admin">
 11         AuthUserFile /etc/httpd/userpass
 12        AuthName "Please inputyour name and password"
 13         AuthType basic
 14         #Require        user admin
 15         Require valid-user
 16 </Directory>
Linux-apache阿帕奇
之后我们就可以登陆172.25.254.100/admin查看了 可以看到我们被告知必须用用户登陆

Linux-apache阿帕奇
登陆之后才可以看到文件的 内容

Linux-apache阿帕奇


6.apache支持的语言

1.html
2.php
vim /var/www/html/index.php
<?php
    phpinfo();
?>
Linux-apache阿帕奇
yum install php -y

Linux-apache阿帕奇
systemctl restart httpd (之后还是需要重启服务再进行测试)

测试
172.25.254.100/index.php
Linux-apache阿帕奇

3.cgi
mkdir -p /var/www/html/cgi
semanager fcontent -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
restorecon -RvvF /var/www/html/cgi/
vim /var/www/html/cgi/index.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;(查看时间的脚本)
Linux-apache阿帕奇
chmod +x /var/www/html/cgi/index.cgi
/var/www/html/cgi/index.cgi #
执行下脚本确保脚本运行正常(查看时间)
Linux-apache阿帕奇

vim adefatul.conf
 17 <Directory"/var/www/html/cgi">
 18         Options +ExecCGI
 19         AddHandler cgi-script .cgi
 20 </Directory>

Linux-apache阿帕奇
systemctl restart httpd 

Linux-apache阿帕奇
之后我们就可以进行测试啦

Linux-apache阿帕奇
刷新可以看到时间变化

Linux-apache阿帕奇


7.https


yum install crypto-utils -y
Linux-apache阿帕奇
yum install mod_ssl -y

Linux-apache阿帕奇

genkey www.annie.com

Linux-apache阿帕奇

接下来这里我们选择1024字节的加密

Linux-apache阿帕奇

加密开始这时候我们在键盘上乱打 加密进度就会前进 直至百分之100完成

Linux-apache阿帕奇

之后我们选择不把证书发给CA进行认证

Linux-apache阿帕奇

接下来我们进行证书相关内容的书写

Linux-apache阿帕奇

Linux-apache阿帕奇

安全证书创建成功后会出现这些信息 我们可以看看到 .crt 和 .key

Linux-apache阿帕奇

vim /etc/httpd/conf.d/ssl.conf (之后在这里我们把证书的内容*.crt *.key写进ssl.conf这个配置文件中)

101 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
109 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
Linux-apache阿帕奇
之后这里我们就可以用https://172.25.254.100查看这个安全证书了

Linux-apache阿帕奇

安全证书的内容如下所示

Linux-apache阿帕奇


8设定https虚拟主机并设定网页重写

vim /etc/httpd/conf.d/login.conf
  1 <VirtualHost *:443>
  2         ServerName login.westos.com
  3         DocumentRoot/var/www/html/virtual/login.riven.com/html
  4         CustomLog "logs/login.logs"combined
  5         SSLEngine on
  6         SSLCertificateFile/etc/pki/tls/certs/www.riven.com.crt
  7         SSLCertificateKeyFile/etc/pki/tls/private/www.riven.com.key
  8 </VirtualHost>
  9 <Directory"/var/www/html/virtual/login.riven.com/html">
 10         Require all granted
 11 </Directory>
 12 <VirtualHost *:80>
 13         ServerName login.riven.com
 14         RewriteEngine On
 15         RewriteRule ^(/.*)$https://%{HTTP_HOST}$1 [redirect=301]
 16 </VirtualHost>
Linux-apache阿帕奇
文件的内容

Linux-apache阿帕奇

设置好解析

Linux-apache阿帕奇

建立好目录

Linux-apache阿帕奇

测试结果可以看到

Linux-apache阿帕奇


^(/.*)$     ##客户在浏览器地址栏中输入的所有字符
https://    ##
强制客户加密访问
%{HTTP_HOST}    ##
客户请求主机
$1      ###"$1"
标示 ^(/.*)$的值
[redirect=301]  ##
临时重写 302永久转换