Apache常用配置指北

如题所述

第1个回答  2022-07-23
Apache 作为世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一

相信前端的小伙伴对于 apache 和 nginx 都有所了解,特别是前后端分离,独立开发部署后,使用web服务器做一些代理服务可以解决绝大多数因为前后端分离造成的跨域,认证等问题(PS:都2020年了,不会还有项目组主张使用weblogic或tomcat部署前端项目吧? 不会吧,不会吧,不会吧 😓)

下面,我从实际项目角度出发,说一些apache常用配置,相信做到以下配置之后,基本可以解决前端项目部署对接时80%以上的问题 (😃 我骗你的,我怎么知道能解决多少,反正先说一个数嘛)

示例:

Directory指令用于在配置的目录(示例内'/apache/web'目录)内封装一组指令,配置的指令在该目录及子目录生效。任何可以在"directory"作用域中使用的指令都可以使用

从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override, 即设置 AllowOverride None ,此时,配置目录及子目录的.htaccess 文件将被完全忽略。

当此指令设置为 All 时,所有具有 “.htaccess” 作用域的指令都允许出现在 .htaccess 文件中

示例:

apache的Alias配置即虚拟路径配置,如示例中,假设apache服务器启动地址为 http://localhost:3000 ,当访问 http://localhost:3000/public/test.mp4 时, 会返回服务器 /extra/video/public/test.mp4 视频文件。

示例:

示例效果为将输入 en.cmbc.com 时,跳转到 http://www.cmbc.com.cn/

Apache Rewrite规则修正符

Rewirte即apache的重写规则,主要的功能就是实现URL的跳转,匹配规则支持正则匹配。

示例:

apache中的mod_proxy模块用于url的转发,即具有代理的功能。

ProxyPass即转发功能,如示例中的配置,为将 http://localhost:3000/swaggerui 的请求转发至 http://197.0.35.4:7000/swaggerui 服务器.

ProxyPassReverse 的配置和 ProxyPass 的配置一致,它用于反向代理,例如示例中请求 http://localhost:3000/swaggerui 后,转发给配置的目标服务器( http://197.0.35.4:7000swaggerui ),返回的处理结果为重定向redirect至 http://197.0.35.4:7000/login.html 登录页,此时若未配置反向代理,浏览器会访问 http://197.0.35.4:7000/login.html ,而配置反向代理后,apache服务器会在重定向时,修改redirect地址为 http://localhost:3000/login.html 。

示例:

负载均衡配置稍显复杂,后续会专门总结一下相关配置,以上示例配置所达到的效果为:请求 http://localhost:3000/version_manager 时,会均衡负载发至 http://197.0.35.105:31382/version-managerhttp://197.0.35.105:31382/version-manager 两台服务器。

示例:

启用Apache的deflate模块,可以开启压缩功能,减小网站传输时的带宽。