ExpressJS Server - 使用共享端口响应主机头

时间:2016-02-08 21:50:46

标签: node.js express

假设我corporatewebsite.com正在侦听端口80.这是一个appache / WordPress网站。

我有一个节点应用程序,我想回复sub.corporatewebsite.com

节点应用程序当前正在运行Express。我现在可以让它听一个单独的端口,但如果指向端口80,我的服务将无法启动,因为它已经在使用。

如何让apache和节点都监听端口80,但让节点响应子域?

1 个答案:

答案 0 :(得分:1)

您可以使用像Nginx这样的反向代理来路由您的子域。

以下是nginx配置的示例,您可能需要根据您的项目和服务器完成:

server {
    listen          80;
    server_name     corporatewebsite.com;

    location / {
        [ ... some parameters ... ]
        include         proxy_params; // Import global configuration for your routes
        proxy_pass      http://localhost:1234/; // One of your server that listens to 1234
    }
}

server {
    listen          80;
    server_name     sub.corporatewebsite.com;

    location / {
        [ ... some parameters ... ]
        include         proxy_params;
        proxy_pass      http://localhost:4567/; // The other server that listens to 4567
    }
}

例如,当nodejs正在侦听端口4567时,您必须配置apache2侦听端口1234。

如果你喜欢这样,一个好的做法是阻止从外部直接访问你的端口1234和4567(例如使用iptables)。

我认为这篇文章可能对您有用:Node.js + Nginx - What now?