apache的相关概念
企业中常用的web服务,用来提供http://(超文本传输协议)
与apache对应的还有nginx服务
apache:适合动态页面,且比较稳定,同步阻塞
nginx:并发量比apache大,反向代理,静态资源服务器
http服务端口为80端口,https服务端口为443端口
lamp=linux apache mysql php
lnmp=linux nginx mysql php
apache的安装部署
在部署apache之前,记得关闭selinux
部署apache步骤:
yum install httpd -y ##apache的软件
yum install -y httpd-manual ##apache的手册
systemctl start httpd ##开启apche服务
systemctl enable httpd ##使apache开机自启动
firewall-cmd --permanent --add-service=http ##火墙允许httpd
firewall-cmd --reload
firewall-cmd --list-all
cd /var/www/html ##apache的根目录,默认发布目录
vim /var/www/html/index.html ##apache的默认发布文件
<h1>www.westos.com</h1> ##发布内容为www.westos.com <h1>只是起加粗发布内容字体的作用
测试
在浏览器中输入
http://172.25.254.104(部署apache的主机ip) ##出现默认发布文件中的内容
http://172.25.254.104/manual (出现手册的页面)
安装apache后会在/etc/httpd/目录下生成logs目录,apache的日志,其中有access_log和error_log,企业中一般会对每天的日志进行截断,一方面是为了方便查看,另一方面是因为对于企业来说,每天登录网站的次数庞大,对于日志而言,如果不及时截断,会导致日志文件过大甚至超过内存的大小,这时日志就无法打开,会出现日志一打开电脑就死机的情况
apache的基础信息
/etc/httpd/conf ##主配置目录
/etc/httpd/cond/httpd.conf ##主配置文件
/etc/httpd/conf.d/ ##子配置目录
/etc/httpd/conf.d/*.conf ##子配置文件
/var/www/html ##默认发布目录
index.html ##默认发布文件
80 ##默认端口
httpd_sys_content_t ##默认安全上下文
/etc/httpd/logs/* ##apache日志
修改默认端口
vim /etchttpd/conf/httpd.conf
Listen 8080 ##在第43行的位置修改默认端口为8080
systemctl restart httpd
此时浏览器中输入
http://172.25.254.104:8080
会显示unable connect to server ,可能原因有两个:1.apache服务没有开 2.防火墙不允许apache服务 ,查看这两项发现都已经开启,还是无法连接到服务器,是因为此时http的访问端口已经变为了8080,而火墙不允许8080端口的访问
解决方法:
firewall-cmd --permanent --add-port=8080/tcp ##火墙允许8080端口
firewall-cmd --reload
重新测试
http://172.25.254.104:8080
修改默认发布文件
默认发布文件就是访问apache时没有指定文件名时默认访问的文件,这个文件可以指定多个,有访问顺序
vim /etc/httpd/conf/httpd.conf
DirectoryIndex westos index.html ##在文件的第164行,当westos不存在时才访问index.html
修改默认发布目录
vim /etc/httpd/conf/httpd,conf
DocumentRoot "/westos/html" ##在文件的第i120行,修改默认发布目录为/westos/html
<Directory "/westos">
Require all granted
</Directory>
mkdir /westos/html -p
vim /westos/html/index.html ##注意这里建立的文件一定是index.html,这和主配置文件中的默认发布文件有关
##在文件中写入:tage page
systemctl restart httpd
访问控制
vim /var/www/html/index.html
<h1>172.25.254.104<h1>
mkdir /var/www/html/westos
vim /var/www/html/westos/index.html
<h1>test page</h1>
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html"
<Directory "/var/www/html/westos"> ##第120行
Order Allow,Deny ##顺序,先读allow,再deny
Allow from All
Deny from 172.25.254.104 ##读到deny会覆盖allow
</Directory>
systemctl restart httpd
测试
在不同的主机的浏览器输入以下网址
http://172.25.254.251/westos
指定用户访问
htpasswd -cm westosuser admin ##建立用户文件westosuser,用户名为admin,第一次生成-c参数
cat westosuser
htpasswd -m westosuser admin1 ##不用再加-c,再加-c的话会覆盖前面建立的用户
vim /etc/httpd/conf/httpd.conf
<DIrectory "/var/www/html/westos">
AuthUserFile /etc/httpd/conf/westosuser
AuthType basic
AuthName "Please input your name and password !"
Required user admin
#Require valid-user
</Directory>
测试
http://172.25.254.251/westos
会出现登录界面
Require user admin
Require valid-admin
apache虚拟主机的搭建
访问百度网页时,一个apache对应一个服务资源,但是在目前我们自己搭建的apache服务器中,不同的域名解析出来的是同样的资源。要实现一个apache实现多个域名的资源访问,需要搭建虚拟主机。
操作步骤
1.
vim /etc/hosts ##本地解析
172.25.254.251 www.westos.com www.music.com www.news.com
2.
cd /var/www/html/
vim index.html ##书写默认发布文件
在文件中写入;
<h1>www.westos.com</h1> ##这个内容就是访问域名时会出现的内容
在浏览器中输入www.westos.cm www.music.com www.news.com出现的都是相同的内容,没有达到1个apache实现多个资源访问的目的
所以我们进行下面的操作:
3.
mkdir /var/www/virtual/music/html/ -p
在目录下编辑文件 vim index.html ##写入访问时要读取的资源
mkdir /var/www/virtual/news/html/ -p
在目录下编辑文件 vim index.html ##写入访问时要读取的资源
4.如果在上一步做过实验的基础上,要还原主配置文件的设置,并且找到其中的子文件,子文件其实可以和主文件写在一块,只是为了查看和阅读的方便,将子文件单独又列了出去。
IncludeOptions /conf.d/*.conf
5.
cd /etc/httpd/conf.d/
vim default.conf ##自定义文件
在文件中写入
<VirtualHost _default_:80>
DocumentRoot /var/www/html
CustomLog logs/default.log combined
</VirtualHost>
vim news.conf
</VirtualHost *.80>
ServerName news.westos.com
DocumentRoot /var/www/virtual/news/html
CustomLog logs/new.log combined
</VirtualHost>
<Directory "/var/www/virtual/news/html">
Require all granted
</Directory>
cp news.conf music.conf ##复制文件内容到music.conf
vim music.conf
:%s/news/music/g
systemctl restart httpd
测试
在浏览器中输入www.westos.com www.news.com www.music.com 访问不同的资源即可