У меня установлена виртуальная конечная точка sparql, которую я хочу сделать доступной через имя хоста (например, www.virtuosoexample.com). Проблема с виртуозом в том, что это не корень документа. Конечная точка инициируется демоном и становится доступной через исходный порт (например, localhost: 1234 /).
Я знаю, как настроить виртуальный хост, указывающий на корень документа, но я не знаю, как это сделать для сервера с номером порта.
Любой совет будет принят во внимание.
Ниже приведен код, как я бы это сделал с корнем документа.
Я попытался (наивно) изменить это на localhost: 1234 / sparql, но это не сработало
<VirtualHost *>
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>
Вы бы не сделали этого, используя 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