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

Запуск приложения Node js на поддомене сервера Apache 2.4

Я пытаюсь запустить приложение Node js на порту 8000 и использовать прокси Apache 2.4.7 в качестве поддомена для этого порта на localhost. Я могу получить приложение узла как страницу ( http://example.com/nodeapp ) с помощью одного VirtualHost, используя файл conf с поддержкой сайтов, как показано ниже:

<VirtualHost *:80>
        ServerName example.com
        ServerAlias "www.example.com"
        DocumentRoot "/var/www/html"
        ProxyPass "/nodeapp" "http://localhost:8000/"
</VirtualHost> 

Однако что я действительно хочу сделать, так это запустить приложение узла в поддомене, например http://nodeapp.example.com, и вот здесь у меня проблемы. Я пробовал кучу разных конфигураций с одним и несколькими VirtualHosts, но вот как выглядит мой текущий:

<VirtualHost nodeapp.example.com:80>
        ServerName "nodeapp.example.com"
        # ProxyPreserveHost On
        ProxyPass "/" "http://localhost:8000/"
        # ProxyPassReverse "/" "http://localhost:8000/"
</VirtualHost>

<VirtualHost *:80>
        ServerName example.com
        ServerAlias "www.example.com"
        DocumentRoot "/var/www/html"
</VirtualHost>

Это основано на вопросе, заданном здесь:
Использование Apache VirtualHost для доступа к экземпляру Node JS на том же сервере

Однако, когда я перехожу на поддомен (который я настраиваю на GoDaddy, чтобы просто пересылать на тот же IP-адрес сервера), я просто получаю тайм-аут, и если я смотрю в журнал ошибок apache, я вижу несколько строк вроде:

[Tue Mar 29 04:53:56.909467 2016] [core:notice] [pid 15912] AH00094: Command line: '/usr/sbin/apache2'
[Tue Mar 29 04:56:33.332390 2016] [proxy:error] [pid 15917] (111)Connection refused: AH00957: HTTP: attempt to connect to 127.0.0.1:8000 (localhost) failed
[Tue Mar 29 04:56:33.332441 2016] [proxy:error] [pid 15917] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 60s

Я действительно не совсем уверен, где я ошибаюсь, но любая помощь будет принята с благодарностью!

Вот что я использую:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName sub.example.com

    DocumentRoot /var/www/html
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error-sub.example.com.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access-sub.example.com.log combined
    # sub:
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass / http://example.com:8000/
    ProxyPassReverse / http://example.com:8000/
</VirtualHost>