因为众所周知的原因,telegram在大陆不能直接连上,Telegram Bot也用不了,属实恼火。这个时候用一个连的上外网,同时能够被墙内的机器访问的跳板机器就可以解决这个问题。
NGINX配置
下面是我调试好的Nginx conf文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| # http强制跳转到htpps server { listen 80; listen [::]:80; server_name xxx.yourserver.com;
# Enforce HTTPS return 301 https://$server_name$request_uri; } ## https server { listen 443 ssl; listen [::]:443 ssl;
server_name xxx.yourserver.com;
## ssl密钥路径自己改改 ssl_certificate /etc/nginx/ssl/server.pem; ssl_certificate_key /etc/nginx/ssl/server.key;
## root非必要 root /var/www/tgbot/; ## dns必须写,不然会报502错误 resolver 8.8.8.8;
## 以bot开头的请求都会被正则匹配到 location ~* ^/bot { proxy_buffering off; proxy_pass https://api.telegram.org$request_uri; proxy_http_version 1.1; } ## 和上面root一样非必要,这个主要是用来确认服务器状态的。也可以改成return 403 location /{ try_files /$uri $uri /index.html; }
## nginx出问题看log解决问题很快。 error_log /var/log/tg.log error; }
|
测试
curl -s -X POST https://xxx.yourserver.com/bot[Token] -d chat_id=[id] -d text="Hello World"
上面的[Token]和[id]记得换掉。