سرصفحه های NGINX برای Docker – وبلاگ

در صورتی که داکر را پشت nginx اجرا می‌کنید، ممکن است برخی از کانتینرهای شما به هدرهای خاصی نیاز داشته باشند، در غیر این صورت مرورگری که سعی در دسترسی به آن‌ها دارد ممکن است بخواهد به یک آدرس محلی یا خصوصی متصل شود، چیزی مانند https://127.0.0.1:8080. این کار نخواهد کرد. البته مگر اینکه داکر را روی ایستگاه کاری خود اجرا کنید. در زیر می توانید سرفصل های مورد نیاز برای جلوگیری از این مشکل را بیابید:

        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Port 443;
        proxy_set_header Proxy "";

در اینجا یک فایل پیکربندی کامل nginx وجود دارد، می توانید آن را در /etc/nginx/conf.d/ قرار دهید.

server {
    if ($host = yourhostname.org) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


     listen  80;
     server_name yourhostname.org;

     location / {
             return 301 https://$server_name$request_uri;
     }

}

 server {
     listen          443;
     server_name     yourhostname.org;

     access_log      /var/log/nginx/yourhostname.org-acces.log  main;
     error_log       /var/log/nginx/yourhostname.org-error.log;

     ssl on;
     ssl_certificate /etc/letsencrypt/live/yourhostname.org/fullchain.pem; # managed by Certbot
     ssl_certificate_key /etc/letsencrypt/live/yourhostname.org/privkey.pem; # managed by Certbot


     location / {
        limit_req zone=limited burst=200 nodelay;
        proxy_pass      http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_read_timeout    90;
        proxy_connect_timeout 90;
        proxy_redirect        off;
        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Port 443;
        proxy_set_header Proxy "";
     }


}

8080 پورتی است که داکر شما به آن گوش می دهد:

% docker ps|grep 8080
a6108ec10751   lscr.io/linuxserver/chevereto   "/init"                  2 hours ago    Up 2 hours    443/tcp, 0.0.0.0:8080->80/tcp                          chevereto