1、apache是什么
企业中常用的web服务,用来提供http://(超文本传输协议)
目前提供http服务的有两种常见中间件一种是nginx、一种是apache
他们的区别在于:
nginx异步不阻塞
apache同步阻塞
相对来讲apache更安全,但是效率就相对不高
2、apache的安装部署
yum install httpd -y
yum install httpd-manual.noarch -y ##apache操作手册,通过网络访问
systemctl stop firewalld.service ##可关闭,也可以添加防火墙策略
systemctl disable firewalld.service
systemctl start httpd
systemctl enable httpd
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
默认安全上下文:httpd_sys_content_t
程序默认用户: apache
apache日志: /etc/httpd/logs/*
4、修改http基本配置
1、修改默认端口
vim /etc/httpd/conf/httpd.conf
Listen 8080 ##修改默认端口为8080
2、修改默认发布文件:
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序,从前到后
vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html test.html ##默认主页为index或test
当index不存在时默认访问test
3、修改默认发布目录
vim /etc/httpd/conf/httpd.conf
119 DocumentRoot "/var/www/html" ##默认目录为/var/www/html
120
121 #
122 # Relax access to content within /var/www.
123 #
124 <Directory "/var/www"> ##默认目录文件为/var/www
125 AllowOverride None
126 # Allow open access:
127 Require all granted ####语句结构,允许所有人访问
128 </Directory>
如果开了selinux
semanage fcontext -a -t httpd_sys_content_t ‘/www(/.*)?’
restorecon -RvvF /www
如果出现错误可以通过/etc/httpd/logs/error_log ,http的连接错误日志
如果服务出现错误通过cat /var/log/messages
4、apache的虚拟主机–子域名
在apache服务的访问目录下创建虚拟站点目录
mkdir /var/www/virtual/last.test.com/html -p
mkdir /var/www/virtual/first.test.com/html -p
mkdir /var/www/html/virtual/last.test.com/html -p
一定不要在/var/www/html/下建,可以在web直接访问,不安全
然后在/etc/httpd/conf.d中建立配置文件
分成两种,一种时默认的,一种就子站点
建立时要注意文件排序问题,ascII,会访问靠在最前的网页
测试: 配置hosts文件,解析网址,配置访问页面,访问
5、apache内部的访问控制
1)针对与主机的访问控制
2)针对用户的访问控制
htpasswd -cm /etc/httpd/userpass admin #创建用户密码文件, C表示新建
htpasswd -m /etc/httpd/userpass admin1 #添加用户密码文件,添加不能带C
vim adefult.conf ##随意在那个子域名的配置文件下
5 <Directory "/var/www/html/admin">
6 AuthUserFile /etc/httpd/userpass ##添加验证配置文件
7 AuthName "123" ##添加提示信息
8 AuthType basic ##添加验证类型
9 #Require user admin ##只允许admin用户
10 Require valid-user ##允许所有用户
11 </Directory>
6、apache支持的语言
#1.html
#2.cgi
#3.php
vim /var/www/html/index.php
<?php
print("Hallo,world");
?>
yum install php -y
systemcat restart httpd
如果想要默认显示,就去主配置文件修改index
1)cgi
mkdir -p /var/www/html/cgi ##创建一个目录
vim /var/www/html/cgi/index.cgi ##编辑脚本,可以从manual里找
chmod +x /var/www/html/cgi/index.cgi ##给脚本权限
/var/www/html/cgi/index.cgi ##执行看看能不能用
vim adefult.conf ##编辑子配置文件
<Directory "/var/www/html/cgi">
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory> ##添加配置
如果有安全上下文,那就添加安全上下下文
semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
restorecon -RvvF /var/www/html/cgi/
7、https
作用:保护客户端到服务端的数据不被破解
yum install crypto-utils -y ##安装
yum install mod_ssl.x86_64 -y
genkey www.test.com ##生成test。com的证书
##第三步要桥键盘 不然就一直不动
##不发送给CA,然后剩下的填表格
vim /etc/httpd/conf.d/ssl.conf ##配置ssl文件
101 SSLCertificateFile /etc/pki/tls/certs/www.test.com.crt
108 SSLCertificateKeyFile /etc/pki/tls/private/www.teset.com.key
#重启http服务
https主要是通过软件生成,之后就可以登陆了
8、设定https虚拟主机并设定网页重写
建立虚拟主机目录和内容
在conf。d中配置login虚拟机主机文件
配置自动调转
^(/.*)$ ##用户在浏览器地址栏中输入的所有字符
https:// ##强制用户加密访问
%{HtTP_HOST} ##用户请求主机
$1 ##表示^(/.*)$的值
[redirect=301] ##临时重写 302永久转换