Прокси передает приложение с другого компьютера на веб-сервер Apache - PullRequest
1 голос
/ 11 апреля 2019

У меня три запущенных приложения, 2 на локальном компьютере / сервере, на котором установлен Apache, и 1 на другом компьютере / сервере. Я использую Apache2.4 на Ubuntu 18.04

application 1(yii) = 127.0.0.1:80 
application 2(mantis bt) = 127.0.0.1:8080
application 3(yii) = 192.168.X.X:80

Я хочу настроить свой веб-сервер apache для размещения трех приложений по протоколу https. Я передаю по доверенности app2 и app3.

app2 = /app2 http://127.0.0.1:8080
app3 = /app3 http://192.168.X.X

app1 может быть успешно доступен без ошибок, Доступ к приложениям app2 и app3 возможен, но файлы .css, .js и другие файлы не найдены, ошибка 404.

Примечание: я могу получить доступ ко всем трем приложениям, когда не на прокси-сервере.

также возможно разместить три приложения и иметь URL-адрес, подобный следующему:
https://app1.example https://app2.example https://app2.example

Я новичок в Apache. Пожалуйста, помогите мне.

Ответы [ 2 ]

2 голосов
/ 11 апреля 2019

Сконфигурируйте виртуальный хост apache, как показано ниже:

Для приложения2

<Virtualhost *:80>
     ServerName app2.domain.com
     ServerAdmin youremail@email.com

     ProxyPass http://127.0.0.1:8080/
     ProxyPassReverse http://127.0.0.1:8080/
</Virtualhost *:80>

Для приложения3

<Virtualhost *:80>
     ServerName app3.domain.com
     ServerAdmin youremail@email.com

     ProxyPass http://192.168.X.X/
     ProxyPassReverse http://192.168.X.X/
</Virtualhost *:80>

Создайте отдельный виртуальный хост для обоих доменов.

После создания виртуального хоста перезапустите apache

service apache2 restart

Он работает для меня, надеюсь, он будет работать для вас и загрузит .css,.js и другие файлы.

Если вы хотите перенаправить aap3 на https, ваш окончательный файл виртуального хоста будет выглядеть примерно так:

<Virtualhost *:80>
     ServerName app2.domain.com
     ServerAdmin youremail@email.com

     ProxyPass http://127.0.0.1:8080/
     ProxyPassReverse http://127.0.0.1:8080/
</Virtualhost *:80>

<Virtualhost *:80>
     ServerName app3.domain.com
     Redirect / https://app3.domain.com/
</Virtualhost *:80>

<IfModule mod_ssl.c>
<VirtualHost *:443>
     ServerName app3.domain.com
     ServerAdmin youremail@email.com

     ProxyPass http://192.168.X.X/
     ProxyPassReverse http://192.168.X.X/

     Include /etc/letsencrypt/options-ssl-apache.conf
     ServerAlias app3.domain.com
     SSLCertificateFile /etc/letsencrypt/live/app3.domain.com/fullchain.pem
     SSLCertificateKeyFile /etc/letsencrypt/live/app3.domain.com/privkey.pem
</VirtualHost>
</IfModule> 
0 голосов
/ 11 апреля 2019

Пожалуйста, проверьте мой конфиг ниже: DocumentRoot / var / www / html / app1 ErrorLog / var / log / httpd / app1_log LogLevel debug

<Directory /var/www/html/app1>
AllowOverride none
Order allow,deny
Allow from all
RewriteCond %{ENV:REDIRECT_STATUS} ^$
# use mod_rewrite for pretty URL support
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
</Directory>

ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On

<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>

<Location /app2>
    ProxyPass http://127.0.0.1:8080/login_page.php
    ProxyPassReverse http://1127.0.0.1:8080/login_page.php
    SetEnv              proxy-sendchunks 1
</Location>

<Location /app3>
    ProxyPass http://192.168.X.X/
    ProxyPassReverse http://192.168.X.X/
    SetEnv              proxy-sendchunks 1
</Location>

<Location /static/>
   ProxyPass !
</Location>
</VirtualHost>
<VirtualHost *:443>
  SSL Configuration
</VirtualHost> 
...