nginx+tomcat部署微信小程序

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

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

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

<Connector port="8081" protocol="HTTP/1.1"
    connectionTimeout="20000" maxHttpHeaderSize="8192" URIEncoding="UTF-8"/>

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配置:

<Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000" maxHttpHeaderSize="8192"
               redirectPort="443"
               proxyPort="443" URIEncoding="UTF-8"/>

添加value标签:

<Valve className="org.apache.catalina.valves.RemoteIpValve"
			remoteIpHeader="x-forwarded-for"
			remoteIpProxiesHeader="x-forwarded-by"
			protocolHeader="x-forwarded-proto"/>

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

<CookieProcessor className ="org.apache.tomcat.util.http.LegacyCookieProcessor"/>

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协议没有问题,我怀疑证书可能被修改了,于是我就重新去阿里云管理后台重新下载证书上传到服务器

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

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值