Hace tiempo contaba cómo configurar Lighttpd como proxy inverso. En esta ocasión haremos lo mismo pero con Nginx.
Nuestra intención es poder acceder a dos instancias de Calibre Server y que para ello el Nginx nos solicite usuario y contraseña.
Como siempre, lo primero es instalar el Nginx:
sudo apt install nginx-light
Nota: habréis visto que en los repositorios de Raspbian existen varios sabores de Nginx. Para nuestro propósito con la versión light es suficiente.
Una vez instalado detenemos el servidor:
sudo systemctl stop nginx
Y editamos el fichero de configuración del Nginx:
sudo vi /etc/nginx/sites-available/default
El fichero de configuración del Nginx tiene muchas opciones y es muy flexible. Yo solo comentaré lo necesario para nuestro proxy inverso:
location /libros1/ { proxy_pass http://127.0.0.1:8081; auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/passwords; } location /libros2/ { proxy_pass http://127.0.0.1:8082; auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/passwords; }
Explico un poco los parámetros tomando como ejemplo el «libros1«:
- location: este será el contexto de la URL donde será accesible el contenido. La URL final quedaría más o menos así: http://miraspberrypi/libros1
- proxy_pass: es la IP y el puerto donde se encuentra el contenido. http://127.0.0.1:8081 en el ejemplo
- auth_basic y auth_basic_user_file indican al Nginx que ha de pedir credenciales y que en el fichero /etc/nginx/passwords encontrará las credenciales válidas.
Y eso es todo, ya solo nos queda iniciar el Nginx:
sudo systemctl start nginx
¡Y a disfrutar!
PD: Para crear el fichero de passwords hemos de instalar el siguiente paquete:
sudo apt install apache2-utils
Y seguir las mismas instrucciones que comentaba en el post de Lighttpd.