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>
7. 网页加密访问https
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext 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 " 表 示 ( / . ∗ ) 1"表示^(/.*) 1"表示(/.∗)的值 |
[redirect=301] | 永久重写,302临时转换 |
关于Apache服务的基本配置及应用就是这些。