我有一款风帆应用。我在AWS中运行这个应用程序。当我在开发模式下运行代码(帆、举-详细)时,它工作得很好。我可以通过浏览器bye访问它,输入Ip和端口编号(xx.x.xxx.xx:1337/)。但是,当我在生产模式下运行代码(sails production )时,我无法通过ip(xx.xx.xxx.xx)访问,当我尝试使用xx.xx.xxx.xx:1337时,它会给出以下错误。
Grunt :: Done, without errors.
Unable to parse HTTP body- error occurred:
Error: Redis connection to 10.130.212.246:6379 failed - connect ETIMEDOUT
at RedisClient.flush_and_error (/home/ubuntu/vka/node_modules/sails/node_modules/connect- redis/node_modules/redis/index.js:142:13)
at RedisClient.on_error (/home/ubuntu/vka/node_modules/sails/node_modules/connect-redis/node_modules/redis/index.js:180:10)
at Socket.<anonymous> (/home/ubuntu/vka/node_modules/sails/node_modules/connect-redis/node_modules/redis/index.js:95:14)
at Socket.emit (events.js:95:17)
at net.js:441:14
at process._tickDomainCallback (node.js:492:13) [Error: Redis connection to 10.130.212.246:6379 failed - connect ETIMEDOUT]
Unable to parse HTTP body- error occurred:
Error: Redis connection to 10.130.212.246:6379 failed - connect ETIMEDOUT
at RedisClient.flush_and_error (/home/ubuntu/vka/node_modules/sails/node_modules/connect-redis/node_modules/redis/index.js:142:13)
at RedisClient.on_error (/home/ubuntu/vka/node_modules/sails/node_modules/connect-redis/node_modules/redis/index.js:180:10)
at Socket.<anonymous> (/home/ubuntu/vka/node_modules/sails/node_modules/connect-redis/node_modules/redis/index.js:95:14)
at Socket.emit (events.js:95:17)
at net.js:441:14
at process._tickDomainCallback (node.js:492:13) [Error: Redis connection to 10.130.212.246:6379 failed - connect ETIMEDOUT]请提出一个可能的解决方案。
发布于 2015-12-05 15:20:50
检查是否正在用ip硬编码session.js中的主机,将其更改为localhost。
关于如何在没有端口1337的情况下访问的问题,您需要设置一个反向代理,比如NginX,打开端口80进行公共访问,配置nginx将传入端口80的请求路由到运行在端口1337上的sails应用程序,使用pm2或forever之类的工具运行sails应用程序。
将NginX设置为反向代理的步骤在这里解释:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-14-04
https://stackoverflow.com/questions/34081962
复制相似问题