【问题标题】:Node application running at IP and port, how to link to URL在 IP 和端口上运行的节点应用程序,如何链接到 URL
【发布时间】:2016-02-29 21:24:32
【问题描述】:

我有一个在 VPS 上运行的 node express 应用程序,可以通过公共 IP 和端口号访问。

我买了一个域名。

如何将我的域名定向到我的节点应用程序?

服务器正在运行 Node.js 版本 v0.10.42

【问题讨论】:

  • 最好不要在网络上公开你的ip地址,你可以匿名或者说你有一个公共ip和端口就够了
  • 哪个版本的节点?
  • @dubes 谢谢 - 更新
  • @dubes - 愚蠢的是,公共 IP 地址是任何类型的秘密。它本质上是公开的。无论如何,这都不是秘密。而且,一旦它与域挂钩,您将域传播给的任何人都可以在 DNS 中查找相应的 IP 地址。
  • 这个问题是关于 DNS 配置的,而不是关于堆栈溢出的编程主题,因此这里是题外话 - 投票结束作为题外话。

标签: node.js express server vps


【解决方案1】:

出于安全原因,您不想以 root 身份运行您的应用程序,并且端口 80 是为超级用户保留的,所以我建议像往常一样运行您的应用程序(express 使用端口 3000),然后使用 nginx 进行反向代理。

1.- 请求来自端口 80。

2.- nginx 读取标头并根据配置的域知道将其重定向到哪里。

3.- nodejs 应用程序在应用程序端口(可能是 3000)上收到请求并做出响应。

4.- nginx 将响应重定向到客户端。

如果你需要,我可以为 nginx 添加一个配置文件:D。

【讨论】:

  • 非常感谢,这让我朝着正确的方向前进,我确实花了好几个小时和几个小时!我想知道您是否可以快速查看我的配置文件
  • nginx.conf: ``` 用户 asykes; error_log /var/log/nginx/error.log 警告; worker_rlimit_nofile 20480;事件 {worker_connections 5120; # 增加繁忙的服务器使用 epoll; # 对于 Linux 内核 2.6.x,你应该在这里使用 epoll } http{ include "/etc/nginx/sites-enabled/*"; } ``` 网站可用/sentiment-sweep.conf ``` 服务器 { 听 80; server_name 情感-sweep.com;位置 / { proxy_pass localhost:3000; } } ```
  • 目前,我服务器上的所有域现在都重定向到运行在 :3000 的节点应用程序,我只需要它是重定向到此应用程序的一个域。理想情况下,其他所有内容都应该重定向到 Apache(在 :8081 上运行),但我一辈子都无法让它工作:( 有什么想法吗?再次感谢
【解决方案2】:

您需要一个 DNS 服务来将您的主机名映射到您的静态 IP。更多详情请参考本帖:https://serverfault.com/questions/148987/how-can-i-map-my-servers-domain-to-my-ip-address

大多数情况下,DNS 服务提供商将能够为您提供帮助。

【讨论】:

    【解决方案3】:

    这不是 nodejs 或表达特定问题或问题。如何将 DNS 与 IP 相关联取决于您购买的 DNS 记录的提供商。例如,如果您将 DNS 记录发送给 GoDaddy,您必须为此目的使用其 administration panel,依此类推。阅读您购买 DNS 域记录的公司页面上的文档。

    【讨论】:

      猜你喜欢
      • 2017-01-21
      • 1970-01-01
      • 2018-01-12
      • 2021-04-04
      • 2016-05-20
      • 1970-01-01
      • 2021-08-19
      • 2018-02-10
      • 2020-01-26
      相关资源
      最近更新 更多