关于内网使用Nginx正向代理发送极光推送
生活随笔
收集整理的這篇文章主要介紹了
关于内网使用Nginx正向代理发送极光推送
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
關(guān)于內(nèi)網(wǎng)使用Nginx正向代理發(fā)送極光推送
- 一 業(yè)務(wù)場景
- 二 使用極光前的準(zhǔn)備工作
- 三 配置nginx.conf
- 四 極光推送部分代碼
- 結(jié)束語
一 業(yè)務(wù)場景
微信支付返回交易信息到內(nèi)網(wǎng)的系統(tǒng),信息由內(nèi)網(wǎng)系統(tǒng)處理后訪問極光提供的API https://api.jpush.cn/v3/push 由此來完成消息的推送。內(nèi)網(wǎng)系統(tǒng)不能直接訪問外網(wǎng),準(zhǔn)備使用nginx做正向代理訪問極光的API。二 使用極光前的準(zhǔn)備工作
1 下載極光的jar包添加到項目中 2 服務(wù)器安裝nginx 由于管網(wǎng)的文檔很詳細(xì),以上兩步自行解決。三 配置nginx.conf
1 服務(wù)器IP假設(shè)nginx IP為 33.33.33.33 2 極光IP極光域名 api.jpush.cn 的IP是動態(tài)變化的,官方建議是開放域名訪問,最要不要在hosts里綁定IP。官方有幾個固定IP 113.31.138.48113.31.138.47183.232.57.12但是不保證固定不變,并且如果有變動也只會主動通知極光的VIP。所以你可以用固定的IP,也可以ping一下 api.jpush.cn 得到IP。我就使用的 113.31.138.48 PS:使用極光V3接口(只支持https請求)要開放443端口(),使用V2接口要開放80端口,但是后者已經(jīng)不再維護了,所以不建議使用。 3 配置hostsview /etc/hosts 在hosts文件解析域名 113.31.138.48 api.jpush.cn保存 4 配置nginx.confnginx.conf一版在默認(rèn)目錄 /etc/niginx/ 下 http {log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;include /etc/nginx/mime.types;default_type application/octet-stream;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf;server {listen 443;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location /v3 {proxy_pass https://api.jpush.cn;}} }其他的沒有需求的話就不用管,最基礎(chǔ)的在server 里面監(jiān)聽 443端口,
然后配置一個location /v3 來匹配請求
然后將 https://api.jpush.cn 賦給 proxy_pass
重啟nginx nginx -s reload
你能ping通極光,基本用這個配置就可以了。
四 極光推送部分代碼
1 使用HttpProxy來代理
2 使用構(gòu)造器 public JPushClient(String masterSecret, String appKey, HttpProxy proxy, ClientConfig conf)來實例化client
3 實例化 ClientConfig,來配置要訪問的IP
結(jié)束語
基本上極光推送的坑就在這個設(shè)置hostname上了,clientConfig.setPushHostName("http://33.33.33.33") 在網(wǎng)上查了許久,論壇也看了,并沒有給出有效的辦法,極光官方也只是強調(diào)域名的問題,nginx配置沒有問題,就是代理不出去,報錯400 bad request。 最后試著配置一下config結(jié)果就訪問成功了,所以使用nginx代理訪問一定要配置clientConfig.setPushHostName("服務(wù)器IP")! 重要的事情說三遍!!! 關(guān)于極光推送,有不對的地方、有什么好的建議或者想討論的朋友歡迎留言~~~~總結(jié)
以上是生活随笔為你收集整理的关于内网使用Nginx正向代理发送极光推送的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript --- 异步函数
- 下一篇: nginx 根证书 服务器证书,Ngin