У меня есть CentOS VPS под управлением Apache. Раньше я просто использовал его для размещения множества PHP и статических HTML-сайтов в разных доменах, и все работало нормально.
Затем я разработал простое приложение Node.js. Я опубликовал его на своем VPS, и он был доступен, если я поставил: 3000 после своего IP.
Я провел небольшое исследование того, как сделать мое приложение Node доступным под новым доменным именем, сохранив при этом конфигурацию Apache, похожую на то, как она есть. Решение похоже на обратное проксирование с Nginx.
В конечном итоге я хочу:
Что у меня сейчас есть:
nginx.conf
user asykes;
error_log /var/log/nginx/error.log warn;
worker_rlimit_nofile 20480;
events {
worker_connections 5120; # increase for busier servers
use epoll; # you should use epoll here for Linux kernels 2.6.x
}
http{
include "/etc/nginx/sites-enabled/*";
}
И для моей конфигурации приложения Node sites-available / sentiment-sweep.conf (с символической ссылкой на site-enabled)
server {
listen 80;
server_name sentiment-sweep.com;
location / {
proxy_pass http://localhost:3000;
}
}
Что это сейчас делает
Все домены на моем сервере разрешаются в мое приложение узла, которое находится на порту 3000.
Мне нужно только http://sentiment-sweep.com/ для разрешения на localhost: 3000, а все остальное - на их версию Apache на revisionquizzes.co.uk:8081/ и http://computerscience.as93.net:8081/ и так далее...
Я часами играл с конфигурацией nginx, добавляя сервер {location {}} для порта Apache, но, похоже, ничего не добился. Самое близкое, что я получил, было, когда он отображал страницу Apache Sorry.
Любые предложения или помощь будут очень признательны, заранее спасибо
Вы должны указать место, где он должен быть проксирован. Предполагая, что ваше доменное имя http://example.com.
Посмотрите маршрут URL-адреса, когда вы получите к ним доступ ниже.
http://example.com --> http://localhost:3000
http://example.com/revisionquizzes --> revisionquizzes.co.uk:8081
http://example.com/computerscience --> http://computerscience.as93.net:8081
Только образец конфигурации, просто определите местоположение в вашей конфигурации nginx:
server {
listen 80;
server_name default_server;
location / {
proxy_pass http://localhost:3000;
}
location /revisionquizzes {
proxy_pass revisionquizzes.co.uk:8081;
}
location /computerscience {
proxy_pass http://computerscience.as93.net:8081;
}
}