Prevadzkujem domaci rev. proxy nginx, kde mam okrem ineho verejnu domenu (priklad)
example.com a knej riesim subdomeny
1.example.com,
2.example.com atd.
Sudbomeny uz nie su verejne, ale privatne (a zdielaju * wildcard cert LE). Mam takto vyriesenych asi 4-5 subdomeny a funguje to dobre. Zapis pre jednu subdomeny v nginix konfiguraku vyzera nasledovne
server {
server_name 1.example.com;
location / {
proxy_pass http://192.168.1.105;
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;
}
listen 443 ssl;
listen 443 quic;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
add_header Alt-Svc 'h3=":$server_port"; ma=86400';
add_header x-quic 'h3';
add_header Alt-Svc 'h3-29=":$server_port"';
}
server {
if ($host = 1.example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name 1.example.com;
return 404; # managed by Certbot
}
Trocha som sa zacal pohravat s dockerom a rad by som pouzil pre docker aplikacie tiez privatne subdomeny, ale aby boli porty aplikacii namapovane na port 80 (vsetky). Napr. instalujem docker portainer
sudo docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latestAk chcem aby bezal na porte 80, tak zmenim port
sudo docker run -d -p 8000:8000 -p 80:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latestA je to vybavene. Ak ale spustim dalsi docker, ktory bezi na porte
-p 5000:5000tak uz to nemozeme zmenit na 80:5000, pretoze na tom porte uz pocuva portainer. Chcel som to teda riesit priamo na rev. proxy, nastavenim portu v proxy_pass ale toto tiez nefunguje.
server {
server_name 1.example.com;
location / {
proxy_pass http://192.168.1.105:5000;
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;
}
listen 443 ssl;
listen 443 quic;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
add_header Alt-Svc 'h3=":$server_port"; ma=86400';
add_header x-quic 'h3';
add_header Alt-Svc 'h3-29=":$server_port"';
}
server {
if ($host = 1.example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name 1.example.com;
return 404; # managed by Certbot
}
Ako by som to mohol vyriesit ?
thx