![Как перенаправить ЛЮБОЙ сайт, не найденный в Hestia, на другой сервер - Nginx proxy manager](https://rvso.com/image/789299/%D0%9A%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D0%9B%D0%AE%D0%91%D0%9E%D0%99%20%D1%81%D0%B0%D0%B9%D1%82%2C%20%D0%BD%D0%B5%20%D0%BD%D0%B0%D0%B9%D0%B4%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%B2%20Hestia%2C%20%D0%BD%D0%B0%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%20-%20Nginx%20proxy%20manager.png)
Я хочу: если ЛЮБОЙ сайт не найден на (сервер Hestia 192.168.0.37), то перенаправить (прокси-менеджер Nginx 192.168.0.36)
Данный:
- Сервер Гестия 192.168.0.37
- Менеджер прокси-серверов Nginx 192.168.0.36
- Сайт для теста testsite.com (создан в прокси-менеджере Nginx) (Hestia не имеет никаких записей)
- hestia посты:
#netstat -nt4ulp | grep nginx
tcp 0 0 0.0.0.0:80 LISTEN /nginx: mast
tcp 0 0 0.0.0.0:443 LISTEN /nginx: mast
tcp 0 0 0.0.0.0:8083 LISTEN/nginx: master
tcp 0 0 127.0.0.1:8084 LISTEN /nginx: mast
#netstat -nt4ulp | grep apache
tcp 0 0 192.168.0.37:8443 LISTEN /apache2
tcp 0 0 192.168.0.37:8080 LISTEN /apache2
tcp 0 0 127.0.0.1:8081 LISTEN /apache2
========================================================================
Я попробую:
редактировать /etc/nginx/conf.d/192.168.0.37.conf
server {
listen 80 default_server;
server_name _;
location / {
proxy_pass http://192.168.0.36:80;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 443 ssl default_server;
server_name _;
ssl_certificate /usr/local/hestia/ssl/certificate.crt;
ssl_certificate_key /usr/local/hestia/ssl/certificate.key;
location / {
proxy_pass https://192.168.0.36:443;
proxy_set_header X-Real-IP $remote_addr;
}
}
========================================================================
я попробую
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 15 Sep 2023 17:54:48 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
Location: https://testsite.com/
и посмотреть страницу из (сервер Hestia 192.168.0.37) DocumentRoot /var/www/html/index.html из /etc/apache2/conf.d/192.168.0.37.conf
Listen 192.168.0.37:8443
Listen 192.168.0.37:8080
<VirtualHost 192.168.0.37:8080>
ServerName 192.168.0.37
DocumentRoot /var/www/html2/
Alias /error/ /var/www/document_errors/
</VirtualHost>
<VirtualHost 192.168.0.37:8443>
ServerName 192.168.0.37
DocumentRoot /var/www/html/
Alias /error/ /var/www/document_errors/
SSLEngine on
SSLVerifyClient none
SSLCertificateFile /usr/local/hestia/ssl/certificate.crt
SSLCertificateKeyFile /usr/local/hestia/ssl/certificate.key
</VirtualHost>
почему, как исправить?
решение1
Это должен быть комментарий, но он немного длинный.
Я не знаю, о чем вы здесь спрашиваете.
Если вы завершаете SSL на сервере nginx, то либо у вас есть абсолютно чудовищный SSL-сертификат, либо каждый сайт настроен как отдельный сервер{...} в nginx.
и посмотрите страницу с (сервер Hestia 192.168.0.37)
Да, это именно то, что я ожидал от этой конфигурации. Вы просили http[s]://192.168.0.36, вы получили http[s]://192.168.0.36
Если вы хотите сохранить поведение дляhttps://192.168.0.36(который недоступен за пределами подсети) при добавлении нового поведения для неизвестных виртуальных хостов вам понадобится запись DNS или запись хостов на прокси-сервере с новым именем и соответствующий виртуальный хост в Apache.
Альтернативный вариант, поскольку ни один здравомыслящий человек не будет пытаться управлять несколькими сайтами с помощью одного и того же сертификата, — просто вернуть перенаправление с сервера по умолчанию в nginx.