Apache设置反向代理

目录 文章

一般情况都是使用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 http://www.orcy.net.cn/
    ProxyPassReverse /proxy http://www.orcy.net.cn/

增加上述配置后,前端调用接口地址 http://apache.orcy.net.cn/proxy 在代理服务器中就会变为 http://www.orcy.net.cn

如果想用域名直接代理只需修改如下配置

    ProxyPass / http://www.orcy.net.cn/
    ProxyPassReverse / http://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

>>本文为下一朵云的原创文章,转载请附上原文出处链接及本声明
>>原文链接地址:Apache设置反向代理

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注