如何在openSUSE上使用NGINX或Apache2将端口80重新路由到localhost:3000,以便我可以运行Node.js应用

时间:2018-12-15 03:58:17

标签: javascript node.js linux apache2 opensuse

如问题声明所述,我正在运行openSUSE(42.3版)。我有一个要在localhost:3000上运行的节点应用程序,我希望将其发布(使其可供网络外部的人使用)。我已经有一个域,并且目前,文件是由端口80上的apache2提供的。我在网上发现了大量类似的问题及其解决方案,但这些问题都不是我的特定问题(我认为是由于操作系统的缘故)。谁能给我逐步解决我必须要做的事情?

我发现的第一个解决方案告诉我更改配置文件,这是我现在拥有的:

<VirtualHost *:80>
   ServerName test.mytestsitebyrichard.com
   ServerAlias *.test.mytestsitebyrichard.com
   DocumentRoot /srv/www/htdocs
  #ProxyRequests on <--currently commented but this is what online tutorials told me to do. However, it is crashing the apache2
  #ProxyPass /cs/ http://localhost:3000/
</VirtualHost>

我需要启用任何功能吗?我已经从配置菜单启用了ProxyPassProxyPassReverse。任何帮助,将不胜感激。谢谢。

注意,请参考以下屏幕截图: enter image description here enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

您可以在Nginx中使用反向代理来实现。

在您的/etc/nginx/sites-enabled/目录中,添加具有以下配置的新配置文件(例如myapp.conf):

server {
    listen 80;
    server_name yoururl.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }   
}