安装

Apache Windows下Apache安装步骤 - 失恋的蔷薇 - 博客园 (cnblogs.com)

Apache Haus Downloads

 

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

 

验证

http://localhost/

http://localhost/test.html

 

配置

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>

 

问题:

  1. 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

 

  1. 增加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

 

 

Attachments:

image2023-8-6_11-47-49.png (image/png)
IMG_1056.jpeg (image/jpeg)
IMG_1056 - 2.jpeg (image/jpeg)
IMG_0292.jpeg (image/jpeg)

Comments:

Posted by admin at 十二月 12, 2023 23:23

Posted by admin at 十二月 13, 2023 21:40