一、认识apache
apache企业中常用的web服务,也是世界上使用排名第一的web服务器,用来提供http://(超文本传输协议)。
二、apache的安装部署
1、yum install httpd -y :下载并安装apache服务器(在linux系统的镜像中有安装包)
2、systemctl start httpd :打开http服务
3、为了方便使用,需要将其设定为开机自动启动:systemctl enable httpd
4、如果其他主机通过apache访问时,需要关掉防火墙:systemctl stop firewalld
5、安装部署好后即可使用:在浏览器中输入http://主机id进行访问
6、apache有手册可以使用,需要自行下载:yum install httpd-manual
7、手册也可以通过apache访问,但如果该手册的文件不在/var/www/html下就不能被访问,此时需要将其放置该目录下
访问:http://主机ip/manual
三、apache基本信息
1、主配置目录:/etc/httpd/conf
2、主配置文件:/etc/httpd/conf/httpd.conf
3、子配置目录:/etc/httpd/conf.d
4、子配置目录:/etc/httpd/conf.d/*.conf ##*表示所有##
5、默认发布目录:/var/www/html
6、默认发布文件:index.html ##在被访问时,若未指定访问位置,则默认访问该文件内容
如:先建立一个index.html文件 :vim /var/www/html/index.html
然后再通过http访问该主机时就会读取该文件的内容
7、默认端口:80
8、默认安全上下文:httpd_sys_content_t
9、程序开启默认用户:apache
10、apache日志:/etc/httpd/logs/*
1、修改默认端口:在主配置文件/etc/httpd/conf/httpd.conf中更改
默认为80,可以直接修改为随意正常端口,如8080。修改后需要重启服务才能生效
更改后在访问时必须在地址后加上“:8080”,否则无法访问
加上8080以后便可以访问!!!
注意:更改实验后建议重新更改回去,便于使用!!!
2、修改默认发布文件
apache的默认文件可以有多个,需要在主配置文件中增加!!
注意:默认文件的访问顺序为从前到后,如果前面的文件没有,则访问后面的文件
测试:先建立一个test.html文件并输入内容
然后删除原有的index.html文件再访问该主机
如上图,没有index.html文件时访问test.html文件!!!!
3、修改默认发布目录
在主配置文件中可修改默认发布目录
将默认发布目录修改为/www/html,其中Directory模块是赋予新的发布目录的权限!!
注意:修改的发布目录必须系统存在,如果不存在需要手动建立,否则访问不到!!
测试:在发布目录下建立一个发布文件并输入内容,然后用浏览器访问测试
注意:在测试完成后,为了在以后的使用中不出错,需要将设置恢复!!!
注意:在修改后如果无法访问时,需要将目录的安全上下文进行修改
semanage fcontext -a -t httpd_sys_content_t'/www(/.*)?'
restorecon -RevvF /www/
如果selinux中设置为disabled,则无需进行安全上下文的设定
注意:所有对配置文件的更改操作后,需要重新启动服务才能生效!!!!!
四、apache站点的建立
1、先建立各站点的默认发布目录
2、然后在子配置目录中建立各站点的配置文件:文件必须以.conf结尾!!!
未指定访问站点时的配置文件:vim adfault.conf
内容解释:
DocumentRoot"/var/www/html" ##默认发布目录
CustomLog "logs/www.westos.com.log"combined##报错文件,combined表示四种报错级别
指定站点linux.westos.com的配置文件:vim linux.conf
ServerName表示站点名称,Directory模块为设置权限!!
指定站点c.westos.com的配置文件:vim c.conf
注:内容和linux的配置文件内容几乎相同,在建立时可以先复制再更改名称即可!!
3、在各站点的发布目录下建立发布文件
4、测试:
测试前需要在测试主机上设置站点的本地解析:vim /etc/hosts
访问www.westos.com时应该访问/var/www/html下的发布文件
访问linux.westos.com时应该访问/var/www/virtual/linux.westos.com/html下的发布文件
访问c.westos.com时应该访问/var/www/virtual/c.westos.com/html下的发布文件
五、apache的访问控制
1、针对于主机的访问:在配置文件中写入控制模块,允许访问和不允许访问的主机均可以设置!!
模块解释:
Order allow,deny #
Allow from 172.25.20.250 #允许谁访问
Deny from all #不允许谁访问
注意:系统在读取文件时,Order后的顺序决定了读取顺序,先读取的内容会被后读取的内容中相同的内容覆盖掉!!
按上图设定,后读取的Deny内容为全部主机,则会将先读取的allow中的172.25.20.250主机覆盖掉,则该主机不能访问,如下:
如果改变了读取顺序,先读Deny,后读Allow则可以访问:
2、以用户的方式访问的控制
先建立用户的目录
建立用户的密码文件:htpasswd -cm /etc/httpd/userpass admin
添加新的用户密码文件:htpasswd -m /etc/httpd/userpass admin1
注意:在新添加时,命令的参数中不能有“c”,否则会将之前建立的内容全部覆盖
在配置文件中写入模块进行设定,与apache联系起来
模块内容解释:
AuthUserFile /etc/httpd/userpass #密码文件
AuthName "Please input your nameand passwd" #访问时的提示语
AuthType basic #最基本的验证方式
#Require user admin #只允许admin用户通过验证进行访问
Require valid-user #允许所有有效用户通过验证后进行访问
测试:只允许admin2用户进行访问:
允许所有用户进行访问:
六、apache支持的语言
1、html语言,之前apache的默认发布文件就是html语言的脚本,所有在此不进行验证!!
2、php语言
在使用php语言的脚本作为发布文件时,需要先下载php服务:yum install php -y
编辑php语言脚本放在/var/www/html目录下:
此内容为php语言;用http可以访问该文件并显示语句的输出
3、cgi语言
先建立一个cgi语言脚本的目录:mkdir /var/www/html/cgi
用cgi语言编辑一个脚本文件
内容表示动态显示系统当前的时间,此脚本应该放在/var/www/html/cgi目录下
需要给脚本加上执行权限才能运行:chmod +x /var/www/html/cgi/index.cgi
然后再运行一下检测脚本是否正确:
然后在配置文件中写入该模块:
确保该文件可以被访问到,该模块的内容可以在apache手册中查看
此时可用http访问cgi脚本:
七、https
https是用户在通过http访问时数据不会被破解,简单来说就是http的安全版。
httos的默认访问端口为443
部署https:
yum install mod_ssl -y :生成443端口以及https服务
yum install crypto-utils -y :生成产生加密证书的命令
安装完成后即可运行产生证书的命令:genkey 网站名称
运行后会产生如下界面进行生成:
画圈部分分别为加密的key和加密证书的文件及其位置,用tab键选择Next进行下一步
此步为选择key文件的大小,建议选择1024适中,太大速度较慢!!然后选择Next下一步
此步为收集数据,速度较慢,此时需要打开一个新的shell并在shell命令行随机输入内容,速度会迅速加快!!
该步骤为是否向CA机构发送,选择NO,不发送!!!!
建议不写入内容,直接选择Next进行下一步,否则会很慢!!!
填写网站的基本信息,依次为国家、省份、所在城市、公司名称!!
Next即可创建成功!!!
创建成功后,系统会显示https的基本信息
https的配置文件会自动在/var/httpd/conf.d/下生成,为ssl.conf文件
vim /etc/httpd/conf.d/ssl.conf
此为https的服务端口
此为https的密码证书文件和key文件!!
证书和key生成后,即可在浏览器中通过https访问该主机
如上,第一次访问时需要下载安全证书才能进行访问,选择I Understand the Risks
选择Add Exception进行添加
先点击Get Certificate再点击Confirm即可进入
点击这个小锁子可以查看证书
点击View
八、设定https虚拟主机
1、建立虚拟主机发布目录及文件
2、建立虚拟主机的配置文件
其中:
这三行内容可以在ssl.conf文件中找到,可以直接复制过来!!表示服务开启!!!
设定好配置文件后需要重启网络才能生效!!
然后用https访问该虚拟主机,测试搭建是否成功
该界面表示可以访问到,下载证书即可查看到发布文件的内容
为了使用户用http访问时自动转换成https访问,需要在配置文件中写入转换模块,即将80端口访问该主机转化为443端口访问!!
第12至16行为转化模块。
第15行语句含义:
重启服务才能生效
测试:用http访问该站点,自动转换为https访问: