Notas Mentales de Un SysAdmin

blog sobre tecnologías para sysadmin y devops

docker

Reverse Proxy con NGINX + Docker

Hoy os traigo una serie de ficheros de configuración que estoy encantada de dejar como parte de este cajón de sastre. Se trata de una serie de archivos (Dockerfile, arhicvos .conf, etc) que quiero compartir con vosotros para crear en pocos pasos una imagen de NGINX que funcione como reverse proxy en local.

Mi Directorio

raiz
|__>nginx
|   |__> conf.d
|   |     |__> test.domain.com.conf
|   |__> ssl
|   |     |__> tls.crt
|   |     |__> tls.key
|   |___> nginx.conf
|__> Dockerfile
|__> docker.compose.yml

test.domain.com.conf

server {
        listen 80;
        listen 443 ssl http2;
        listen [::]:80;
        listen [::]:443 ssl http2;

        server_name test.domain.com;

        location / {
            proxy_pass http://[IP]:[PORT];
                }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }

}

nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
   worker_connections 768;
   # multi_accept on;
}

http {

   ##
   # Basic Settings
   ##

   sendfile on;
   tcp_nopush on;
   tcp_nodelay on;
   keepalive_timeout 65;
   types_hash_max_size 2048;
   client_max_body_size 100M;
   # server_tokens off;

   # server_names_hash_bucket_size 64;
   # server_name_in_redirect off;

   include /etc/nginx/mime.types;
   default_type application/octet-stream;

   ##
   # SSL Settings
   ##

#  ssl on;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
   ssl_prefer_server_ciphers on;
   ssl_certificate /etc/nginx/ssl/tls.crt;
   ssl_certificate_key /etc/nginx/ssl/tls.key;


   ##
   # Logging Settings
   ##

   access_log /var/log/nginx/access.log;
   error_log /var/log/nginx/error.log;

   ##
   # Gzip Settings
   ##

   gzip on;

   gzip_vary on;
   gzip_proxied any;
   gzip_comp_level 6;
   gzip_buffers 16 8k;
   gzip_http_version 1.1;
   gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

   ##
   # Virtual Host Configs
   ##

   include /etc/nginx/conf.d/*.conf;
   include /etc/nginx/sites-enabled/*;
}


#mail {
#  # See sample authentication script at:
#  # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#  # auth_http localhost/auth.php;
#  # pop3_capabilities "TOP" "USER";
#  # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#  server {
#     listen     localhost:110;
#     protocol   pop3;
#     proxy      on;
#  }
# 
#  server {
#     listen     localhost:143;
#     protocol   imap;
#     proxy      on;
#  }
#}

Dockerfile

FROM nginx
COPY ./nginx/ /etc/nginx/

docker-compose.yml

version: '3.4'

services:
  nginx:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 80:80
      - 443:443

Problema resuelto!

Scroll hacia arriba