Jquery 如何通过internet访问web服务器?

Jquery 如何通过internet访问web服务器?,jquery,node.js,web,web-deployment,Jquery,Node.js,Web,Web Deployment,我使用node.js创建了一个基本的web服务器,它监听桌面上的端口3000。它提供静态HTML文件(实际上是jQuery移动文档) 我可以使用http://127.0.0.1:3000/ 我希望能够通过互联网从我的手机访问该网站 有什么方法可以做到这一点吗?查看路由器上的端口转发。将HTML请求的端口向前设置为3000。然后找出路由器的IP地址 然后使用http://[routerIP]:port/访问您的站点 祈祷您不要因为在没有安全保护的情况下打开该端口而受到疯狂的黑客攻击。灵活的解决方案

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

我可以使用
http://127.0.0.1:3000/

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


有什么方法可以做到这一点吗?

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

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

祈祷您不要因为在没有安全保护的情况下打开该端口而受到疯狂的黑客攻击。

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

。要使用它:

  • npm安装-g localtunnel
  • lt—端口3000
  • 共享它提供的url
  • 反对在生产中使用it的理由:

  • 你们依赖中间服务的良好意愿。客户端将与该“隧道”通信,谁知道它是在嗅探敏感数据,还是在注入一些信息。可能不会,但你永远不会得到保证
  • 此隧道服务的停机时间将影响您。因为它是免费的,我希望它的服务质量和你付的钱一样高
  • 这些localhost隧道的总体思想是为了简化开发过程。让你的朋友看到这个网站并给出反馈,而不费吹灰之力。通过隧道运行高负载网站甚至可能违反他们的政策

  • 我喜欢使用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";
    }
    

    你试图做的不是一个安全的选择
    当您使用nodejs时,您是否考虑过将您的应用程序部署为PaaS平台heroku.com

    列出的选项都是功能性的,但不推荐使用:您需要使用外部服务来提供您的文件。

    好的,老问题,但对于未来的我,您现在可以使用

    安全隧道到本地主机

    “我想向internet公开NAT或防火墙后面的本地服务器。”


    当然不是为了制作,但是非常适合开发Webhook

    似乎OP已经有了一台使用node.js运行的服务器;我想问题是如何从本地机器/网络外部访问它。我误解了。我以为他想在3000端口上运行他的应用程序,但可以从互联网上访问。为什么这不是为了生产?localtunnel的安全性如何?它基本上与用作服务器的任何东西(在本例中为node.js)一样安全,还是存在其他风险?比在路由器上打开端口转发更安全?每次运行server.js.server.listen(3000,function(){console.log('server listening at port 3000');localtunnel(3000,function(err,tunnel){if(err)console.log('error setuping tunnel to localhost')时,我都使用节点API来生成一个隧道,而不是命令行else console.log(“可访问的站点:“+tunnel.url”);});将代码添加到应用程序中确实是自动化的一个进步@为什么不建议生产?在我的回答中添加了一些想法。很好的理由。对这种方法的安全性有什么想法吗?