Я искал решение этой проблемы. Вот мои настройки.
Сервер A: 192.168.1.99
Nginx Сервер Последняя версия: версия 01-2020. Служит в качестве обратного прокси-сервера для всех сайтов, обслуживаемых сервером B.
Apache Сервер (служит двум целям): 1. Обслуживать сайты, 2. Служить сервером ошибок, если «Сервер B не работает»
Сервер B: 192.168.1.100
Apache Сервер: сервер основного сайта.
Требование:
Когда сервер B не работает, сервер A должен служить в качестве " Страница ошибки »с тем же доменным именем. Например:
, если сервер B обслуживает: example.com, а если он не работает, то сервер A будет отображать страницу с ошибкой, как показано ниже:
example.com / error404. html если ошибка 502 ошибка, она должна обслуживаться example.com/error502.html с сервера A.
Вот мой файл конфигурации: Сервер A: (Nginx Server) / etc / nginx / conf .d / example.com.conf
server {
listen 80;
if ($host = www.example.com ) {
return 301 https://example.com$request_uri;
# return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = example.com ) {
return 301 https://example.com$request_uri;
# return 301 https://$host$request_uri;
} # managed by Certbot
}
server {
listen 443 ssl;
server_name www.example.com;
root /var/www/example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;
proxy_intercept_errors on;
error_page 404 500 502 503 504 = @fallback;
proxy_pass https://192.168.1.100:9443/;
proxy_read_timeout 90;
#rewrite http://www.example.com/ https://www.example.com/ redirect;
proxy_redirect https://192.168.1.100:9443/ https://example.com;
}
index index.php index.html index.htm index.nginx-debian.html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
location @fallback {
root /var/www/example.com;
rewrite ^/(.*) https://example.com;
#proxy_pass https://192.168.1.99:6443/;
#proxy_redirect https://192.168.1.99:6443/ https://example.com;
#rewrite ^/(.*) https://192.168.1.99:6443/ permanent;
}
}