nginx + tomcat + SSL配置(centos6)

[TOC]

数据传输方式

用户 —————> nginx(HTTPS) ———————>tomcat(HTTP)

    nginx 和tomcat之间不需要使用HTTPS通信,因为nginx和tomcat一般处在同一内网,所以基本不会对外开放,也不会暴露外部服务,所以安全性不需要担心;其次,https核对证书是需要性能开销的,所以使用http通信能够有稍微提升一些性能。

配置方式

nginx 安装

安装openSSL

yum -y install openssl openssl-devel

安装pcre

yum -y install pcre pcre-devel

安装nginx

groupadd www
useradd -s /sbin/nologin -g www www
wget http://nginx.org/download/nginx-1.14.0.tar.gz
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0.tar.gz

/configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module  --with-http_sub_module --with-http_v2_module

make && make test
make install

nginx 配置

 #服务器的集群,可以配置一个,也可以使用负载均衡
    upstream  manage {  #服务器集群名字
        server  127.0.0.1:8080  weight=1;#服务器配置weight是权重,权重越大,分配的概率越大。
    }
    

server
    {
        listen 80;
        #listen [::]:80;
        server_name path.your.domain ; #这里改成你自己的地址
        rewrite ^(.*)$ https://${server_name}$1 permanent;
   }

server
    {
        listen 443 ssl;
        #listen [::]:443 ssl;
        server_name path.your.domain ; #改为你自己的域名
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains;preload";

        location / {
            proxy_pass http://manage;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_redirect off;
            proxy_send_timeout         240;
            proxy_read_timeout         240;
            proxy_connect_timeout 100ms; # 代理机器连接超时时长(默认的60s太长了)
            expires 30d;
        }
        
        ssl on;
        ssl_certificate  server.pem;   #这里改成你自己的
        ssl_certificate_key  server.key; #这里改成你自己的
        ssl_session_timeout 5m;
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
        # ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;

        #error_page   404   /404.html;

        access_log off;
    }

tomcat配置

server.xml

context.xml

更新

整合完毕后发现其中一个项目的后台管理系统登录不了了。经过调试发现是session丢失了。上网查了之后得到解决方案。现记录下来作为备忘。
上一篇
下一篇