部署 Ubuntu 14.04 云端部署后无法访问!

Holy · 发布于 2016年11月04日 · 最后由 xiaogui 回复于 2016年11月05日 · 647 次阅读
96

最近在试用某云的一个小服务器,想搞下部署。入道不久,现在想把自己写的一个小demo放到远程服务器上跑起来。

本地: Ubuntu14.04(desktop)   服务端:ubuntu14.04(server)

现在已经把ROR环境(rvm, ruby, mysql...)和代码弄到服务器上了。

  • 1. 用的rsync同步的代码,
  • 2. 在不使用别的web服务器(Nginx, Passenger, Thin...)的情况下,可否直接进入App目录,通过rails s -b0.0.0.0 -p3000在云服务器上启动项目,然后在本地访问?
    • 可以的话需要怎么访问?比如 我本地是通过 http://localhost:3000/books访问的,访问服务端是http://114.115.116.5:3000/books这样吗?(需要加上项目名吗)
  • 3. 我是按照这个 "Ubuntu 14.04 上使用 Nginx Passenger 部署 Ruby on Rails" 走了一遍,这里有点疑问
    新建网站配置:  touch /etc/nginx/sites-enabled/example.com.conf # 这里配置文件名字随便写的
    编辑 /etc/nginx/sites-enabled/example.com.conf,写入以下内容:
    server {
        listen 80 default;                        # 端口没动
        server_name example.com;                  # 这里我写的是ip
        root /var/www/example.com/current/public; # 这里写的是项目的路径的public目录
        passenger_enabled on;
    }
    重启 nginx:  sudo service nginx restart
    完成: 在浏览器打开服务器的 IP 地址或域名,应该看到你的网站在运行。

    本地访问没看到什么效果,一致是在连接中。配置有问题吗?

  • 4. iptables需要专门开启3000端口吗? (ufw是关闭的) 把3000端口加进去后,sudo iptables -L -n里面有ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3000 这个。我用telnet 114.115.116.5 22有返回,但是telnet那个3000端口不通。
  • 5. 以上都是针对服务器端的操作,本地机需要怎么配合吗?
共收到 3 条回复
96
回2

可以直接通过 rails s -b0.0.0.0 -p3000 把服务器上的程序运行,然后在本地通过 114.115.116.5:3000/books访问(之前本地环境下是通过 localhost:3000/books访问的) , 不过这种方式只适用于自己或者少数几个人用,不适用于广大用户,没有真正意义上的实用价值。我这里只是为了验证下之前的操作是否有误,以便进行下一步的操作。

回4:

【请先确保能 ping 通服务器端的ip,不能的话可以搜索下 ICMP协议,确保服务器端有这个协议】
【端口开启的话,也需要在服务器端控制台进行相应设置(我这里服务器端没有配置iptables端口,只是在控制台上添加了 TCP协议 -入方向-3000端口-0.0.0.0的协议,可能不同服务器控制台配置不太一样)】
【注意:上面 -p 的端口是可以自己指定的。我之前服务器上的项目跑不起来,折腾了两天,问了好多"很懂"的人,各种搜索、调端口、防火墙,最后问了客服,才知道是需要在所使用的云服务器上进行相应的配置】 2016-11-05 00:51:29

23530

云服务器推荐AWS,应该是大部分的原型。主机外还有一层防火墙,要配相应的安全策略。仅配置主机不够。

32 Holy 关闭了讨论 11月12日 15:40
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册