nginx+tomcat部署微信小程序

最近公司有个小程序需要部署上线,之前没有接触过这块,期间遇到不少问题,所以今天来总结一下。

1、在微信开发者工具中正常登录,提交审核的时候老是提示登录失败,查看tomcat日志得知:

nginx+tomcat部署微信小程序_第1张图片

这是由于Tomcat 默认的maxHttpHeaderSize设置是4K,我们增加到了8K,即8192,配置如下:

2、修改完成后继续重新审核,结果还是审核未通过,查看日志也没错误日志,我怀疑问题出在nginx这块,于是网上查找资料重新配置了下nginx(证书是以前部署的,这次发布就没动),配置如下:

upstream mygee {
		server 127.0.0.1:8081 fail_timeout=0;
	}
server {
		listen 443;
        server_name  www.xxx.com;
		ssl on;
		ssl_certificate   /usr/local/src/nginx-1.10.3/cert/1579637_xxx.com.pem;
		ssl_certificate_key  /usr/local/src/nginx-1.10.3/cert/1579637_xxx.com.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;
		ssl_prefer_server_ciphers on;
		
		location /recruit {
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $http_host;
			proxy_set_header X-Forwarded-Proto https;
			proxy_redirect off;
			proxy_connect_timeout      240;
			proxy_send_timeout         240;
			proxy_read_timeout         240;
			proxy_pass http://mygee/recruit;
		}
    }

这地方需要注意,我之前 proxy_pass http://localhost:8081/recruit;是这样的写的,找到资料网上说需要写成:127.0.0.1

同时也要检查443端口是否开启,由于我用的是阿里云服务器可以在申请免费的证书,参考文章:https://www.cnblogs.com/lxf1117/p/6650647.html

3、修改完毕提交期待下一次结果,结果很失望,还是审核失败,查看资料网上说tomcat也需要配置,于是我修改tomcat service.xml配置:

添加value标签:

4、测试ok,提交版本又出现一个cookie异常,修改tomcat context.xml 添加配置:

5、修改完成,重新提交,这次终于审核通过,谁知道拿手机登录还是提示登录失败,由于我提交的是体验版本可以查看console控制台信息,出现:request:fail ssl hand shake error异常,百度看看网上也有说是因为安卓手机问题,于是换个苹果手机还是这样。

大部分都说是以为问题出在这块,小程序要求HTTPS 服务器的 TLS 版本支持1.2及以下版本,一般就是1.0、1.1、1.2要同时支持这三个版本,一个也不能少,可以在https://www.ssllabs.com/ssltest/analyze.html该网站测试你的域名是否支持这些版本

nginx+tomcat部署微信小程序_第2张图片

由此可以看出我的nginx协议没有问题,我怀疑证书可能被修改了,于是我就重新去阿里云管理后台重新下载证书上传到服务器

重新提交审核,最终登录成功

nginx+tomcat部署微信小程序_第3张图片

这是本人的第一个小程序,所以写下记录一下,有不足的欢迎提点

你可能感兴趣的:(java实现,linux)