如何通过互联网访问Web服务器?

时间:2014-06-10 20:27:38

标签: jquery node.js web web-deployment

我使用node.js创建了一个基本的Web服务器,它监听桌面上的端口3000。它提供静态HTML文件(实际上是jQuery移动文档)。

我可以使用http://127.0.0.1:3000/访问本地主机(我的Windows 7桌面)上的网站。

我希望能够通过互联网从我的手机访问该网站。

有没有办法可以做到这一点?

5 个答案:

答案 0 :(得分:2)

灵活的解决方案(不是用于生产,但是很简单,而且不需要配置路由器)正在使用localhost隧道服务,因为您在node.js上,已经有一个可用:

localtunnel。使用它:

  1. npm install -g localtunnel
  2. lt --port 3000
  3. 分享它提供的网址
  4. 反对在生产中使用它的推理:

    1. 你依靠中间服务的善意。客户端将与该“隧道”进行通信,谁知道它是否正在嗅探敏感数据,或者注入一些信息。可能不会,但你永远不会得到保证。
    2. 此隧道服务的停机时间会对您产生影响。由于它是免费的,我希望服务质量和您支付的金额一样高。
    3. 这些localhost隧道的总体思路是为了更容易的开发过程。让您的朋友看到​​网站,并提供反馈,没有太多的麻烦。通过隧道运行高负荷网站甚至可能违反他们的政策。

答案 1 :(得分:1)

好的,旧问题,但对于将来我,你现在可以使用ngrok

  

保护隧道到localhost

     

“我想将NAT或防火墙后面的本地服务器暴露给互联网。”

当然不是为了制作,而是完善开发webhooks!

答案 2 :(得分:0)

查看路由器上的端口转发。将HTML请求的前端设置为3000.然后找出路由器的IP地址。

然后使用http://[routerIP]:port/访问您的网站。

并祈祷你不要因为没有安全保护而打开那个端口而疯狂。

答案 3 :(得分:0)

我喜欢使用nginx,这是一个例子。

upstream app_myapp {
server 127.0.0.1:8080;
}

server {
listen 0.0.0.0:80;
server_name www.myhost.com myhost.com;

location / {
    auth_basic "Restricted";
    proxy_set_header X-Real-IP $remote_addr;
    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_pass http://app_myapp/;
    proxy_redirect off;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

答案 4 :(得分:0)

您要做的不是安全可靠的选择。
在您使用nodejs时,您是否考虑将应用程序部署为PaaS平台作为heroku.com?
列出的选项都是可用的,但不推荐:您需要使用外部服务来提供文件。