server {

    # SLB IP
    listen 87.250.250.115:443 default_server reuseport backlog=4096 rcvbuf=8192 sndbuf=16384;
    listen [2a02:6b8::3:115]:443 default_server reuseport backlog=4096 rcvbuf=8192 sndbuf=16384;
    listen 87.250.250.245:443 default_server reuseport backlog=4096 rcvbuf=8192 sndbuf=16384;
    listen [2a02:6b8::3:245]:443 default_server reuseport backlog=4096 rcvbuf=8192 sndbuf=16384;

    # Tunnel IP
    listen 5.45.202.62:443;
    listen 5.45.202.63:443;
    listen 5.45.202.64:443;
    listen 5.45.202.65:443;

    # Server IP
    listen [1::2:3:4]:443;
    listen 127.0.0.1:443;
    listen [::1]:443;


    server_name certificate.mobile.yandex.net certificate.mobile.yandex.net:443 certificate-partners.mobile.yandex.net certificate-pin.yandex.net;

    set $ya_consumer_client_ip $remote_addr;

    ssl on;
    ssl_certificate certs/certificate.mobile.yandex.net.crt;
    ssl_certificate_key certs/certificate.mobile.yandex.net.key;
    ssl_ciphers kEECDH+AES128:kECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_session_cache shared:SSL:32m;
    ssl_session_timeout 5m;

    access_log /var/log/nginx/mobileproxy-pins.access.log.gz mobileproxy buffer=1024k flush=5s gzip=9;
    error_log /var/log/nginx/mobileproxy.error.log warn;

    location ^~ /ping {
        return 200 "Pong\n";
    }

    location ~ ^/api/v1/pins/?$ {
        access_log /var/log/nginx/mobileproxy-pins.access.log.gz mobileproxy buffer=1024k flush=5s gzip=9;

        if ($arg_app_id = '') {
            return 400;
        }
        if ($arg_app_version = '') {
            return 400;
        }
        if ($arg_app_platform = '') {
            return 400;
        }
        if ($arg_manufacturer = '') {
            return 400;
        }
        if ($arg_model = '') {
            return 400;
        }

        root /usr/lib/yandex/mobileproxy-nginx/pins;
        try_files /pins.json =404;
    }

    location ~ ^/api/v1/desktop_pins/?$ {
        access_log /var/log/nginx/mobileproxy-pins.access.log.gz mobileproxy buffer=1024k flush=5s gzip=9;

        if ($arg_app_id = '') {
            return 400;
        }
        if ($arg_app_version = '') {
            return 400;
        }
        if ($arg_app_platform = '') {
            return 400;
        }
        if ($arg_os_version = '') {
            return 400;
        }

        root /usr/lib/yandex/mobileproxy-nginx/pins;
        try_files /desktop_pins.json =404;
    }

    location / {
        return 404;
    }
}
