Назад | Перейти на главную страницу

Обратный прокси nginx для Apache и приложения Node

У меня есть 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;
  }

}