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|jpg|bmp|swf)$ {
proxy_pass http://tomcat-8616;
}
}
启动nginx 即可; 这样访问流程就是,域名–>nginx分发—>tomcat解析协议生活https访问—>渲染返回客户端!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论