从Digital Ocean Droplet外部访问节点应用程序还需要什么?

时间:2017-10-08 15:51:58

标签: node.js nginx ubuntu-16.04 digital-ocean

我们已经设置了一个在端口5000上运行的节点服务器。

newly created droplet中,我们有installed and started nginx。要访问节点应用,我们已在/etc/nginx/sites-enabled/default

中将默认端口从80更改为5000
server {
        listen 5000 default_server;
        listen [::]:5000 default_server;

ufw is enabled

sudo ufw enable

另外the port is enabled

sudo ufw allow 5000/tcp

另外,也尝试过这种方式:

sudo ufw allow 5000

已通过sudo ufw status

确认

sudo ufw status

netstat -ntlp

netstat -ntlp

另外the app is configured to listen on the public interface

const server = app.listen(process.env.PORT || 5000, '0.0.0.0', () => {
    console.log('Express server listening on port %d in %s mode', server.address().port, app.settings.env);
});

但是,甚至默认端口都没有响应。因此,我们将其恢复为80作为默认端口。

在Droplet之外访问节点应用还需要什么?

1 个答案:

答案 0 :(得分:0)

说到NodeJS和NGINX,我们要配置NGINX来监听端口80,尽管我们要使用proxy_pass来传递来自Web服务器的请求(NGINX) )运行应用程序的端口上的NodeJS应用程序。这将允许我们将端口保留在URL之外。

使用当前配置,NGINX将侦听端口5000,这将阻止应用程序在同一端口上侦听(反之亦然)。

有一个很好的指南,涵盖了设置NodeJS + NGINX - 这个特定部分是最重要的:

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16-04#set-up-nginx-as-a-reverse-proxy-server

以上介绍了我们如何设置服务器块: - )