## Nginx + Devkron a través de FastCGI Devkron cuenta con una implementación del protocolo FastCGI para interacturar con servidores Web. Podrás usar Devkron detrás de cualquier servidor (Windows o Linux) que admita este protocolo, como por ejemplo: Apache, Nginx e incluso IIS En el caso de Nginx sigue los siguientes pasos: 1. Instalar Nginx 2. Habilita el paso de cookies de Nginx a FastCGI editando el archivo 'fastcgi_params' y agregándole la siguiente línea: ``` fastcgi_param HTTP_COOKIE $http_cookie; ``` 3. Habilita la FastCGI de Devkron en el archivo nginx.conf en la sección http/server/location agregando las líneas: ``` include /nginx/conf/fastcgi_params; fastcgi_pass 127.0.0.1:9090; ``` En el ejemplo, el servicio FastCGI de Devkron estará escuchando en la IP local (127.0.0.1) y el puerto 9090 (el valor predeterminado en Devrkon). 4. Inicie el servicio de Nginx ``` service nginx start ``` 5. Inicie el servicio de FastCGI de Devkron ``` ./dkl -fastcgi ``` ### Notas El servicio FastCGI de Devkron solo está disponible en las distribuciones autocontenidas para Windows y Linux, vea las siguientes guías: Instalación de Devkron autocontenido * [Guía de instalación Windows x64](Windows/Instalar-dkl-winx64.md) * [Guía instalación Linux](Linux/Instalar-dkl-Linux.md) Instalación de Nginx en Windows: https://nginx.org/en/docs/windows.html Instalación en Linux (yum o dnf): ``` yum install nginx ``` Ubicación de configuraciones de Nginx * En Linux: /etc/nginx * En Windows: Carpeta conf dentro de la carpeta de instalación ### IMPORTANTE En Linux generalmente el servicio httpd no tiene permisos para acceder a la red, por lo que deberá ejecutar el siguiente comando (o su equivalente) para permitir que Nginx se comunique con la FastCGI de Devkron: ``` bash setsebool -P httpd_can_network_connect 1 ``` #### Ejemplo de un archivo de configuración de Nginx ``` worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9090; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } ``` #### Ejemplo del archivo de configuración fastcgi_params ``` fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REQUEST_SCHEME $scheme; fastcgi_param HTTPS $https if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_param HTTP_COOKIE $http_cookie; fastcgi_param REDIRECT_STATUS 200; ```