У меня есть приложение в Node.js, которое работает на порту 3010 (domain.com:3010). Можно ли запустить его на порт 80 (domain.com)?Node.js на порту 80
У меня есть сервер VPS с CentOS. Я много искал, но ничего не сработало.
У меня есть приложение в Node.js, которое работает на порту 3010 (domain.com:3010). Можно ли запустить его на порт 80 (domain.com)?Node.js на порту 80
У меня есть сервер VPS с CentOS. Я много искал, но ничего не сработало.
Вы можете создать виртуальный хост, как описано на 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>
Спасибо! Это то, что я искал. –
Эй, это потрясающе, я получил его за 5 минут, но запрос POST не работает, это только для GET или я чего-то не хватает? – pjnovas
Вы можете изменить порт в конфигурациях приложений или настроить порты для ответа, как вы хотите на своем маршрутизаторе.
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;
}
}
У вас есть доступ к исходному коду приложения? – etienne
Да, но я не могу перейти на порт 80, потому что он используется Apache –
. Затем у вас есть запросы перенаправления Apache на 80 до 3010. У вас определенно не может быть несколько серверов, прослушивающих один и тот же порт! – etienne