背景
手头有一台美团云的ubuntu服务器,目前在上面用wordpress+Apache搭了个个人网站->tinySky,快毕业了在学校呆着比较无聊,心血来潮想要搞个小程序玩玩,这就涉及到了在单机上部署多个网站的问题,解决方法也比较简单,利用Apache的虚拟站点功能就行。
目标拆解
- 部署小程序的后台tomcat + Java
- Apache配置中新增虚拟站点,将请求转发到tomcat
- 为小程序站点添加ssl证书
- 防火墙新增规则,禁止公网访问tomcat相应端口
解决步骤
部署小程序的后台tomcat + Java
采用的最基础的打war包上传方法,此处不表。
Apache配置中新增虚拟站点,将请求转发到tomcat
可参考(Ubuntu/Centos)apache多站点配置,很详细的一篇文章。
为小程序站点添加ssl证书
- 申请免费证书,我的域名是腾讯云买的,证书是一年有效期的那种。
- 更改Apache虚拟站点设置如下,我的文件名是minipro.conf
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
<VirtualHost *:443>
ServerName miniprogram.njuszy.cn
ServerAdmin webmaster@localhost
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl-cert/Apache/2_miniprogram.njuszy.cn.crt
SSLCertificateKeyFile /etc/apache2/ssl-cert/Apache/3_miniprogram.njuszy.cn.key
SSLCertificateChainFile /etc/apache2/ssl-cert/Apache/1_root_bundle.crt
ProxyPass /lifehelper http://localhost:8080/lifehelper
ProxyPassReverse /lifehelper http://localhost:8080/lifehelper
</VirtualHost>
因为小程序站点提供的都是Rest接口,因而没必要支持80端口,直接443就行。
3. 重启Apache。
禁止公网访问tomcat相应端口
ubuntu下利用ufw即可(开ufw时注意不要把22端口给禁了):
sudo ufw deny 8080
sudo ufw enable