Difference between revisions of "Nginx"

From wiki
(Created page with "{{Debian}}Nginx is a fast and powerful web server. == Install == <syntaxhighlight lang="shell"> apt install nginx-extras </syntaxhighlight> == Configure == === conf.d === T...")
 
(Add gzip config)
Line 12: Line 12:
  
 
Create the following files:
 
Create the following files:
* /etc/nginx/conf.d/dns.conf<syntaxhighlight lang="nginx">
+
* /etc/nginx/conf.d/dns.conf<syntaxhighlight lang="nginx" line="1">
 
# DNS resolver
 
# DNS resolver
 
# It is required for OCSP Stapling. It might also be used if you use a hostname for upstream servers
 
# It is required for OCSP Stapling. It might also be used if you use a hostname for upstream servers
Line 19: Line 19:
 
#resolver 8.8.8.8 8.8.4.4;
 
#resolver 8.8.8.8 8.8.4.4;
 
</syntaxhighlight>
 
</syntaxhighlight>
* /etc/nginx/conf.d/ssl.conf<syntaxhighlight lang="nginx">
+
*/etc/nginx/conf.d/gzip.conf<syntaxhighlight lang="nginx" line="1">
 +
# Insert header "Vary: Accept-Encoding" in responses
 +
# https://www.maxcdn.com/blog/accept-encoding-its-vary-important/
 +
gzip_vary on;
 +
 
 +
gzip_comp_level 6;
 +
 
 +
gzip_proxied any;
 +
 
 +
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
 +
</syntaxhighlight>
 +
* /etc/nginx/conf.d/ssl.conf<syntaxhighlight lang="nginx" line="1">
 
These two settings are now included by default in nginx.conf
 
These two settings are now included by default in nginx.conf
 
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Revision as of 00:55, 31 December 2015

Warning Warning: These instructions were only tested on Debian. It will probably work for other Linux distributions, but you might need to adapt the provided instructions.

Nginx is a fast and powerful web server.

Install

apt install nginx-extras

Configure

conf.d

The conf.d folder stores shared configuration shared between all the sites hosted on your server.

Create the following files:

  • /etc/nginx/conf.d/dns.conf
    1# DNS resolver
    2# It is required for OCSP Stapling. It might also be used if you use a hostname for upstream servers
    3resolver 127.0.0.1;
    4# If you don't have a DNS resolver on your machine you can use google public ones instead
    5#resolver 8.8.8.8 8.8.4.4;
    
  • /etc/nginx/conf.d/gzip.conf
    1# Insert header "Vary: Accept-Encoding" in responses
    2# https://www.maxcdn.com/blog/accept-encoding-its-vary-important/
    3gzip_vary on; 
    4
    5gzip_comp_level 6;
    6
    7gzip_proxied any;
    8
    9gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
    
  • /etc/nginx/conf.d/ssl.conf
     1These two settings are now included by default in nginx.conf
     2#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     3#ssl_prefer_server_ciphers on;
     4
     5ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES256-SHA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!CAMELLIA:!SEED";
     6
     7# Parameters for Diffie-Hellman handshake
     8# Generate the file with the command:
     9#    openssl dhparam 2048 -out /etc/nginx/dh2048.pem
    10ssl_dhparam /etc/nginx/dh2048.pem;
    11
    12# Support OSCP Stapling. Check that resolver from in dns.conf is working
    13ssl_stapling on;
    14ssl_stapling_verify on;
    15ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
    16
    17# Support SSL session cache
    18ssl_session_cache shared:NginxCache:50m;
    19ssl_session_tickets off; # https://timtaubert.de/blog/2014/11/the-sad-state-of-server-side-tls-session-resumption-implementations/
    

Adding PHP

apt install php5-cli php5-fpm php5-apcu