Diferencia entre revisiones de «Nginx»

De Hacklab La Paz - r00thouse
(Página creada con «En esta página de la wiki se detalla un ejemplo de óptima instalación del servidor web [http://nginx.org/ nginx]. === Características de esta configuración en particu...»)
 
Sin resumen de edición
 
(No se muestran 5 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
En esta página de la wiki se detalla un ejemplo de óptima instalación del servidor web [http://nginx.org/ nginx].
En esta página de la wiki se detalla un ejemplo de óptima instalación del servidor web [http://nginx.org/ nginx] en un servidor Debian 8.


=== Características de esta configuración en particular ===
=== Características de esta configuración en particular ===


* Soporte dual-stack completo (IPv4+IPv6)
* Soporte dual-stack completo (IPv4+IPv6)
* SSL/TLS optimizado para mayor seguridad
* SSL/TLS (optimizado) para mayor seguridad
* Parámetros por defecto para ahorrar código
* Parámetros por defecto para ahorrar código
* No necesitamos activar cgi_pathinfo en PHP
* No necesitamos activar cgi_pathinfo en PHP
* Caché en memoria RAM para PHP-FPM


=== Por hacer ===
=== Por hacer ===


* Separar aún más todo en snippets (ej. PHP5 y PHP7)
* Separar aún más todo en snippets (ej. PHP5 y PHP7)
* SSL/TLS para default
* Agregar soporte a negociaciones TLS con claves ECDSA (actualmente sólo RSA)
* Agregar soporte a negociaciones TLS con claves ECDSA (actualmente sólo RSA)


Línea 18: Línea 18:
Para Debian/Ubuntu, sigue las instrucciones en la [http://nginx.org/en/linux_packages.html página oficial de nginx] para instalar la última versión ''mainline''.
Para Debian/Ubuntu, sigue las instrucciones en la [http://nginx.org/en/linux_packages.html página oficial de nginx] para instalar la última versión ''mainline''.


Para ahorrar tiempo, puedes usar scripts como [https://github.com/eunas/gotdeb Gotdeb] para automatizar la instalación. También soporta el repositorio de Dotdeb si planeas usar PHP 7.
Para ahorrar tiempo, puedes usar scripts como [https://github.com/eunas/gotdeb Gotdeb] para automatizar la instalación. Si planeas usar PHP 7, este script además automatiza la instalación del repositorio de Dotdeb (que contiene backports de PHP 7, entre otras cosas).


= Configuración =
= Configuración =


En los repositorios de Debian, nginx viene con la configuración dividida: sites-available y sites-enabled. En este caso, utilizaremos la configuración de nginx upstream (sólo conf.d).
En los repositorios de Debian, nginx viene con la configuración dividida: sites-available y sites-enabled. En este caso, utilizaremos la configuración de nginx upstream (sólo conf.d).
Una de las razones por las que los archivos de configuración en conf.d se llamen "30_algo.conf" es para ayudar a '''evitar problemas con hosts antiguos (léase Windows XP)''': Aunque estas máquinas pueden procesar certificados de múltiples sitios con SAN (1 certificado para múltiples sitios), no pueden hacer lo mismo con SNI (negociar un certificado en especial antes de iniciar la conexión segura).
En consecuencia, el primer certificado digital que Nginx encuentre en el servidor (de ahí los números) sera el que sea enviado a hosts Windows XP (aunque no sea el correcto).
Para dar soporte a hosts Windows XP, es recomendable generar '''un sólo certificado''' para todos los sitios deseados, e instalar ese certificado en el primer lugar de todos los sitios web en la carpeta de configuración conf.d.
Primero necesitas generar algunos parámetros de seguridad (https://weakdh.org/sysadmin.html):
<pre>
sudo openssl dhparam -out /etc/nginx/dh-params.pem 2048
</pre>
Si quieres certificados SSL/TLS de Let's Encrypt, puedes instalar el cliente oficial:
<pre>
sudo apt install -t jessie-backports certbot
</pre>


== Configuración principal ==
== Configuración principal ==
Línea 30: Línea 49:
<pre>
<pre>
user www-data;
user www-data;
worker_processes  auto;
worker_processes  4;
error_log  /var/log/nginx/error.log warn;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
pid        /var/run/nginx.pid;
Línea 46: Línea 65:
     include      /etc/nginx/mime.types;
     include      /etc/nginx/mime.types;
     default_type  application/octet-stream;
     default_type  application/octet-stream;
    client_body_buffer_size 10K; 
    client_header_buffer_size 1k; 
    client_max_body_size 1m; # modificar luego para webs con subida de archivos
    large_client_header_buffers 2 1k;
     # Parámetros por defecto para el SSL/TLS para no repetir todo luego
     # Parámetros por defecto para el SSL/TLS para no repetir todo luego
     ssl_dhparam "/etc/nginx/dh-primes.pem";
     ssl_dhparam "/etc/nginx/dh-params.pem"; # sudo openssl dhparam -out /etc/nginx/dh-params.pem 2048
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_prefer_server_ciphers on;
     ssl_prefer_server_ciphers on;
     ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
     ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
     ssl_session_cache shared:SSL:10m;
     ssl_session_cache shared:SSL:10m;
     ssl_session_tickets off;
     ssl_session_tickets off;
     ssl_stapling on;
     ssl_stapling on;
     ssl_stapling_verify on;
     ssl_stapling_verify on;
     resolver 8.8.8.8 8.8.4.4 valid=300s;
     resolver 74.82.42.42 valid=300s;
     resolver_timeout 5s;
     resolver_timeout 5s;
     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
Línea 64: Línea 89:
     # Para proteger scripts PHP de login, etc
     # Para proteger scripts PHP de login, etc
     limit_req_zone $binary_remote_addr zone=one:15m rate=2r/s;
     limit_req_zone $binary_remote_addr zone=one:15m rate=2r/s;
 
     access_log  /var/log/nginx/access.log  main;
     access_log off;
    #access_log  /var/log/nginx/access.log  main;
   
   
     gzip on;
     gzip on;
     gzip_disable "msie6";
    gzip_comp_level 4;
    gzip_vary on;
    gzip_min_length 10240;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text/javascript text/plain application/x-javascript text/xml text/css application/xml;
     gzip_disable "MSIE [1-6]\.";
 
   
   
     include /etc/nginx/conf.d/*.conf;
     include /etc/nginx/conf.d/*.conf;
Línea 84: Línea 116:


=== /etc/nginx/snippets/fastcgi-php.conf ===
=== /etc/nginx/snippets/fastcgi-php.conf ===
Por defecto Nginx tiene asignado un tamaño pequeño a los buffers de fastcgi: si un script PHP produce salida de mayor tamaño, esta salida se cargará en archivos temporales en el disco duro, cosa que es indeseable.


<pre>
<pre>
Línea 92: Línea 126:
fastcgi_param PATH_INFO $path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
fastcgi_index index.php;
fastcgi_buffer_size 8k;
fastcgi_buffers 64 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
</pre>
</pre>


== Configuración de sitios web ==
== Configuración de sitios web ==


=== /etc/nginx/conf.d/default.conf ===
=== /etc/nginx/conf.d/0_default.conf ===
 
Esta configuración recibe sólo peticiones directas a sí mismo (algo así como http://[ip del servidor]). No involucra a los demás sitios web alojados.


En este caso, por única vez se utilizará la directiva default_server e ipv6_only. De esta manera los sitios webs añadidos no tendrán problemas en soportar IPv4 e IPv6.
En este caso, por única vez se utilizará la directiva default_server e ipv6_only. De esta manera los sitios webs añadidos no tendrán problemas en soportar IPv4 e IPv6.
Línea 107: Línea 148:
     listen [::]:80 default_server ipv6only=on;
     listen [::]:80 default_server ipv6only=on;
     server_name _;
     server_name _;
    #access_log  /var/log/nginx/default.access.log main;


     root  /var/www/default;
     root  /var/www/default;
Línea 117: Línea 156:
     }
     }


    error_page 404 /index.html;
     error_page  500 502 503 504  /50x.html;
     error_page  500 502 503 504  /50x.html;
     location = /50x.html {
     location = /50x.html {
Línea 122: Línea 162:
     }
     }


     # Sin soporte de PHP.
     # Sin soporte de PHP para default.
}
}
server {
    # __NO__ usar este archivo como plantilla para otros archivos de conf
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server ipv6only=on;
    server_name _;
    ssl_certificate "/etc/certs/evssl/hacklab.org.bo/fullchain.pem";
    ssl_certificate_key "/etc/certs/evssl/hacklab.org.bo/privkey.pem";
    root  /var/www/default;
    index  index.html;
    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /index.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root  /usr/share/nginx/html;
    }
}
</pre>
</pre>


=== /etc/nginx/conf.d/algunsitio.conf (HTTPS activado y por defecto) ===
=== /etc/nginx/conf.d/30_algunsitio.conf (HTTPS activado y por defecto) ===


Para agregar más sitios web, clona este archivo.
Para agregar más sitios web, clona este archivo (o añade más bloques server{} en un mismo archivo).


Si tienes instalado el repositorio Dotdeb, puedes disponer de PHP 5 y PHP 7 en la misma máquina, corriendo simultáneamente. Aquí puede elegir cuál ejecutar.
Si tienes instalado el repositorio Dotdeb, puedes disponer de PHP 5 y PHP 7 en la misma máquina, corriendo simultáneamente. Aquí puede elegir cuál ejecutar.
Línea 140: Línea 203:
         server_name la0trared.hacklab.org.bo;
         server_name la0trared.hacklab.org.bo;


         # Para hacer el sitio sólo HTTP, eliminamos la línea siguiente y copiamos los
         # Redireccionamos todo el tráfico HTTP al servidor HTTPS
        # argumentos necesarios del siguiente bloque "server" antes de eliminarlo también.
         return 301 https://$host$request_uri;
         return 301 https://la0trared.hacklab.org.bo$request_uri;
}
}


Línea 154: Línea 216:
         index index.php;
         index index.php;
   
   
         # Aquí vienen en un sólo archivo la clave pública de nuestro par de claves, y las claves públicas del CA.
         # Aquí vienen en un sólo archivo nuestro certificado, y el certificado de la CA.
         ssl_certificate "/etc/certs/evssl/hacklab.org.bo/fullchain.pem";
         ssl_certificate "/etc/certs/evssl/hacklab.org.bo/fullchain.pem";
        ssl_certificate_key "/etc/certs/evssl/hacklab.org.bo/privkey.pem";


        ssl_certificate_key "/etc/certs/evssl/hacklab.org.bo/privkey.pem";
         add_header X-Frame-Options DENY;
         add_header X-Frame-Options DENY;
         add_header X-Content-Type-Options nosniff;   
         add_header X-Content-Type-Options nosniff;   
Línea 178: Línea 240:
</pre>
</pre>


=== /etc/nginx/conf.d/websimple.conf (Sólo HTTP) ===
=== /etc/nginx/conf.d/31_websimple.conf (Sólo HTTP) ===


'''CUIDADO''': Un sitio web HTTPS que tiene HSTS activado no puede ser reemplazado por una versión sólo-HTTP. (ej: diaspora)
'''CUIDADO''': Un sitio web HTTPS que tiene HSTS activado no puede ser reemplazado por una versión sólo-HTTP. (ej: diaspora)
Línea 204: Línea 266:
                 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;   
                 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;   
                 fastcgi_param HTTPS on;
                 fastcgi_param HTTPS on;
                 include       fastcgi_params;
                 include fastcgi_params;
        }
}
}
</pre>
</pre>

Revisión actual - 15:37 27 ene 2017

En esta página de la wiki se detalla un ejemplo de óptima instalación del servidor web nginx en un servidor Debian 8.

Características de esta configuración en particular

  • Soporte dual-stack completo (IPv4+IPv6)
  • SSL/TLS (optimizado) para mayor seguridad
  • Parámetros por defecto para ahorrar código
  • No necesitamos activar cgi_pathinfo en PHP
  • Caché en memoria RAM para PHP-FPM

Por hacer

  • Separar aún más todo en snippets (ej. PHP5 y PHP7)
  • Agregar soporte a negociaciones TLS con claves ECDSA (actualmente sólo RSA)

Instalación

Para Debian/Ubuntu, sigue las instrucciones en la página oficial de nginx para instalar la última versión mainline.

Para ahorrar tiempo, puedes usar scripts como Gotdeb para automatizar la instalación. Si planeas usar PHP 7, este script además automatiza la instalación del repositorio de Dotdeb (que contiene backports de PHP 7, entre otras cosas).

Configuración

En los repositorios de Debian, nginx viene con la configuración dividida: sites-available y sites-enabled. En este caso, utilizaremos la configuración de nginx upstream (sólo conf.d).

Una de las razones por las que los archivos de configuración en conf.d se llamen "30_algo.conf" es para ayudar a evitar problemas con hosts antiguos (léase Windows XP): Aunque estas máquinas pueden procesar certificados de múltiples sitios con SAN (1 certificado para múltiples sitios), no pueden hacer lo mismo con SNI (negociar un certificado en especial antes de iniciar la conexión segura).

En consecuencia, el primer certificado digital que Nginx encuentre en el servidor (de ahí los números) sera el que sea enviado a hosts Windows XP (aunque no sea el correcto).

Para dar soporte a hosts Windows XP, es recomendable generar un sólo certificado para todos los sitios deseados, e instalar ese certificado en el primer lugar de todos los sitios web en la carpeta de configuración conf.d.


Primero necesitas generar algunos parámetros de seguridad (https://weakdh.org/sysadmin.html):

sudo openssl dhparam -out /etc/nginx/dh-params.pem 2048

Si quieres certificados SSL/TLS de Let's Encrypt, puedes instalar el cliente oficial:

sudo apt install -t jessie-backports certbot

Configuración principal

/etc/nginx/nginx.conf

user www-data;
worker_processes  4;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    client_body_buffer_size 10K;  
    client_header_buffer_size 1k;  
    client_max_body_size 1m; # modificar luego para webs con subida de archivos
    large_client_header_buffers 2 1k;

    # Parámetros por defecto para el SSL/TLS para no repetir todo luego
    ssl_dhparam "/etc/nginx/dh-params.pem"; # sudo openssl dhparam -out /etc/nginx/dh-params.pem 2048
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 74.82.42.42 valid=300s;
    resolver_timeout 5s;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    # Crear zona de riesgo (aún no la usamos): máximo 2 peticiones por segundo
    # Para proteger scripts PHP de login, etc
    limit_req_zone $binary_remote_addr zone=one:15m rate=2r/s;

    access_log off;
    #access_log  /var/log/nginx/access.log  main;
 
    gzip on;
    gzip_comp_level 4;
    gzip_vary on;
    gzip_min_length 10240;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text/javascript text/plain application/x-javascript text/xml text/css application/xml;
    gzip_disable "MSIE [1-6]\.";

 
    include /etc/nginx/conf.d/*.conf;
}

/etc/nginx/fastcgi_params

Agregar estas dos líneas al archivo.

fastcgi_param  PATH_INFO          $fastcgi_path_info;
fastcgi_param  PATH_TRANSLATED    $document_root$fastcgi_path_info;

/etc/nginx/snippets/fastcgi-php.conf

Por defecto Nginx tiene asignado un tamaño pequeño a los buffers de fastcgi: si un script PHP produce salida de mayor tamaño, esta salida se cargará en archivos temporales en el disco duro, cosa que es indeseable.

fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $fastcgi_script_name =404;

set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
fastcgi_buffer_size 8k;
fastcgi_buffers 64 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;

Configuración de sitios web

/etc/nginx/conf.d/0_default.conf

Esta configuración recibe sólo peticiones directas a sí mismo (algo así como http://[ip del servidor]). No involucra a los demás sitios web alojados.

En este caso, por única vez se utilizará la directiva default_server e ipv6_only. De esta manera los sitios webs añadidos no tendrán problemas en soportar IPv4 e IPv6.

server {
    # __NO__ usar este archivo como plantilla para otros archivos de conf

    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name _;

    root   /var/www/default;
    index  index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /index.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # Sin soporte de PHP para default.
}
server {
    # __NO__ usar este archivo como plantilla para otros archivos de conf

    listen 443 ssl default_server;
    listen [::]:443 ssl default_server ipv6only=on;
    server_name _;

    ssl_certificate "/etc/certs/evssl/hacklab.org.bo/fullchain.pem";
    ssl_certificate_key "/etc/certs/evssl/hacklab.org.bo/privkey.pem";

    root   /var/www/default;
    index  index.html;
    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /index.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

/etc/nginx/conf.d/30_algunsitio.conf (HTTPS activado y por defecto)

Para agregar más sitios web, clona este archivo (o añade más bloques server{} en un mismo archivo).

Si tienes instalado el repositorio Dotdeb, puedes disponer de PHP 5 y PHP 7 en la misma máquina, corriendo simultáneamente. Aquí puede elegir cuál ejecutar.

Se asume que queremos que la web funcione con HTTPS, y que disponemos de certificados SSL/TLS. Si no es el caso, podemos ver el ejemplo que sigue después de éste.

server {
        listen 80;
        listen [::]:80;
        server_name la0trared.hacklab.org.bo;

        # Redireccionamos todo el tráfico HTTP al servidor HTTPS
        return 301 https://$host$request_uri;
}

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

        server_name la0trared.hacklab.org.bo;

        root /var/www/abcd;
        index index.php;
 
        # Aquí vienen en un sólo archivo nuestro certificado, y el certificado de la CA.
        ssl_certificate "/etc/certs/evssl/hacklab.org.bo/fullchain.pem";
        ssl_certificate_key "/etc/certs/evssl/hacklab.org.bo/privkey.pem";

        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;  

        client_max_body_size 4M;
        client_body_buffer_size 128k;

        location / {
                try_files $uri $uri/ =404;
        }
        location ~ [^/]\.php$ {  
                include snippets/fastcgi-php.conf;  
                # Descomenta la opción preferida.
                #fastcgi_pass unix:/run/php/php7.0-fpm.sock;  
                #fastcgi_pass unix:/run/php/php5-fpm.sock;  
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  
                fastcgi_param HTTPS on;
                include        fastcgi_params;  
}

/etc/nginx/conf.d/31_websimple.conf (Sólo HTTP)

CUIDADO: Un sitio web HTTPS que tiene HSTS activado no puede ser reemplazado por una versión sólo-HTTP. (ej: diaspora)

server {
        listen 80;
        listen [::]:80;
        server_name la0trared.hacklab.org.bo;

        root /var/www/abcd;
        index index.php;
 
        client_max_body_size 4M;
        client_body_buffer_size 128k;

        location / {
                try_files $uri $uri/ =404;
        }
        location ~ [^/]\.php$ {  
                include snippets/fastcgi-php.conf;  
                # Descomenta la opción preferida.
                #fastcgi_pass unix:/run/php/php7.0-fpm.sock;  
                #fastcgi_pass unix:/run/php/php5-fpm.sock;  
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  
                fastcgi_param HTTPS on;
                include fastcgi_params;
        }
}