Apache服务器
1.Apache概述
企业中常用来用的web服务,用来提供http://(超文本传输协议)
支持最新的HTTP通信协议
支持通用网关接口
支持基于ip和基于域名的虚拟主机
支持安全Socket层(SSL)
2.Apache的安装
yum install httpd -y ###安装主程序包
yum install httpd-manual ###安装参考手册
systemctl start httpd ###开启
systemctl enable httpd ##使工作
systemctl stop firewalld
systemctl disable firewalld ###关闭防火墙
测试
3基础信息
主配置目录 /etc/httpd/conf
主配置文件 /etc/htppd/conf/httpd.conf
子配置目录 /etc/httpd/conf.d
子配置文件 /etc/httpd/conf.d/*.conf
默认发布目录 /var/www/html
默认发布文件 /var/www/html/index.html
默认端口 80
默认上下安全文 httpd_sys_content_t
程序开启默认用户 apache
日志 /etc/htppd/logs/*
4.服务器配置--主配置文件
##修改默认端口###
vim /etc/httpd/conf/httpd.conf ##主配置文件
Listen 80 ###默认端口80
systemctl restart httpd ##更改后重启服务
【42行端口显示为80】
##修改默认发布文件####
就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序。
//默认发布目录 /var/www/html
//默认发布文件 /var/www/html/index.html
vim /etc/httpd/conf/httpd.conf ##主配置文件
DirectoryIndex index.html test.html ##当index.html文件不存在时访问test.html文件
systemctl restart httpd ##更改后重启服务
【编写test.html文件内容】
【更改主配置文件】
【测试】
#####Apache的虚拟主机配置###
设置虚拟主机,可以允许请求被送往不同的ip主机名,并被同一个apache服务器处理。
用户可以通过设置虚拟主机以在一个主机上保存多个域名或主机名。
【 /var/www/virtual/linux.westos.com/html/index.html】内容
【 /var/www/virtual/c.westos.com/html/index.html】编写内容
【vim /etc/httpd/conf.d/adefault.conf】内容
【/etc/httpd/conf.d/linux.conf】内容
【/etc/httpd/conf.d/c.conf】内容
【测试时本地解析】
【测试结果符合】
5.Apache内部的访问控制
1)针对与主机的访问控制
mkdir /var/www/html/test ###建立一个访问目录
vim /etc/httpd/conf.d/adefault.conf ##编写常规的子配置文件
<Directory "/var/www/html/test">
Order allow,deny ####列表读取顺序,后读取的会覆盖前重复内容
Allow from all
Deny from 172.25.87.250 ####测试端ip为172.25.87.250
</Directory>
systemctl restart httpd ##更改后重启服务
【/etc/httpd/conf.d/adefault.conf】内容
【测试端显示此目录无权访问】
2)用户方式的访问控制
测试时需要被允许的用户及密码
6.apache支持的语言
1)html
2)php
【更改配置文件中文件访问顺序】
测试
3)cgi
7.https
虽然lnternrt上面的WWW提供的资料是可以任意浏览的,但像是一些交易网站和邮件网站上有用户的重要机密数据就不能这样传送。在这种情况下,就要使用https://的方式,这种方式调用了SSL加密机制对数据传输。
更改证书内容
测试时需要下载证书
8.设定https虚拟主机定向网页重写
mkdir /var/www/html/virtual/login.westos.com/html/ -p #发布目录
vim /var/www/html/virtual/login.westos.com/html/ index.html
w
企业中常用来用的web服务,用来提供http://(超文本传输协议)
支持最新的HTTP通信协议
支持通用网关接口
支持基于ip和基于域名的虚拟主机
支持安全Socket层(SSL)
2.Apache的安装
yum install httpd -y ###安装主程序包
yum install httpd-manual ###安装参考手册
systemctl start httpd ###开启
systemctl enable httpd ##使工作
systemctl stop firewalld
systemctl disable firewalld ###关闭防火墙
测试
3基础信息
主配置目录 /etc/httpd/conf
主配置文件 /etc/htppd/conf/httpd.conf
子配置目录 /etc/httpd/conf.d
子配置文件 /etc/httpd/conf.d/*.conf
默认发布目录 /var/www/html
默认发布文件 /var/www/html/index.html
默认端口 80
默认上下安全文 httpd_sys_content_t
程序开启默认用户 apache
日志 /etc/htppd/logs/*
4.服务器配置--主配置文件
##修改默认端口###
vim /etc/httpd/conf/httpd.conf ##主配置文件
Listen 80 ###默认端口80
systemctl restart httpd ##更改后重启服务
【42行端口显示为80】
##修改默认发布文件####
就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序。
//默认发布目录 /var/www/html
//默认发布文件 /var/www/html/index.html
vim /etc/httpd/conf/httpd.conf ##主配置文件
DirectoryIndex index.html test.html ##当index.html文件不存在时访问test.html文件
systemctl restart httpd ##更改后重启服务
【编写test.html文件内容】
【更改主配置文件】
【测试】
#####Apache的虚拟主机配置###
设置虚拟主机,可以允许请求被送往不同的ip主机名,并被同一个apache服务器处理。
用户可以通过设置虚拟主机以在一个主机上保存多个域名或主机名。
mkdir /var/www/virtual/linux.westos.com/html -p ##新建访问目录
mkdir /var/www/virtual/c.westos.com/html -p ##新建访问目录
vim /var/www/virtual/linux.westos.com/html/index.html #####linux默认发布文件
vim /var/www/virtual/c.westos.com/html/index.html #####c默认发布文件
vim /etc/httpd/conf.d/adefault.conf ###配置常规配置目录
############
<VirtualHost _default_:80>
DocumentRoot "/var/www/html"
CustomLog "logs/www.westos.com.log" combined
</VirtualHost>
############
vim /etc/httpd/conf.d/linux.conf ###配置linux.westos.com的配置目录
#############
<VirtualHost *:80>
ServerName linux.westos.com
DocumentRoot "/var/www/virtual/linux.westos.com/html/"
CustomLog "logs/linux.westos.com.logs" combined
</VirtualHost>
<VirtualHost>
<Directory “/var/www/virtual/linux.westos.com/html/">
Require all granted
</Directory>
###########
vim /etc/httpd/conf.d/c.conf ###配置c.westos.com的配置目录
#############
<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>
##################
测试
在测试主机做好本地解析
vim /etc/hosts
172.25.87.11 c.westos.com linux.westos.com
【示例】
【 /var/www/virtual/linux.westos.com/html/index.html】内容
【 /var/www/virtual/c.westos.com/html/index.html】编写内容
【vim /etc/httpd/conf.d/adefault.conf】内容
【/etc/httpd/conf.d/linux.conf】内容
【/etc/httpd/conf.d/c.conf】内容
【测试时本地解析】
【测试结果符合】
5.Apache内部的访问控制
1)针对与主机的访问控制
mkdir /var/www/html/test ###建立一个访问目录
vim /etc/httpd/conf.d/adefault.conf ##编写常规的子配置文件
<Directory "/var/www/html/test">
Order allow,deny ####列表读取顺序,后读取的会覆盖前重复内容
Allow from all
Deny from 172.25.87.250 ####测试端ip为172.25.87.250
</Directory>
systemctl restart httpd ##更改后重启服务
【/etc/httpd/conf.d/adefault.conf】内容
【测试端显示此目录无权访问】
2)用户方式的访问控制
[root@localhost ~]# mkdir /var/www/html/admin ##建立一个访问目录
[root@localhost conf.d]# htpasswd -cm /etc/httpd/userpass admin
New password: ###建立一个访问用户,第一次加参数c
Re-type new password:
Adding password for user admin
[root@localhost conf.d]# htpasswd -m /etc/httpd/userpass admin1
New password: ##再建立一个用户,非首次不加参数c
Re-type new password:
Adding password for user admin1
10 <Directory "/var/www/html/admin"> ###编写目录的访问设置
11 AuthUserFile /etc/httpd/userpass
12 AuthName "please input your name and passwd"
13 AuthType basic
14 Require user admin ###只允许admin用户访问
15 #Require valid-user ###允许所有用户访问
16 </Directory>
【vim /etc/httpd/conf.d/adefault.conf】访问常规目录编写内容测试时需要被允许的用户及密码
6.apache支持的语言
1)html
2)php
[root@localhost conf.d]# yum install php -y ###安装php软件
[root@localhost conf.d]# vim /var/www/html/index.php ###编写一个php脚本
<?php
phpinfo();
?>
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf ###更改访问文件的顺序
DirectoryIndex index.php index.html test.html
[root@localhost ~]# systemctl restart httpd ##重启服务
【脚本内容】【更改配置文件中文件访问顺序】
测试
3)cgi
[root@localhost conf.d]# mkdir -p /var/www/html/cgi ###建立一个发布目录
[root@localhost conf.d]# semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
###添加安全上下文
[root@localhost conf.d]# restorecon -RvvF /var/www/html/cgi/ ###刷新安全上下文
[root@localhost conf.d]# vim /var/www/html/cgi/index.cgi ##cgi脚本
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;
[root@localhost conf.d]# chmod +x /var/www/html/cgi/index.cgi ##脚本添加权限
[root@localhost conf.d]# /var/www/html/cgi/index.cgi ###确保脚本正确
[root@localhost conf.d]# vim adefault.conf
17 <Directory "/var/www/html/cgi">
18 Options +ExecCGI
19 AddHandler cgi-script .cgi
20 </Directory>
[root@localhost conf.d]# systemctl restart httpd
【示例】7.https
虽然lnternrt上面的WWW提供的资料是可以任意浏览的,但像是一些交易网站和邮件网站上有用户的重要机密数据就不能这样传送。在这种情况下,就要使用https://的方式,这种方式调用了SSL加密机制对数据传输。
yum install crypto-utils -y ##安装创建网络安全证书的软件
yum install mod_ssl ###安装SSL加密层
genkey www.westos.com ###创建安全证书
vim /etc/httpd/conf.d/ssl.conf ####更改证书
101 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
109 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
systemctl restart httpd
【示例】创建证书时信息更改证书内容
测试时需要下载证书
8.设定https虚拟主机定向网页重写
mkdir /var/www/html/virtual/login.westos.com/html/ -p #发布目录
vim /var/www/html/virtual/login.westos.com/html/ index.html
vim /etc/httpd/conf.d/login.conf
********************
<virtualHost *:443>
ServerName login.westos.com
DocumentRoot /var/www/html/virtual/login.westos.com/html
CustomLog "logs/login.logs" combined
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
</VirtualHost>
<virtualHost *:80>
ServerName login.westos.com
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>
********************
^(/.*)$ #客户在浏览器输入的所有字符
https:// #强制客户加密访问
//%{HTTP_HOST} #客户所请求主机
$1 #^(/.*)$ 的值
[redirect=301] #加密为临时重写
w