Apache 反向代理实现为http添加https的外衣

时间:2023-01-09 20:43:03

Apache 反向代理

金天:坚持写东西,不是一件容易的事,换句话说其实坚持本身都不是一件容易的事。如果学习有捷径,那就是不断实践,不断积累。写笔记,其实是给自己看的,是体现积累的一种方式,要坚持。

笔者开发了一套node.js的web应用,想实现https协议,至于node.js原生的实现https协议笔者这里并没有研究。

其实很简单, 默认node.js express会监听3000端口,HTTP协议。

如果想通过https访问node.js应用怎么办? 直接用apache反向代理功能。

配置apache配置文件, 笔者这里在apache/conf/extra/httpd-vhosts.conf, 添加VirtualHost配置:

<VirtualHost *:443>
ServerName www.mydomain.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
SSLEngine On
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key" ProxyRequests Off
ProxyPreserveHost On ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
</VirtualHost>

如此,重启apache服务器,https://127.0.0.1 即可访问到http://127.0.0.1:3000的内容。

当然,这里这是一个例子,真实生产环境,需要自行生成替换上述的证书、域名、端口等信息。