安装
Apache Windows下Apache安装步骤 - 失恋的蔷薇 - 博客园 (cnblogs.com)
httpd -t 测试配置文件是否合法
httpd -k install -n Apache 安装Apache的主服务
net start/stop apache 启动/停止服务
httpd -k start: 不会提示详细的错误信息。
httpd -k start -n apache: 会提示详细的错误信息。
httpd -k restart -n apache: 重启。
net start apache: 利用Windows托管服务命令。
httpd -k stop Apache服务的卸载
httpd -k uninstall
Windows卸载服务命令:sc delete 服务名
安装目录
E:\apache
验证
配置
Apache httpd.conf配置文件主要内容解释 - 失恋的蔷薇 - 博客园 (cnblogs.com)
apache转发代理配置 - 沉迷于编程的小菜菜的个人空间 - OSCHINA - 中文开源技术交流社区
https://www.cnblogs.com/liwei0526vip/p/6403781.html
Apache和Nginx的区别
配置Httpd.conf
Listen 80
ServerName 192.168.1.104:80
Listen
监听服务端口
可以同时监听多个端口
转发请求给tomcat服务
配置httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
#DocumentRoot "${SRVROOT}/docs/dummy-host.example.com"
#ServerName 192.168.1.104
ServerName 192.168.10.102
#ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
Header set Access-Control-Allow-Origin *
ProxyPass / http:// 192.168.10.102:8085/
ProxyPassReverse / http:// 192.168.10.102:8085/
</VirtualHost>
问题:
- Apache转发请求后,响应no content。
解决:增加ProxyPreserveHost On解决。让Apache的mod_Proxy保存Host,即请求发起端
https://blog.csdn.net/wwwcomy/article/details/84876968
未设置(默认)
Origin: http://192.168.10.102
Referer: http://192.168.10.102/swagger-ui.html
已设置
Host: 192.168.10.102
Referer: http://192.168.10.102/swagger-ui.html
- 增加TPLink虚拟服务器的设置,可以转发到Tomcat服务器,可以转发到Apache服务器,不能通过Apache再转发到Tomcat。
192.168.1.2:82 -> 192.168.10.102:8085
192.168.1.2:81 -> 192.168.10.102:8000
负载均衡
负载均衡、Apache 负载均衡配置_黎小小的博客-CSDN博客_apache 负载均衡
Apache2.2配置负载均衡_学渣的博客-CSDN博客_apache负载均衡配置
[转]apache的负载均衡配置 - $walker - 博客园 (cnblogs.com)
mod_proxy提供代理服务器功能,mod_proxy_balancer提供负载均衡功能, mod_proxy_http让代理服务器能支持HTTP协议。
浅析Apache中RewriteCond规则参数的详细介绍 - 追忆丶年华 - 博客园 (cnblogs.com)
RewriteCond
RewriteRule
http://localhost:8001/balancer-manager
SSL
windows下配置apache+https_木鱼大叔的技术博客-CSDN博客_apache https windows
安装OpenSSL
OpenSSL 和 keytool 的区别_LawssssCat的博客-CSDN博客_keytool openssl
Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions (slproweb.com)
Apache安装及配置ssl - GaZeon - 博客园 (cnblogs.com)
CA根证书 ca.crt
openssl genrsa -out ca.key 1024
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
服务器私钥 server.key
openssl genrsa -out server.key 1024
服务器证书 server.crt
openssl req -new -out server.csr -key server.key
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
Using configuration from C:\Program Files\Common Files\SSL/openssl.cnf
x509 -req -days 365 -in 你的csr文件的位置 -CA 你的ca证书的位置 -Cakey 你的ca密钥的位置 -set_serial 01 -out 你的网站证书要存放的位置
NET::ERR_CERT_AUTHORITY_INVALID
此服务器无法证明它是 localhost;你的计算机的操作系统不信任它的安全证书。这可能是由错误配置或者有攻击者截获你的连接而导致的。
证书ok。
一是可以修改httpd.conf,改用Include conf/extra/httpd-ahssl.conf。该配置文件已默认配置SSL。
二是仍然使用默认的Include conf/extra/httpd-ssl.conf。修改该配置,屏蔽SSLVerifyClient require即可。
是否支持动态加载配置
比如Nginx -s reload
ProxyHCExpr status200 {%{REQUEST_STATUS} =~ /^[2]/}
BalancerMember http://localhost:8084/ hcmethod=GET hcuri=/actuator/health hcexpr=status200 hcinterval=30 route=node1 loadFactor=1
当需要切换流量时,可以先发送指令,让健康检查接口返回down。
Apache静态缓存设置
Apache静态资源缓存配置 - 灰锅 - 博客园 (cnblogs.com)
配置 Apache 下设置 Web 页面浏览器缓存 (baidu.com)
开启httpd缓存控制功能
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 12 month"
ExpiresByType text/html "access plus 3 month"
</IfModule>
第一行表示启用缓存控制,第二行表示默认情况下都缓存一年,第三行表示根据MIME格式进行划分,以上表示如果类型为html,那么就缓存三个月。
在http的头部信息Cache-Control和Expires字段中可以看到缓存的时间
使用headers来进行设置缓存控制时间,如下配置(表示在头部信息中直接添加一个首部控制信息):
<IfModule mod_headers.c>
header set cache-control "max-age=36500"
</IfModule>
使用缓存的优缺点
在使用缓存的时候,优点就是主要是提高静态资源的访问速度,从而提高用户的性能,提高用户体验;减少在传输的时候占用的带宽,从而节省成本。
在使用缓存的时候,如果源文件的内容发生了改变,那么如何是好呢?
一般的情况下可以使用修改文件的名称来更新缓存,另外也可以使用条件式请求首部,就是每次会向服务器发送一个请求,你修改了嘛?主要就是使用的etag这个扩展信息,每次进行比对。
问题
Apache设置了反向代理:
ProxyPass /ahttp://localhost:8085/
通过Apache的反向代理可以访问服务的swagger页面,页面上的链接是准确的,但是点击测试按钮,请求地址不对,丢失了路径。
<form accept-charset="UTF-8" class="sandbox">
form 没有action
点击submit时,会把页面的url地址当成提交地址,自带表单数据,不需要任何js配合
http://localhost:8001/a/swagger-ui.html#!/txw-springbatch-sample%E7%9B%B8%E5%85%B3api/indexUsingGET
http://localhost:8001/txw-springbatch-sample/hello
配置了反向代理后,表单提交出现404错误
http://localhost:8086/v2/api-docs
swagger-ui 修改默认的请求地址 - SegmentFault 思否
健康检查
https://www.lanmper.cn/apache/t8916.html
https://httpd.apache.org/docs/2.4/mod/mod_proxy_hcheck.html


