Linux系统中Apache服务的基本配置及应用管理

1.apache

企业中常用的 web 服务。用来提供 http:// (超文本传输协议)

2.apache的安装部署

yum install httpd -y            ##apache软件
yum install httpd-manual        ##apache的手册
systemctl start httpd			##启动Apache服务
systemctl enable httpd			##开机启动Apache服务
firewall-cmd --list-all                         ##列出火墙信息
firewall-cmd --permanent --add-service=http     ##永久允许http
firewall-cmd --reload                           ##火墙重新加载策略
/var/www/html                   ##apache默认发布目录
/var/www/html/index             ##apache默认发布文件

编辑默认发布文件

vim /var/www/html/index.html
<h1> 你在好远的地方啊~ </h1>
:wq

测试
http://172.25.254.225
http://172.25.254.225/manual

默认发布页的内容
在这里插入图片描述
手册的内容
在这里插入图片描述

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

修改默认端口:

vim /etc/httpd/conf/httpd.conf
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
systemctl restart httpd
#Listen 12.34.56.78:80
Listen 8080 ##修改默认端口为8080

在这里插入图片描述
在这里插入图片描述
修改默认发布文件:
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序

vim /etc/httpd/conf/httpd.conf
systemctl restart httpd.service
164 DirectoryIndex index.html test.html ##当index.html不存在时访问test.html

在这里插入图片描述
修改默认发布目录:

mkdir /xiaoma/html -p
cd /xiaoma/html/
vim index.html    ##写入<h1>test page</h1>
 DocumentRoot "/xiaoma/html" 
 <Directory "/xiaoma/html"> 
 Require all granted 
 </Directory>

在这里插入图片描述
在这里插入图片描述

semanage fcontext -a -t httpd_sys_content_t '/xiaoma(/.*)' 
restorecon -RvvF /xiaoma/

systemctl restart httpd.service

在这里插入图片描述

4.apache的虚拟主机

浏览器在哪就在哪写地址解析

mkdir /var/www/virtual/taylor.com/music -p
mkdir /var/www/virtual/taylor.com/news -p
vim  /var/www/virtual/taylor.com/news/index.html
news.taylor.com
vim  /var/www/virtual/taylor.com/music/index.html
music.taylor.com
cd /etc/httpd/conf.d/
vim adefault.conf  ##读取顺序为字符顺序

/etc/httpd/conf.d/adefault.conf

在这里插入图片描述

vim news.conf

在这里插入图片描述

vim music.conf

在这里插入图片描述
测试:

vim /etc/hosts(浏览器所在主机)
172.25.61.150 www.taylor.com news.taylor.com music.taylor.com login.taylor.com

在浏览器上输入网址即可

music 的发布页内容
在这里插入图片描述
news 的发布页内容
在这里插入图片描述
www 未设置,为默认发布页
在这里插入图片描述

测试中,网页可能没有发生变化,可以先尝试清理浏览器缓存
清除浏览器缓存: crtl+shift+delete
在这里插入图片描述

5.apache内部访问控制

1.针对主机的访问控制

vim /etc/httpd/conf.d/adefault.conf
<VirtualHost _default_:80>
        DocumentRoot "/var/www/html/"
</VirtualHost>
<Directory "/var/www/html">
        Require all granted
        Order Deny,Allow
        Allow from 172.25.254.120	##120是唯一可以操作的ip
        Deny from all
</Directory>

在这里插入图片描述
测试:120可以访问,70不能访问(显示默认发布页内容)

120
在这里插入图片描述
70
在这里插入图片描述
黑名单

<VirtualHost _default_:80>
        DocumentRoot "/var/www/html/"
</VirtualHost>
<Directory "/var/www/html">
        Require all granted
        Order Allow,Deny
        Allow from all
        Deny from 172.25.254.120	##120被无情地拉入了黑名单
</Directory>

2.用户方式访问控制

mkdir /var/www/html/admin
vim /var/www/html/admin/index.html
<h1>admin's page</h1>

创建用户并添加验证方式

[root@server html]# htpasswd -cm /etc/httpd/htuser admin
New password: 
Re-type new password: 
Adding password for user admin
[root@server html]# cat /etc/httpd/htuser
admin:$apr1$iZspNcSW$2BI0JhvNv5dvrthgxRpVs1
[root@server html]# htpasswd -m /etc/httpd/htuser admin1
New password: 
Re-type new password: 
Adding password for user admin1

create modify 创建。更改
第二次建立时去掉c。如果不去掉会覆盖原有的

编辑配置文件

cd /etc/httpd/conf.d
vim adefault.conf
<VirtualHost _default_:80>
        DocumentRoot "/var/www/html/"
</VirtualHost>
<Directory "/var/www/html">
        Require all granted
        Allow from all
</Directory>
<Directory "/var/www/html/admin">
        AuthUserfile    "/etc/httpd/htuser"
        AuthName        "Please input username and password"
        AuthType        Basic
        Require user    admin
</Directory>
systemctl restart httpd

测试:
http://172.25.254.170/admin/
访问该网页需要输入验证信息
在这里插入图片描述
输入admin的验证信息后
在这里插入图片描述

6.apache支持的语言

1)html
2)php

vim /var/www/html/index.php
<?php
        phpinfo();
?>

测试:http://172.25.254.170/index.php
在这里插入图片描述
3)cgi
建立分享目录,更改目录安全上下文

mkdir -p /var/www/html/cgi
semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
restorecon -RvvF /var/www/html/cgi/

编辑分享页

cd /var/www/html/cgi/
vim index.cgi
  1 #!/usr/bin/perl
  2 print "Content-type: text/html\n\n";
  3 print `date`;  ##反向单引号`date`,执行date

给予分享页执行权限,执行查看效果

 chmod +x index.cgi
./index.cgi

更改Apache配置文件

cd /etc/httpd/conf.d
vim adefault.conf 
 16  <Directory "/var/www/html/cgi">
 17          Options +ExecCGI
 18          AddHandler cgi-script .cgi ##  表示cgi脚本的名称特点
 19  </Directory>

重启Apache服务

systemctl restart httpd

测试:http://172.25.254.170/cgi/index.cgi
在这里插入图片描述
4)wsgi(安全的cgi)网页安全网关接口
编辑脚本文件

yum install mod_wsgi.x86_64
vim script.wsgi
#!/usr/bin/env python
import time

def application (environ, start_response):
  response_body = 'UNIX EPOCH time is now: %s\n' % time.time()
  status = '200 OK'
  response_headers = [('Content-Type', 'text/plain'),
                      ('Content-Length', '1'),
                      ('Content-Length', str(len(response_body)))]
  start_response(status, response_headers)
  return [response_body]

给予权限,并执行

chmod +x script.wsgi
./script.wsgi

编辑Apache配置文件

cd /etc/httpd/conf.d
vim adefault.conf
5 </directory>
16 <virtualhost _default_:80>
17 documentroot "/var/www/html"
18 WSGIScriptAlias /WSGI /var/www/html/cgi/westos.wsgi
19 </virtualhost>

测试:http://172.25.254.170/WSGI
在这里插入图片描述

7. 网页加密访问https

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket LayerHypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

降低用户在访问时的效率
保证用户信息不被泄露
传输协议的加密

yum install mod_ssl -y
yum install crypto-utils.x86_64 -y
genkey www.taylor.com

执行之后按照以下步骤选择相关选项
在这里插入图片描述
在这里插入图片描述
这里需要稍等一会
在这里插入图片描述
敲击键盘随机获取字符进行加密
在这里插入图片描述
只为测试,选择不
在这里插入图片描述
在这里插入图片描述
编写证书信息
在这里插入图片描述
完成后可查看到生成了密钥在这里插入图片描述
编辑配置文件

vim /etc/httpd/conf.d/ssl.conf

在这里插入图片描述

SSLCertificateFile /etc/pki/tls/certs/www.taylor.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.taylor.com.key

重启Apache服务

systemctl restart httpd.service

测试:https://172.25.254.170/
点击‘advanced’
在这里插入图片描述
点击‘add exception’
在这里插入图片描述
点击‘get certificate,再点击‘confirm security exception’
在这里插入图片描述
网址栏出现绿色小锁
在这里插入图片描述
点击绿色小锁->点击箭头->点击‘more information’->security栏中点击‘view certificate’
在这里插入图片描述
证书信息
在这里插入图片描述

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

建立分享页并编辑

mkdir -p /var/www/virtual/taylor.com/login/
cd /var/www/virtual/taylor.com/login/
vim index.html
<h1> login's page </h1>

编辑Apache配置文件

cp -p /etc/httpd/conf.d/music.conf  /etc/httpd/conf.d/login.conf
cd /etc/httpd/conf.d/
vim login.conf
<VirtualHost *:443>
                ServerName "login.taylor.com"
                DocumentRoot "/var/www/virtual/taylor.com/login"
                CustomLog logs/login.logs combined
                SSLEngine on
                SSLCertificateFile /etc/pki/tls/certs/www.taylor.com.crt
                SSLCertificateKeyFile /etc/pki/tls/private/www.taylor.com.key
</VirtualHost>
<VirtualHost *:80>
                ServerName login.taylor.com
                RewriteEngine on
                RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]	##301永久转换,302临时转换
</VirtualHost>
<Directory "/var/www/virtual/taylor.com/login">
        Require all granted
</Directory>

在测试机上/etc/hosts文件添加解析信息

172.25.254.170 login.taylor.com

在这里插入图片描述
测试:login.taylor.com
第一次需要添加证书。最下面点击’add exception’,可以看到网页成功由http重写为https
在这里插入图片描述
注意:

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

关于Apache服务的基本配置及应用就是这些。

猜你喜欢

转载自blog.csdn.net/qq_43570369/article/details/87737087
今日推荐