Saya menggunakan Nginx sebagai proksi ke 4 instance apache. Masalah saya adalah bahwa negosiasi SSL membutuhkan banyak waktu (600 ms). Lihat ini sebagai contoh: http://www.webpagetest.org/result/101020_8JXS/1/details/
Ini Nginx Conf saya:
user www-data;
worker_processes 4;
events {
worker_connections 2048;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 0;
tcp_nodelay on;
gzip on;
gzip_proxied any;
server_names_hash_bucket_size 128;
}
upstream abc {
server 1.1.1.1 weight=1;
server 1.1.1.2 weight=1;
server 1.1.1.3 weight=1;
}
server {
listen 443;
server_name blah;
keepalive_timeout 5;
ssl on;
ssl_certificate /blah.crt;
ssl_certificate_key /blah.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / { proxy_pass http://abc;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Mesin ini adalah VPS pada Linode dengan 1 G RAM. Adakah yang bisa mengatakan mengapa hand shake SSL memakan waktu lama?
Anda mungkin tidak memiliki sumber entropi yang bagus. Apakah
/dev/urandom
ada Jika tidak, Nginx akan memblokir pembacaan/dev/random
.Berapa ukuran kunci Anda? Lebih lama lebih lambat.
Cobalah
strace
proses untuk melihat apa yang mereka lakukan.sumber
periksa apakah Anda tidak menunggu resolusi DNS di suatu tempat.
sumber
Perubahan
untuk
Mencoba protokol sesuai urutannya.
sumber