Назад | Перейти на главную страницу

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 указывал на порт 9090 SSL, / app2 указывал на порт 9091 SSL и / app3 указывал на порт 9092 без SSL. Есть ли простой способ сделать это? Я пробовал добавить 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>

Убедитесь, что следующие модули 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.