Я пытаюсь запустить приложение 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>