Настройка обратного прокси в Ubuntu

У меня есть два экземпляра Ubuntu 16.04 (LTS) на Amazon ec2. Они находятся в одном виртуальном частном облаке. У меня установлена ​​LAMP на обоих, и я хотел бы иметь возможность вызывать веб-страницу на одной с веб-страницы на другой. В CentOS я просто редактирую /etc/httpd/conf/httpd.conf и добавляю следующую строку

ProxyPass /app1/ http://10.0.1.27/

Затем, после перезапуска Apache с

sudo service httpd restart

Я могу просто ввести следующий код на веб-странице текущего сервера

<li><a href="/app1/Whatever.php">Whatever</a></li>

и веб-страница Whwhat.php на сервере с частным IP-адресом 10.0.1.27 отображается в моем браузере, когда я нажимаю кнопку "Все".

Однако в Ubuntu отсутствует файл /etc/httpd/conf/httpd.conf.

Я попытался настроить обратный прокси, как описано здесь, и ввел следующее в файл /etc/apache2/sites-available/proxy-host.

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html/
  ErrorLog ${APACHE_LOG_DIR}/error.log    
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  ProxyPreserveHost On
  # Servers to proxy the connection, or
  # List of application servers Usage
  ProxyPass /app/ http://10.0.1.27:8080/
  ProxyPass / http://10.0.1.110:8080/
  # ProxyPassReverse / http://server-ip-address:8080/
  ServerName localhost
</VirtualHost>

Я тогда вхожу

sudo a2ensite proxy-ssl-host.conf

и получить

 ERROR: Site proxy-ssl-host does not exist!

Тогда я вхожу

sudo a2ensite /etc/apache2/sites-available/proxy-host

и получить

ERROR: Site /etc/apache2/sites-available/proxy-host does not exist!

Я тогда вхожу

 sudo /etc/init.d/apache2 restart

Однако, когда я нажимаю кнопку "Все", я получаю ошибку 404

Not Found

The requested URL /app/Dracula.php was not found on this server.

Apache/2.4.18 (Ubuntu) Server at 52.207.143.84 Port 80

1 ответ

Решение

Возможно, вы захотите дважды проверить, что имя вашего файла конфигурации и имя файла, которое вы используете в a2ensite команды идентичны. Например, если ваш конфиг находится в /etc/apache2/sites-available/my_vhost.conf, команда как a2ensite my-vhost.conf не сработает

Долгое время было хорошей практикой давать расширение vhost-конфигам .conf, В Apache 2.2 и более ранних версиях это было необязательно, поскольку Apache 2.4 (поставляется с Ubuntu 16.04) .conf продление обязательно.

После того, как вы включили (или отключили, в этом отношении) vhost, вам необходимо перезагрузить Apache.

Другие вопросы по тегам