> For the complete documentation index, see [llms.txt](https://agustin-fernandez.gitbook.io/monointegrator/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://agustin-fernandez.gitbook.io/monointegrator/opciones/nginx.md).

# NGINX

NGINX tiene un apartado importante en nuestra vida, dado a que demostro ser el mejor manejador de trabajo para los multiples hilos que puede abrir Monointegrator.&#x20;

Monointegrator utiliza los Workers de Node.js. Cada Worker inicializa un puerto desde el 1900 en adelante y sera asi segun la cantidad de procesadores que tiene el servidor. \
\
De esta forma, se trabajara de forma balanceada para el uso de procesador y se podra configurar segun se desee. \
\
Un ejemplo de esto, es realizar un balanceo del tipo round robin en donde si estamos en un servidor de 4 nucles, Monointegrator iniciara 4 procesos e NGINX balanceara desde el proceso 1 al 4 por cada vez que se consulte a el. \
\
Este tipo de configuracion se establece bajo una regla de NGINX como la siguiente

```nginx
// Control de puertos segun los habilitados en Monointegrators

upstream monointegrator {
    server 127.0.0.1:1901;
    server 127.0.0.1:1902;
    server 127.0.0.1:1903;
    server 127.0.0.1:1904;
    keepalive 64;
}


server {
    listen 80;
    server_name api.site.com.ar;


    location / {
        proxy_pass http://monointegrator;
        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection upgrade;
        proxy_set_header Accept-Encoding gzip;
        add_header 'Access-Control-Allow-Origin' '*' always;
        add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT' always;
        add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Device,Session,Store' always;
    }
}

```
