ProxyPass: перенаправить URL-адрес каталога на нестандартный порт
Я искал Google и не имел большого успеха в поиске ответа. Я использую сервер в Ubuntu, и у меня установлены программы, использующие различные нестандартные порты. Каждый из них использует свой порт, в моем случае это 9090, 9091, 9092, 9093 и 9094. Я настроил сервер Apache и имею доменное имя, которое теперь может достигать моего сервера вместо того, чтобы вводить мой IP-адрес. То, что я ищу, - это способ создания каталогов, которые могут указывать на разные порты, которые я перечислил. Я хочу что-то вроде:
https://www.mydomain.com/app1 https://www.mydomain.com/app2 http://www.mydomain.com/app3
Некоторые порты по SSL, некоторые нет, я просто привел их в порядок (9090-9094) для удобства использования с моей стороны. Мне бы хотелось, чтобы / app1 указывал на SSL-порт 9090, /app2 - на SSL-порт 9091, а / app3 - на не-SSL-порт 9092. Есть ли простой способ сделать это? Я пытался добавить ProxyPass и тому подобное на основе других сообщений, но ничего не помогло. Нужно ли добавлять новый сайт?
Кроме того, если это связано с редактированием файлов, что, как я ожидаю, произойдет, было бы очень полезно, если бы вы могли указать местоположение файла по умолчанию и куда добавлять вещи. Я продолжал видеть сообщения, в которых говорилось о добавлении ProxyPass, поэтому я просто предполагал, что это происходит внутри VirtualHost, но я не был полностью уверен. По сути, я очень мало знаю о настройке веб-сервера, и мне нужно относиться к нему как к такому.
Я прошу прощения за любые неправильные теги, и я ценю время, которое вы потратили на чтение поста и любую помощь, которую вы можете предоставить.
РЕДАКТИРОВАТЬ: Для пояснения, приложения уже доступны через https://www.mydomain.com:9090
и т. д. Я просто хотел бы использовать способ https://www.mydomain.com/appName
чтобы добраться до того же места / страницы, опубликованной этими приложениями.
РЕДАКТИРОВАТЬ 2: Из /etc/apache2/sites-available/default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /app1 https://localhost:9090/
ProxyPassReverse /app1 https://localhost:9090/
</VirtualHost>
1 ответ
Убедитесь, что установлены и загружены следующие модули apache:
mod_proxy
mod_proxy_http
mod_ssl
Вы можете проверить, выполнив следующую команду от имени пользователя root(при условии, что httpd находится в вашем $PATH)
httpd -t -D DUMP_MODULES
После этого попробуйте изменить вашу конфигурацию следующим образом:
ProxyRequests Off
<Proxy *>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Proxy>
SSLProxyEngine on
ProxyPass /app1 https://localhost:9090
ProxyPassReverse /app1 https://localhost:9090
Прокси должен теперь работать, если вы посещаете http://localhost/app1
или же http://mydomain.com/app1
при условии, что mydomain.com указывает на localhost.