Apache(httpd)实现反向代理

Posted 一只特立独行的程序猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache(httpd)实现反向代理相关的知识,希望对你有一定的参考价值。

更多内容参见个人技术博客,无广告欢迎关注

 

新手一步步搭建自己的网站(服务器->域名->CA认证)

因为这篇文章是Apache(httpd)的教程,配置了多域名SSL配置

Chrome访问 https://woodtechblog.tk/  443端口

 

Chrome访问 http://woodtechblog.tk/  80端口

 解释一下 通过域名访问网站 http 走的是80端口,https 走的是443端口

得出结论:配置的Apache(httpd) 只监听端口 80 和 443 

 

前一篇教程已经部署了SpringBoot应用hello-0.0.1-SNAPSHOT.jar (更多SpringCloud微服务架构教程)

http://www.woodtechblog.tk:8080/hello/小伍 http可以访问

---------------------------------------------------------------

疑问:不是说Apache(httpd)只接受 80 和 443 端口的请求吗,为什么http可以访问?

-> 因为是8080端口是SpringBoot应用自带的Tomcat中部署的,所以你访问的是Tomcat服务器

---------------------------------------------------------------

 

 

https://www.woodtechblog.tk:8080/hello/小伍 https访问不了

这个问题怎么解决?-> 反向代理技术 

一般企业都是用 nginx作为反向代理,但是我已经配置了Apache不想改了,Apache也可以实现相同的功能

修改 /etc/httpd/httpd.conf (apache2.2 /etc/httpd/conf/httpd.conf)CentOS

-----------------拓展内容-------------------

Mac自带Nginx和Apache 

Nginx目录及常用命令(下载的Nginx需要编译才能运行哦,去根目录下运行 ./configure 编译Nginx,需要 gcc 的支持):

/usr/local/etc/nginx

start nginx

nginx -s stop

nginx -s reload

 

Apache httpd目录及常用命令:

/etc/apache2/

sudo apachectl start

sudo apachectl stop

sudo apachectl restart

------------------------------------------

确保195~196没有注释

在文件末尾追加反向代理配置

#反向代理

ProxyRequests Off

ProxyPass /ability/payment http://127.0.0.1:8821/payment

ProxyPassReverse /ability/payment http://127.0.0.1:8821/payment

 

ProxyPass /payment/notify http://127.0.0.1:8080/payment/notify

ProxyPassReverse /payment/notify http://127.0.0.1:8080/payment/notify

 

<proxy *>

    AllowOverride None

    Order Deny,Allow

    Allow from all

</proxy>

 

 

配置完成后记得重启Apache httpd

 

service httpd restart

 

 

 

 

 

以上是关于Apache(httpd)实现反向代理的主要内容,如果未能解决你的问题,请参考以下文章

Apache反向代理配置

Apache httpd 反向代理方案的 SSL 问题

怎么配置反向代理 apache

Apache 2.4 - 简单的反向代理 - 不适用于多个条目

apachenginx实现反向代理

httpd通过ajp协议反向代理tomcat