Skip to content

Nginx full configuration

Matt Rude edited this page Mar 8, 2015 · 2 revisions
#/etc/nginx/nginx.conf
user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
    worker_connections 768;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    client_max_body_size 8m;

    log_format  main  '$remote_addr - $remote_user [$time_local] $http_host "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" '
                                          '$upstream_cache_status';

    access_log  /var/log/nginx/access.log  main;
    error_log   /var/log/nginx/error.log;
    rewrite_log          on;

    charset utf-8;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    server_names_hash_bucket_size 64;

    gzip            on;
    gzip_static     on;
    gzip_min_length 1000;
    gzip_proxied    expired no-cache no-store private auth;
    gzip_types      text/plain text/css application/xml application/x-javascript;

    #----------------------------------------------------------------------
    # OpenPGP Public SKS Key Server
    #----------------------------------------------------------------------

    server {
        listen 80;
        listen [::]:80;
        listen ###-IPv4-address-###:11371;
        listen [###-IPv6-address-###]:11371;
        server_name keyserver.example.com;
        server_name *.sks-keyservers.net;
        server_name *.pool.sks-keyservers.net;
        server_name *.gnupg.net;
        server_name pgp.mit.edu;
        server_name pgp.ipfire.org;

        root /var/www/html;

        rewrite ^/stats /pks/lookup?op=stats;
        rewrite ^/s/(.*) /pks/lookup?search=$1;
        rewrite ^/search/(.*) /pks/lookup?search=$1;
        rewrite ^/g/(.*) /pks/lookup?op=get&search=$1;
        rewrite ^/get/(.*) /pks/lookup?op=get&search=$1;
        rewrite ^/d/(.*) /pks/lookup?op=get&options=mr&search=$1;
        rewrite ^/download/(.*) /pks/lookup?op=get&options=mr&search=$1;

        expires 1y;
        add_header Pragma public;
        add_header Cache-Control "public";

        location ~ (.git|readme.md) {
            deny all;
            return 404;
        }

        location /pks {
            proxy_pass         http://127.0.0.1:11371;
            proxy_pass_header  Server;
            add_header         Via "1.1 keyserver.example.com:11371 (nginx)";
        }
    }
}
Clone this wiki locally