记录一个nginx与undertow的ssl配置

    

upstream pp{
    	keepalive	32;
    	server 127.0.0.1:8159;
    }
    server {
    	listen       80;
    	server_name  www.miigua.cn miigua.cn;
    	#http请求301跳转到https
    	return 301 https://www.miigua.cn$request_uri;
    }
    server {
        listen 443 ssl;
        server_name www.miigua.cn miigua.cn;
        if ($host = 'miigua.cn'){
        	#不带www域名301跳转到带www的域名
    		return 301 https://www.miigua.cn$request_uri;
    	}
        location / {
    		proxy_pass   http://pp;
    		#jpress登录后redirect报400错误
    		proxy_redirect http:// https://;
    		proxy_set_header Host $host:$server_port;
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header REMOTE-HOST $remote_addr;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		proxy_http_version 1.1;
    		proxy_set_header Upgrade $http_upgrade;
    		
    		proxy_read_timeout 1800s;
    		
    		client_max_body_size    2000m;
    		if ($request_filename ~* \.(js|css|jpg|jpeg|gif|bmp|png) ) {
    			add_header	Cache-Control	max-age=31536000;
    		}
    	}
      
        ssl_certificate /data/jpress/cert/www.miigua.cn.pem;
    	ssl_certificate_key /data/jpress/cert/www.miigua.cn.key; 
    	ssl_session_timeout 5m;
    	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    	#表示使用的加密套件的类型。
    	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
    	ssl_prefer_server_ciphers on;
    }
    

以上配置主要解决了如下问题: 

1、http请求301到https,不带www域名301到带www的域名,所有请求进来最终都会到 www.miigua.com/xxx(避免了seo收录多域名情况)。

 2、增加“proxy_redirect http:// https://;”解决java内部登录成功后redirect时报错“400 Bad Request: The plain HTTP request was sent to HTTPS port” 

3、静态文件浏览器缓存,减小服务器压力加快页面打开速度。

版权声明:
作者:Miigua
链接:https://www.miigua.com/article/305.html
来源:米瓜的博客
文章版权归作者所有,未经允许请勿转载。

THE END
二维码
打赏
请在后台主题设置处设置打赏图片
< <上一篇
下一篇>>