背景:
一个使用tomcat部署的Javaweb项目,是基于http访问的。
一台客户的服务器,已经配置好了域名与SSL证书,有负载均衡自动卸载SSL,80强制跳转443.
部署过程:
先使用内网环境部署项目,一次成功。
开始改变为外网环境:
一、.修改tomcat的server.xml文件
1.改动端口号为80。(http默认端口80,https默认端口443)
2.修改engine标签的默认主机为域名:<Engine name="Catalina" defaultHost="sd...n">
3.配置host标签,这里可以把域名、localhost、127.0.0.1、IP地址都配置上。
<Host name="sdgc.scac.edu.cn" appBase="webapps"............
<Host name="127.0.0.1" appBase="webapps"........
4.改变tomcat的欢迎页面,实现域名直接访问到项目
二、改动项目内的配置
1.路径配置改动为:http://域名。(客户机自动卸载SSL,所以不需要写https。80强制跳转443,所以项目内路径不要写端口号)。
在部分页面内有获取项目地址和端口的代码,需要把端口部分去掉。
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+path+"/";
%>
在<head>头部标签内加上SSL的配置
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
三、改动服务器的HOST文件
在host文件上加上域名与IP的对应,不加的话程序会报UnknownHostException异常
文件路径:C:\Windows\System32\drivers\etc hosts文件
在末尾加上IP与域名的对应:10.110.20.208 sd.....du.cn
结果:
可以实现外网访问了。但是服务器本地访问不了。。。