%20%D0%BD%D0%B5%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%20(%D0%BF%D1%80%D0%BE%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%BE%20%D1%81%20Apache2%20%D0%B8%20Nginx).png)
Я использую Raspberry Pi с Apache2 для управления своими веб-сайтами. У меня есть несколько образов Docker, работающих на разных портах. Я хочу перенаправить (без изменения URL) scanner.raspberry.local
на localhost:1234
. Чтобы сделать это, я следовал этим двум постам:
В итоге у меня работает только один виртуальный хост (первый). Вот мой конфиг:
# Home page : working properly
<VirtualHost *:80>
ServerName raspberry.local
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ErrorLog ${APACHE_LOG_DIR}/error-homer.log
CustomLog ${APACHE_LOG_DIR}/access-homer.log combined
</VirtualHost>
# Scanner : not working : "could not resolve host" when I cURL
<VirtualHost *:80>
ServerName scan.raspberry.local
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://localhost:1234/
ProxyPassReverse / http://localhost:1234/
ErrorLog ${APACHE_LOG_DIR}/error-scan.log
CustomLog ${APACHE_LOG_DIR}/access-scan.log combined
</VirtualHost>
Я пробовал установить nginx, но в итоге получаю то же самое, первый виртуальный хост работает, но второй (поддомен) не может быть разрешен через cURL, даже напрямую на сервере. Я следовалэтотпост, чтобы помочь мне. Я закончил так:
server {
listen 80;
server_name raspberry.local;
location / {
proxy_pass http://localhost:8080;
}
}
server {
listen 80;
server_name scan.raspberry.local;
location / {
proxy_pass http://localhost:1234;
}
}
У меня нет ошибок ни в одном файле журнала, когда я использую apache2ctl -S
его, он находит мои виртуальные хосты без проблем, то же самое, когда я делаю apache2ctl configtest
. Я включил модули proxy
, proxy_http
и rewrite
. И моя конфигурация правильно включена в /etc/apache2/sites-enabled/000-default.conf
(символическая ссылка из sites-available
).
Моя система:
- Raspberry Pi 4 8Gb на Ubuntu 22.04
Кроме того, я использую VPN, размещенный на моем Pi, и добавил соответствующую конфигурацию в свой /etc/host
и c:\Windows\System32\Drivers\etc\hosts
(WSL/Windows).
Я знаю, что есть куча постов о конфигурации apache2. Но я не могу найти ни одного с такой же проблемой.
решение1
Сканер: не работает: «не удалось разрешить хост» при использовании cURL
Это означает, что curl
не удается разрешить IP-адрес для доменного имени. Это означает, что запись DNS для целевого домена не настроена.
Конфигурация DNS не связана с конфигурацией Apache2 или nginx.
решение2
Чтобы решить эту проблему, я установилdnsmasq,настроил его, идобавил DNS-сервер в/etc/resolve.conf
.
Теперь я могу использовать cURL, x.subdomain.local
если добавлю на каждую машину свой DNS-сервер.