一般情况都是使用nginx作为反代服务器,项目中遇到一个只能用Apache做反代的实例,将具体配置分享如下
一、配置http反向代理地址
1.首先确保Apache有这些模块,在Apache根目录下确认有这些模块,主要包含以下模块:
mod_proxy.so
mod_proxy_ajp.so
mod_proxy_balancer.so
mod_proxy_connect.so
mod_proxy_http.so
2.打开配置conf/httpd.conf文件,将这些模块的注释去除
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
3.修改配置文件,打开文件 conf/httpd.conf ,在文件末尾加上如下配置:
#反向代理
<VirtualHost *:8080>
# DocumentRoot "${SRVROOT}\docs\ariang"
ServerName apache.orcy.net.cn
ErrorLog "logs/apache-proxy.log"
CustomLog "logs/apache-proxy.log" common
ProxyPreserveHost On
ProxyRequests off
<Proxy *>
Order deny,allow
allow from all
</Proxy>
ProxyPass /proxy https://www.orcy.net.cn/
ProxyPassReverse /proxy https://www.orcy.net.cn/
增加上述配置后,前端调用接口地址 http://apache.orcy.net.cn/proxy 在代理服务器中就会变为 https://www.orcy.net.cn
如果想用域名直接代理只需修改如下配置
ProxyPass / https://www.orcy.net.cn/
ProxyPassReverse / https://www.orcy.net.cn/
二、配置https反向代理地址
1.打开配置conf/httpd.conf文件,将此行的注释去除
Include conf/extra/http-ssl.conf
2.在一、3.
的配置文件基础上添加证书配置
SSLEngine on
SSLCertificateFile "D:\Apache\conf\ssl\server.crt" #证书地址配置项
SSLCertificateKeyFile "D:\Apache\conf\ssl\server.key" #证书地址配置项
SSLCertificateChainFile "D:\Apache\conf\ssl\server-ca.crt" #证书地址配置项
SSLProxyEngine on #开启ssl的反向代理
3.配置完成后保存,重启Apache
三、报错处理
1.如果出现Apache启动不了的情况,在配置没有错误的情况下,可能是443端口被占用的问题。可以在Apache中的环境端口检测中查看,找出占用端口的服务,关掉即可
2.报错:Invalid command ‘Order’, perhaps misspelled or defined by a module not included in the server configuration
因为模块没有加载或者出错的原因,解决办法:加载模块,取消此行注释
LoadModule access_compat_module modules/mod_access_compat.so
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)