2013-02-19 5 views
0

У меня есть приложение в Node.js, которое работает на порту 3010 (domain.com:3010). Можно ли запустить его на порт 80 (domain.com)?Node.js на порту 80

У меня есть сервер VPS с CentOS. Я много искал, но ничего не сработало.

+0

У вас есть доступ к исходному коду приложения? – etienne

+0

Да, но я не могу перейти на порт 80, потому что он используется Apache –

+2

. Затем у вас есть запросы перенаправления Apache на 80 до 3010. У вас определенно не может быть несколько серверов, прослушивающих один и тот же порт! – etienne

ответ

1

Вы можете создать виртуальный хост, как описано на this article

<VirtualHost *:80> 
    ServerName node.mydomain.com 
    ProxyRequests off 
    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 
    <Location /> 
     ProxyPass http://localhost:3010/ 
     ProxyPassReverse http://localhost:3010/ 
    </Location> 
</VirtualHost> 
+0

Спасибо! Это то, что я искал. –

+0

Эй, это потрясающе, я получил его за 5 минут, но запрос POST не работает, это только для GET или я чего-то не хватает? – pjnovas

0

Вы можете изменить порт в конфигурациях приложений или настроить порты для ответа, как вы хотите на своем маршрутизаторе.

1

IMO, лучше использовать Nginx вместо Apache перед Node.js. Пример конфигурации (мой /etc/nginx/conf.d/default.conf файл)

upstream my-node-app { 
     server 127.0.0.1:3000; 
    } 

    server { 
     listen  80 default_server; 
     #server_name _; 
     server_name www.domain.com domain.com; 


     access_log /var/log/nginx.access.log main; 

     location/{ 
      #root /usr/share/nginx/html; 
      #index index.html index.htm; 
      proxy_pass http://127.0.0.1:3000/; 
     } 

     error_page 404    /404.html; 
     location = /404.html { 
      root /usr/share/nginx/html; 
     } 

     # redirect server error pages to the static page /50x.html 
     # 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root /usr/share/nginx/html; 
     } 


    } 
Смежные вопросы