https://gist.github.com/nginx-gists/
nginx certificate authentification
events {
use epoll;
multi_accept on;
}
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
gzip on;
gzip_min_length 1100;
gzip_comp_level 6;
gzip_types text/css application/javascript;
Single process
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'
$ wrk -c 100 -t 4 -d 30s http://127.0.0.1:8777/bar
Running 30s test @ http://127.0.0.1:8777/bar
4 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.09ms 2.56ms 42.43ms 88.26%
Req/Sec 16.44k 3.38k 36.10k 71.83%
1966522 requests in 30.09s, 474.39MB read
Requests/sec: 65349.76
Transfer/sec: 15.76MB
$ wrk -c 100 -t 4 -d 30s http://127.0.0.1:8777/bar
Running 30s test @ http://127.0.0.1:8777/bar
4 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.28ms 3.27ms 84.99ms 90.26%
Req/Sec 15.66k 3.33k 31.17k 71.06%
1872796 requests in 30.09s, 451.78MB read
Requests/sec: 62246.52
Transfer/sec: 15.02MB
$ wrk -c 100 -t 4 -d 30s http://127.0.0.1:8777/bar
Running 30s test @ http://127.0.0.1:8777/bar
4 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.60ms 3.84ms 113.95ms 90.80%
Req/Sec 13.69k 3.01k 30.83k 72.70%
1636391 requests in 30.10s, 394.75MB read
Requests/sec: 54372.39
Transfer/sec: 13.12MB
$ wrk -c 100 -t 4 -d 30s http://127.0.0.1:8777/bar
Running 30s test @ http://127.0.0.1:8777/bar
4 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 8.01ms 10.74ms 139.75ms 85.36%
Req/Sec 6.67k 1.19k 13.59k 75.92%
797378 requests in 30.03s, 192.35MB read
Requests/sec: 26551.53
Transfer/sec: 6.41MB
http {
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/easy-rsa/keys/localhost.crt;
ssl_certificate_key /etc/nginx/easy-rsa/keys/localhost.key;
ssl_client_certificate /etc/nginx/easy-rsa/keys/ca.crt;
ssl_verify_client on;
ssl_verify_depth 2;
root /var/www/;
location / {
if ($ssl_client_verify != SUCCESS) { return 403; }
autoindex on; # directory listing
}
}
}
Set keepalive at upstream
location / {
proxy_http_version 1.1;
proxy_cache_background_update on;
proxy_cache_use_stale error timeout http_500; // use old when error
proxy_cache_min_uses 5;
}
location / {
proxy_cache cache;
proxy_cache_bypass $cookie_nocache $arg_nocache $http_nocache;
}
http{
proxy_cache_path /tmp/nginx/cache levels=1:2 keys_zone=cache:10m max_size=100g inactive=7d use_temp_path=off;
}
server{
location ^~ /images {
proxy_cache cache;
proxy_cache_valid 200 301 302 12h; // any 1s;
proxy_ignore_headers Cache-Control;
proxy_pass http://images.com;
}
/usr/local/nginx/sbin/nginx -t && /usr/local/nginx/sbin/nginx -s reload