Я искал 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>
источник
<VirtualHost 10.0.0.1:80 > ServerName server.domain.com DocumentRoot /usr/local/apache/htdocs </VirtualHost>
Ответы:
Убедитесь, что установлены и загружены следующие модули apache:
Вы можете проверить, выполнив следующую команду от имени пользователя root (при условии, что httpd находится в вашем $ PATH)
httpd -t -D DUMP_MODULES
После этого попробуйте изменить вашу конфигурацию следующим образом:
Прокси теперь должен работать, если вы посещаете
http://localhost/app1
илиhttp://mydomain.com/app1
предполагаете, что mydomain.com указывает на localhost.источник
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
?ProxyPass /app1/ https://localhost:9090/
и то же самое для ProxyPassReverse, если используется. А во-вторых, добавьте редирект RewriteRule: тогдаRewriteRule ^/app1$ /app1/ [R]
/ app1 не будет проксироваться.