day8-Apache服务生产实战--一(ob08)

零、http服务重要基础概念

https://blog.51cto.com/oldboy/736710 《浅谈千万级PV/IP规模高性能高并发网站架构》

IP 、PV、UV概念

在这里插入图片描述
在这里插入图片描述

IP、PV、UV的区别

在这里插入图片描述

用户访问网站基本流程

在这里插入图片描述
在这里插入图片描述

一、Apache服务生产实战–安装Apache

1.1卸载系统默认安装的Apache

#如果你的机器没有查到,就表示没有安装,则不用卸载了。
rpm -qa httpd*  #-q --query ,-a --all 先查结果

# 卸载查询出来的Apache软件包 -e --erase  移除 , --nodeps Don't do a dependency check 
rpm -e --nodeps httpd-2.4.6-89.el7.centos.1.x86_64
rpm -e --nodeps httpd-tools-2.4.6-89.el7.centos.1.x86_64

#shell脚本卸载法:
for name in `rpm -qa httpd*`
do
	rpm -e --nodeps $name
done

#卸载完后检查卸载情况,结果为空则卸载干净了。
rpm -qa httpd* | grep httpd

1.2下载安装Apache

此外还可做PGP Signatures验证下载的程序是否正确,没被嵌入杂七杂八的东西(此处略操作)
在这里插入图片描述

wget https://mirror.bit.edu.cn/apache//httpd/httpd-2.4.46.tar.gz
tar -zvxf httpd-2.4.46.tar.gz
cd httpd-2.4.46/

./configure \
--prefix=/application/apache2.4.46 \
--enable-defalte \
--enable-expires \
--enable-headers \
--enable-modules=most \
--enable-so \
--with-mpm=worker \
--enable-rewrite \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--with-pcre=/usr/local/pcre
#在安装apache 软件包时,如果忘记安装了以上模块,可以再安装后,以dso方式编译安装
make
make install
ln -s /application/apache2.4.46/ /application/apache
#此时ls -l /application/apache2.4.46/和ls -l /application/apache/效果是一样的

#检查Apache安装情况
/application/apache/bin/apachectl -l
#-M 列出基于当前配置加载的所有模块
/application/apache/bin/apachectl -M
#查看编译版本
/application/apache/bin/apachectl -V

#启动Apache
/application/apache/bin/apachectl start


# 如果It works页面出不来,排查步骤:
#1、关闭防火墙和selinux
如果是生产环境则添加80端口的允许访问规则,而不是关闭防火墙
iptables -I INPUT -p tcp --dport 80 -j ACCEPCT

#2、查看服务是否启动了
netstat -lnt | grep 80
ps -aux | grep http
lsof -i:80
wget http://192.168.26.139

还不行的话,则去看Apache日志 cat /application/apache/logs/error_log

输入IP验证
在这里插入图片描述

在这里插入图片描述

Apache的./configure参数说明

在这里插入图片描述

报错处理:
在这里插入图片描述
https://www.cnblogs.com/visec479/p/5160297.html
《解决编译apache出现的问题:configure: error: APR not found . Please read the documentation》

分割线===
部署一个简单的web站点

#可从httpd.conf中得知
apache默认web站点目录为 /application/apache/htdocs

在这里插入图片描述

二、Apache服务生产实战–目录结构说明

2.1 apache目录结构说明 bin

在这里插入图片描述
在这里插入图片描述

配置目录conf

在这里插入图片描述
在这里插入图片描述
logs下的httpd.pid
在这里插入图片描述

apache 主配置文件 httpd.conf

egrep -v "#|^$" httpd.conf | nl

httpd.conf解释说明:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解释到此,没有特加说明的,可以暂时忽略

在这里插入图片描述
在这里插入图片描述

2.2 Apache扩展的配置文件

开启httpd.conf的注释,即加载conf/extra/httpd-vhosts.conf配置文件
其扩展配置的路径为/application/apache/conf/extra

# Virtual hosts
Include conf/extra/httpd-vhosts.conf
# Various default settings
#Include conf/extra/httpd-default.conf

在这里插入图片描述
在这里插入图片描述

2.3 Apache虚拟主机的配置 httpd-vhosts.conf

httpd-vhosts.conf配置说明
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
提示:在虚拟主机配置文件httpd-vhosts.conf 中,我们发现了有些参数选项是和httpd. conf主配置文件重复的。这里是局部(httpd-vhosts.conf)优先原则,如果局部没配,则使用全局配置。如: DocumentRoot,DircetoryIndex等。

三、Apache服务-基于域名的虚拟主机实战配置httpd-vhosts.conf

3.1 先编辑httpd.conf开启虚拟主机配置

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

vim /application/apache/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/blog"
    ServerName blog.etiantian.org
    ServerAlias etiantian.org
    ErrorLog "logs/blog.etiantian.org-error_log"
    CustomLog "logs/blog.etiantian.org-access_log" common
</VirtualHost>

在这里插入图片描述
检查Apache配置的语法:

/application/apache/bin/apachectl -t
#优雅重启
/application/apache/bin/apachectl graceful

3.2 建立虚拟主机站点目录和index.html

mkdir -p /var/blog
echo "i am oldboy  etiantian blog ......" > /var/blog/index.html
#赋予权限,这个目录就是将来放程序用的。
chown -R apache.apache /var/blog

修改Windows的hosts文件添加 (C:\Windows\System32\drivers\etc下的)

192.168.26.139  blog.etiantian.org

随后ping blog.etiantian.org ,浏览器访问,但报错403
在这里插入图片描述
处理方法
因为没有配置授权许可所导致的,编辑httpd.conf,在最下面加入站点目录/var/blog的权限许可配置

vim httpd.conf

<Directory "/var/blog">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    #Require all granted
</Directory>

然后检查语法重启
/application/apache/bin/apachectl -t
/application/apache/bin/apachectl graceful

在这里插入图片描述
在这里插入图片描述
但本人在版本Apache/2.4.46上做上述操作还是403,换成了默认web配置的Directory才解决了403
(教程中的版本是Apache2.2.22)
参考:https://www.cnblogs.com/wajika/p/6481167.html
https://www.cnblogs.com/taosim/articles/3998804.html 《2.4.2后版本的apache中需要在目录下面添加 Require all granted,否则无论怎么访问都是403》
在这里插入图片描述

新增bbs.etiantian.org虚拟主机

注意:在新版本中在所有选项中都要加上-号、+号,否则报错,参考
https://my.oschina.net/u/1433006/blog/542060《Either all Options must start with + or -, or no》

vim httpd.conf 末尾加:
<Directory "/var/bbs">
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
        Require all granted
</Directory>

vim httpd-vhosts.conf 末尾加:
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/bbs"
    ServerName bbs.etiantian.org
    ServerAlias bbsoldboy.etiantian.org
    ErrorLog "logs/bbs.etiantian.org-error_log"
    CustomLog "logs/bbs.etiantian.org-access_log" common
</VirtualHost>

/application/apache/bin/apachectl -t
/application/apache/bin/apachectl graceful
最后Windows修改hosts文件,访问。 Linux则是修改 /etc/hosts

在这里插入图片描述

四、apache服务Forbidden 403问题

在这里插入图片描述
参考:https://www.cnblogs.com/wajika/p/6481167.html
https://www.cnblogs.com/taosim/articles/3998804.html 《2.4.2后版本的apache中需要在目录下面添加 Require all granted,否则无论怎么访问都是403》

五、apache日志轮询–cronolog

cd /server/tools
wget https://fossies.org/linux/www/old/cronolog-1.6.2.tar.gz
tar -zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2/
./configure
make && make install
pwd

随后编辑vim /application/apache/conf/extra/httpd-vhosts.conf
注释原先的CustomLog,加上后面的

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/blog"
    ServerName blog.etiantian.org
    ServerAlias etiantian.org
    ErrorLog "logs/blog.etiantian.org-error_log"
   # CustomLog "logs/blog.etiantian.org-access_log" common
    CustomLog "|/usr/local/sbin/cronolog /logs/blog_access_%Y%m%d.log" combined
</VirtualHost>

参考:https://blog.51cto.com/freeloda/1346076

END

猜你喜欢

转载自blog.csdn.net/Nightwish5/article/details/113784994
ob