Я думаю, это возможно, но есть некоторые требования:
статический внешний IP назначен модему;
статический IP включенRPi;
правильные правила переадресации на модеме.
Я имею в виду, вам нужно переадресовывать все запросы, подобные следующим:
модем: 80 -> rp0: 80
модем: 443 -> rp0: 443
На портах rp0 может отличаться от 80 и 443, поэтому, пожалуйста, установите правильные правила и запомните это вКонфигурация nginx.
После этого настройте upstreams или используйте IP-адреса rp1-3 в конфигурациях веб-сайтов:
upstream rp1 {
server 192.168.1.11:port;
}
upstream rp2 {
server 192.168.1.12:port;
}
upstream rp3 {
server 192.168.1.13:port;
}
Замените port на порт, который прослушивается на соответствующемRPi.Конфиги сайта будут выглядеть следующим образом:
server {
server_name site1.com www.site1.com ;
location / { proxy_pass http://rp1 ; }
}
server {
server_name site2.com www.site2.com ;
location / { proxy_pass http://rp2 ; }
}
Добавьте любые параметры, которые вам нужны.Кроме того, если вы собираетесь разместить несколько статических веб-сайтов, лучше всего разместить их на rp0.
EDIT 1 Пример рабочей конфигурации:
server {
listen 80;
server_name site1.com www.site1.com ;
location / { rewrite ^ https://$host$request_uri permanent;}
}
server {
listen 443 ssl;
server_name site1.com www.site1.com;
ssl_certificate /etc/letsencrypt/live/site1/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site1/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://rp1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
port_in_redirect off;
proxy_redirect http://rp1/ /;
}
Пожалуйста, обратите внимание, если вы собираетесь использовать Letsencrypt, лучший способ - установить certbot (или что-то еще) на rp0.Проще будет автоматически обновлять сертификаты.Также используйте / etc / letsencrypt / live / site1 / fullchain.pem .Чтобы использовать несколько SSL-доменов, убедитесь, что установка nginx поддерживает SNI:
# nginx -V
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled