Node.js 为什么毒蛇机器人(Nodejs)可以';在Nginx后面的Docker内部运行时,是否不注册webhook? 码头上的毒蛇机器人
使用pm2和docker集装箱启动Viber机器人 包含DockerFile、docker compose和config文件的整个项目 问题是:当我在主机上启动viber机器人时,它就像一个魔咒一样工作。 Bot暴露于端口10022,可在以下位置访问。 代码位于images/bots/viberhost/src/viber/MobstedViberBot.js:49。您甚至可以从源代码运行Node.js 为什么毒蛇机器人(Nodejs)可以';在Nginx后面的Docker内部运行时,是否不注册webhook? 码头上的毒蛇机器人,node.js,docker,nginx,docker-compose,viber,Node.js,Docker,Nginx,Docker Compose,Viber,使用pm2和docker集装箱启动Viber机器人 包含DockerFile、docker compose和config文件的整个项目 问题是:当我在主机上启动viber机器人时,它就像一个魔咒一样工作。 Bot暴露于端口10022,可在以下位置访问。 代码位于images/bots/viberhost/src/viber/MobstedViberBot.js:49。您甚至可以从源代码运行 viberListenerServer.createServer(this.miniapp.middl
viberListenerServer.createServer(this.miniapp.middleware()).listen(params['port'],()=>{
.miniapp.setWebhook(webhookurl).catch(函数(e){
console.warn('未设置WEBHOOK!这里有问题!')
控制台日志(e);
});
});
但我们无法公开所有端口,因此我们将viber bot隐藏在nginx后面。
我们正在主机denis.mbst.xyz上运行nginx。
我们正在将请求从代理到10022端口上运行的本地容器
但当pm2启动器()位于docker内部,viber机器人的主机在nginx后面代理时,它无法设置viber Webhook<但是!同时:Viber机器人可以从外部获得!在那个网址上强>
您可以获取/发布并在viberhost日志中看到它进行了一些日志记录。因此,请求正在到达它。
检查logs/pm2
文件夹中的日志。
但就在同一时刻,nginx inlogs/nginx
说他收到了一条404错误消息(Wtf?!)
172.27.0.1---[2018年8月14日:06:12:44+0000]“POST/bot/20000?sig=f985f3f4b20a9f67e8c4b1849dee6346845dd3c2916f86b8f68a96c418440eef
HTTP/1.1“404149”-“Jetty/9.2.10.v20150310”-”
{\x22event\x22:\x22webhook\x22\x22timestamp\x22:15342271635\x22消息\u令牌\x22:521003603070067031}
-“”-“”-“”
viber机器人正在从viber服务器获取(!)请求,可以看到它,但报告设置webhook失败
如何繁殖
1.建立本地形象
怎么做的
我们将在docker内部运行多个机器人。为了安全起见,,
只有nginx暴露在80和443端口。
但是每个机器人都必须在自己的端口上运行,所以我们在
我们正在将请求从代理到10022端口上运行的本地容器
这是ngnix.conf的线路
location ~/bot/(1[0-9][0-9][0-9][0-9]).
{
resolver 127.0.0.11;
proxy_pass http://viberhost:$1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_max_temp_file_size 0;
proxy_redirect off;
proxy_read_timeout 240s;
}
运行viber机器人的容器
pm2 start ecosystem_test_viber.config.js --env=test
问题
请帮助修复NGINX配置,以便安装webhook时使用alllow viber bot。我认为问题可能在于一些标题,或者
Viber.com-Nginx-Viber机器人之间存在连接问题。。。
请随意评论这种情况
包含DockerFile、docker compose和config文件的整个项目
pm2 start ecosystem_test_viber.config.js --env=test