- traefik (main reverse-proxy / handles docker images with labels)
- nginx (static sites)
Add labels for image
labels:
# specify visibility for traefik
- "traefik.enable=true"
# specify domain for image
- "traefik.http.routers.cms.rule=Host(`<domain>`)"
# specify entrypoint:
# web - for http connection
# websecure - for https connection
- "traefik.http.routers.cms.entrypoints=<entrypoint>"
# specify certification resolver (lestencrypt)
- "traefik.http.routers.cms.tls.certresolver=<certresolver>"- Add configuration for site:
nginx/conf.d/<domain.conf>
server {
listen 80;
server_name static1.lamparty.ru;
location / {
root /var/www/static1.lamparty.ru;
try_files $uri $uri/ =404;
}
}-
Add static site folder:
nginx/www/<domain>withindex.htmlfile -
Add router for site in
traefik/config/dynamic/traefik.yml:
http:
routers:
# ...
<project-name>:
rule: "Host(`<domain>`)"
entryPoints: ["web", "websecure"] # same as docker entrypoints label
service: nginx
services:
# ...
nginx:
loadBalancer:
servers:
- url: "http://nginx:80"-
Check ip address using
ifconfigand find interface inet starts with 192.168.x.x -
Setup traefik http router and service:
http:
routers:
# ...
<project>:
rule: "Host(`<domain>`)"
entryPoints: ["web", "websecure"]
service: <project-service>
tls:
certResolver: <certResolver>
services:
<project-service>:
loadBalancer:
servers:
- url: "http://<address>:<port>"- nginx logs
- monitoring