Настройка обратного прокси в 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.