Rails 在 linode tokyo 做微博登陆

larryzhao · 2012年08月22日 · 最后由 lilu 回复于 2013年03月16日 · 4393 次阅读

最近在自己的 project 里面用omniauth-weibo-oauth2加上了 weibo 登陆,在 dev 和 staging(staging 是房间里的另一台机器,和 dev 网络环境是一样的,但是系统环境是跟 production 一样的) 上都没有什么问题。但是步部署到 production 环境 (是在 linode tokyo 的 vps) 上之后,weibo 登陆点击授权之后就会出现:

Started GET "/auth/weibo/callback?state=f87bf3cbe5cea5e15f90df8c76e11f0f65ebfbd9333c557a&code=63809670a226bc5cfdcae0f128e8f722" for 173.224.215.131 at 2012-08-22 12:03:34 +0800

Faraday::Error::ConnectionFailed (end of file reached):
  /usr/local/rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/openssl/buffering.rb:145:in `sysread_nonblock'
  /usr/local/rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/openssl/buffering.rb:145:in `read_nonblock'
  /usr/local/rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/net/protocol.rb:135:in `rbuf_fill'

然后我在生产环境rails console也手动试验了一下,

$ bundle exec rails c production
Loading production environment (Rails 3.2.3)
1.9.2p320 :001 > @conn = Faraday.new(:url => 'https://api.weibo.com') do | c|
1.9.2p320 :002 >     c.use Faraday::Request::UrlEncoded
1.9.2p320 :003?>   c.use Faraday::Response::Logger
1.9.2p320 :004?>   c.use Faraday::Adapter::NetHttp
1.9.2p320 :005?>   end
 => #<Faraday::Connection:0x00000005d60998 @headers={}, @params={}, @options={}, @ssl={}, @parallel_manager=nil, @default_parallel_manager=nil, @builder=#<Faraday::Builder:0x00000005d60830 @handlers=[Faraday::Request::UrlEncoded, Faraday::Response::Logger, Faraday::Adapter::NetHttp]>, @url_prefix=#<URI::HTTPS:0x00000005d60560 URL:https://api.weibo.com/>, @proxy=nil> 
1.9.2p320 :006 > response = @conn.get '/auth/weibo/callback?state=f87bf3cbe5cea5e15f90df8c76e11f0f65ebfbd9333c557a&code=63809670a226bc5cfdcae0f128e8f722'
get https://api.weibo.com/auth/weibo/callback?state=f87bf3cbe5cea5e15f90df8c76e11f0f65ebfbd9333c557a&code=63809670a226bc5cfdcae0f128e8f722

迟迟得不到返回。

想问一下有用 Linode Tokyo 的朋友也碰到这样的情况么?这是因为 Linode Tokoy -> Weibo 的网络问题导致的么?

求教

我也碰到了这个问题,时好时坏,我怀疑是不是被墙的关系啊

具体 weibo 连接我没用过,但是应该是墙的原因,我自己也有应用有时候无法访问但是翻墙之后就好了的情况 哎。。。天朝

既然要连 Weibo 安安心心备案,在国内跑好了

我的正常~

我也是东京的,没有问题。但是貌似部分被墙.不知你的为何

可能是 GFW 的问题,你在有问题的机器上运行:mtr --report api.weibo.com 看看是否在进入国内主干网的时候有丢包。

#6 楼 @quakewang 学了个新命令 mtr 我在 linode 里执行提示:mtr: unable to get raw sockets.

linode 近期有问题,有的服务器都挂掉了

@quakewang 求教

$ mtr --report api.weibo.com HOST: vienna Loss% Snt Last Avg Best Wrst StDev 1.|-- 106.187.33.2 0.0% 10 5.7 4.1 0.4 22.7 7.1 2.|-- 124.215.199.121 0.0% 10 1.6 5.6 0.5 13.3 4.6 3.|-- 59.128.4.121 0.0% 10 1.6 1.7 1.6 2.7 0.3 4.|-- tr-ote124.kddnet.ad.jp 0.0% 10 2.0 2.1 1.8 2.2 0.1 5.|-- 118.155.194.178 0.0% 10 182.1 171.3 160.0 182.1 6.1 6.|-- 202.97.33.6 0.0% 10 184.5 171.8 162.7 184.5 6.5 7.|-- 202.97.35.97 0.0% 10 183.1 172.8 161.7 183.1 6.1 8.|-- 202.97.33.9 0.0% 10 184.8 173.4 166.2 184.8 6.2 9.|-- 202.97.34.133 0.0% 10 221.8 199.5 191.8 221.8 9.1 10.|-- 180.149.128.26 0.0% 10 204.5 201.3 189.4 212.3 7.9 11.|-- 180.149.128.46 0.0% 10 205.5 199.0 191.2 211.0 6.2 12.|-- 180.149.129.10 10.0% 10 208.6 196.4 190.5 208.6 5.2 13.|-- 180.149.135.230 10.0% 10 205.1 195.8 188.0 205.1 4.9

#11 楼 @larryzhao 在进入 202.97 国内骨干网的时候没有丢包,看上去是正常的,不是 GFW 的问题。 虽然后面 180.149.129 段有 10% 丢包,但是这个已经是在 ISP 机房内了,也是正常的。

建议你在出现无法访问的时候,再试试看,我还是怀疑 GFW 间歇性发威导致的。

@quakewang 十分感谢,今天又测试了几次,的确是间歇性的。

我也是用的 linode,今天上午同样问题,持续半小时左右

需要 登录 后方可回复, 如果你还没有账号请 注册新账号