Skip to content

Instantly share code, notes, and snippets.

@jonabasque
Created September 9, 2017 15:21
Show Gist options
  • Save jonabasque/6cfe9c3b7fe0e20cef2cf6c87a943165 to your computer and use it in GitHub Desktop.
Save jonabasque/6cfe9c3b7fe0e20cef2cf6c87a943165 to your computer and use it in GitHub Desktop.
Ejemplo de web server básico con nginx [castellano]
server {
# Establece la dirección y puerto IP, o la ruta de un socket UNIX-domain en donde el servidor aceptará solicitudes.
listen *:80;
#listen 80 default_server; #Establece este servidor como predeterminado, en lugar del que incluye en nginx.conf
# Establece el dominio (header 'Host') para el que va a aceptar las solicitudes.
server_name example.local www.example.local;
# Para debug este ejercicio.
access_log /var/log/nginx/web-server-basic.conf.access.log combined;
error_log /var/log/nginx/web-server-basic.conf.error.log error;
# Cuando la URI comienza por / (todas)
#location / {
# proxy_pass http://localhost:3009;
#}
# La URI es exacta a / (sin URI)
location = / {
# Redirigimos la solicitud al siguiente URL que puede ser HTTP, HTTPS y socket UNIX-domain
proxy_pass http://localhost:3009;
#proxy_pass http://unix:/tmp/backend.socket:/uri/;
}
# Cuando la URI empieza por /calc (DUDA: los parámetros no se tienen en consideración en el maching pero si se pasan al backend)
location /calc {
#
proxy_pass http://localhost:3009;
}
location /wrong {
return 404;
}
# Cuando la URI comienza por /search ()
location /search {
# Hacemos un return de redirección a google (DUDA: que pasa con parámetros ? es posible que no se pasen como en proxy_pass)
return 301 https://google.es;
}
# Cuando la URI termina en .html o .htm en minúsculas (case-sensitive)
location ~ \.html? {
return 403;
}
# Las URI que empiecen por /media
location /media {
# Le agregamos al inicio de la URI /data (puesto que en el server tenemos /data/media/images o /data/media/videos )
root /home/jonabasque/SISTEMAS/DOCS/NGINX/proxy-server/data ; # Hay que crear la ruta absoluta, quizás haya alguna directiva que establezca en $uri la ruta absoluta hasta un determinado sitio, como 'document_root' quizás.
# Activación de la funcón de autenticación y un título para la ventana modal.
auth_basic "Área de imagenes";
# Ubicación del archivo donde se encuentran los pares user:password encripada.
auth_basic_user_file /etc/nginx/.htpasswd;
# Cuando la URI empiece por /images y otro bloque location de expresión regular coincida con esta URI, anula el de expresión regular y usa este location.
location ^~ /media/images/ {
# Reescribe la URI con la regexp y la path nueva usando las variables y con last
#rewrite ^(/media/images/.*/)\.(gif|jpg|jpeg|png)$ $1/imgs/$2 redirect;
#return 403;
# Intenta devolver el archivo de $uri, si no existe la de default, la cual puede ser un .html y si todas son false devuelve un 404.
try_files $uri /media/images/default.jpg =404; # Al menos hay que poner 2 parámetros.
}
# Cuando la URI termina en estas extensiones en mayusculas o minusculas (case-insensitive)
location ~* \.(gif|jpg|jpeg|png) {
# Desactiva la función de autenticación para este location
auth_basic off;
# Intenta devolver el archivo de $uri, si no existe la de default, la cual puede ser un .html y si todas son false ejecuta el location @images.
try_files $uri /media/images/default.jpg @images;
}
# Cuando la URI termina en estas extensiones en mayusculas o minusculas (case-insensitive)
location ~* \.(ogg|mp4|avi) {
try_files $uri =200;
}
}
#
location @images {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment