我们需要在Apache上搭建https和反向代理。
版本选择Apache2.4,低版本可能会出现未知问题。
官方下载地址:
https://www.apachehaus.com/cgi-bin/download.plx
如果嫌慢,也可以用我上传到CSDN的资源地址:
https://download.csdn.net/download/fangfu123/10842326
下载zip的压缩包,解压后,放在指定的目录下,如D:\Apache24
添加到服务中:
D:\Apache24\bin\httpd.exe -k install -n apache2.4
进服务中,启动Apache服务。
SSL证书是可以自己给自己颁发的,但是这种证书会在页面中显示为不安全。只能在测试环境中使用。
工作环境中,还是需要主动申请一个SSL证书。
阿里云有免费的CA证书服务,也有详细的教程。这里就不写了。
在conf目录下新建cert目录,申请下来的证书放在cert目录,如下图:
编辑打开httpd.conf,找到如下行并去掉前面的#:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
进入extra目录,将原来的httpd-ssl.conf备份成另外一个文件,新建httpd-ssl.conf文件,
文件内容如下:
<VirtualHost *:443>
ServerName www.xxxx.com # 绑定的域名
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
SSLCertificateFile "D:/Apache24/conf/cert/2_xxxx.cn.crt" #对应的证书名字
SSLCertificateKeyFile "D:/Apache24/conf/cert/3_xxxx.cn.key" #对应的证书名字
ProxyVia On
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /web1 ws://127.0.0.1:8080 # web1反向代理至websocket的8000端口
ProxyPassReverse /s0 ws://127.0.0.1:8080
ProxyPass /web2 http://127.0.0.1 # web2反向代理至http的80端口
ProxyPassReverse /web2 http://127.0.0.1
</VirtualHost>
重启Apache服务。