tomcat+nginx配置https访问
标题tomcat做web服务器,已经知道ip+端口访问了,真正开发中需要的是域名访问,甚至是https访问协议。
准备工作 :tomcat,nginx,SSL证书;
1,这里是从阿里云上申请的一个SSL证书,下载我们需要的tomcat版本
2,上传到服务器tomcat目录下,并解压,创建一个cert文件夹把解压文件放入;
3,配置tomcat,/conf/service.xml配置文件
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"/>
<Connector port="443"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/7354355_adv.ss.com.pfx" //刚才上传的/证书
keystoreType="PKCS12"
keystorePass="M83445" //刚才pfx-password.txt 里面内容
clientAuth="false"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
SSLCipherSuite="ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4"/>
最后启动tomcat,即可通过 https:域名访问到tomcat,这里已经可以通过域名访问了,但是在实现工作中,我们不可能一台服务器只配置一个tomcat,而是配置多个tomcat。
我们可以用nginx做分发,nginx也可以配置https,我们上面已经配置好了tomcat,就没必要去配置nginx的https了,直接nginx 分发过去就好了
4,修改tomcat中的80端口,、tomcat/conf/service.xml
修改为8616,修改成功后,保存,重启tomcat;
5,修改nginx目录下的/conf/nginx.conf,添加8616端口
#####adv入口#######
upstream tomcat-8616{
server localhost:8616;
}
server {
listen 80;
server_name adv.ss.com;
location / {
proxy_pass http://tomcat-8616;
//访问静态资源的配置
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location ~ .*\.(js|css)$ {
proxy_pass http://tomcat-8616;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
proxy_pass http://tomcat-8616;
}
}
启动nginx 即可; 这样访问流程就是,域名–>nginx分发—>tomcat解析协议生活https访问—>渲染返回客户端!