ruby-on-rails – 欺骗Rails应用程序认为它在不同的端口上
发布时间:2020-12-17 03:44:35 所属栏目:百科 来源:网络整理
导读:我有一个在端口8080上运行的Rails应用程序,我需要欺骗它认为它在端口80上运行. 我在端口80上运行Varnish并在端口8080上将请求转发到nginx,但是当用户尝试使用OmniAuth登录并且Devise gem生成一个URL以重定向回服务器时,它认为它在端口8080上然后用户将看到.
我有一个在端口8080上运行的Rails应用程序,我需要欺骗它认为它在端口80上运行.
我在端口80上运行Varnish并在端口8080上将请求转发到nginx,但是当用户尝试使用OmniAuth登录并且Devise gem生成一个URL以重定向回服务器时,它认为它在端口8080上然后用户将看到. 有没有办法欺骗Rails应用程序将端口硬编码为80(我认为这是一个不好的做法),或者让nginx转发请求,就好像它在端口80上运行一样? 由于我没有在Rails应用程序上运行nginx代理,所以我想不出一种欺骗端口的方法. 有没有人遇到过这个问题,如果有的话需要什么样的配置来解决它? 提前致谢! 编辑: 解决方法
我在端口80上使用Varnish,在端口8080上使用nginx,而OmniAuth(没有设计)的设置完全相同.我尝试在Varnish和fastcgi_param SERVER_PORT 80中设置X-Forwarded-Port等;在nginx中,都没有成功.我的设置中的另一件是乘客(你没有提到),但如果你确实使用了乘客,那么你可以使用:
passenger_set_cgi_param SERVER_PORT 80; (文档说你可以在一个http块中设置它,但这对我不起作用,我不得不将它添加到服务器块.) http://modrails.com/documentation/Users%20guide%20Nginx.html#passenger_set_cgi_param (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |