Как перенаправить VirtualHost на основе имени в другой порт?
У меня установлена виртуальная конечная точка виртуального сервера sparql, которую я хочу сделать доступной через имя хоста (например, www.virtuosoexample.com). Виртуозность заключается в том, что это не корень документа. Конечная точка инициируется демоном и становится доступной через исходный порт (например, localhost:1234/)
Я знаю, как настроить виртуальный хост, указывающий на корень документа, но я не знаю, как это сделать для сервера с номером порта.
Любой совет будет принят во внимание.
Ниже приведен код, как бы я сделал это с корнем документа.
Я пытался изменить это (наивно) в localhost:1234/sparql, но это не сработало
ServerName www.virtuosoexample.com <www.virtuosoexample.com> ServerAlias www.virtuosoexample.com <www.virtuosoexample.com> ErrorLog /var/log/apache2/error.wp-sparql.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.wp-sparql.log combined DocumentRoot /var/www/endpoint/sparql/ <Directory /var/www/endpoint/sparql> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
VirtualHost>
2 ответа
Вы не сделаете этого, взглянув на Apache DocumentRoot. Вместо этого вы бы использовали mod_proxy
и настроить Apache в качестве обратного прокси.
Вы бы добавили что-то вроде:
ProxyPass / http://localhost:1234/sparql
ProxyPassReverse / http://localhost:1234/sparql
к вашей конфигурации. Убедитесь, что mod_proxy загружен Apache.
Вы можете использовать mod_proxy для этого. Например:
NameVirtualHost *
<VirtualHost *>
ServerName www.virtuosoexample.com
ProxyRequests Off
ProxyPass / http://localhost:1234/
ProxyPassReverse / http://localhost:1234/
</VirtualHost>
Смотрите документацию apache для более подробной информации.
Обратите внимание, что если вы хотите http://www.virtuosoexample.com/
быть прокси http://localhost:1234/sparql
, что вы можете столкнуться с некоторыми проблемами, если ссылки, возвращаемые виртуозом, не являются относительными ссылками. Если это так, вы можете рассмотреть возможность использования mod_proxy_html или mod_substitute