nginx 1 (只处理http)大概配置:
user root;
worker_processes 24;
events {
use epoll;
worker_connections 40480;
accept_mutex off;
}
http{
server {
# 只处理80端口
listen 80 default_server backlog=655350;
server_name abc.cn;
localtion = /lua {
content_by_lua ' ..... some lua code ';
}
localtion / {
fastcgi_pass unixsock:///var/run/php.sock;
}
}
}
nginx 2 大概 配置如下:
user root;
worker_processes 24;
events {
use epoll;
worker_connections 40480;
accept_mutex off;
}
http{
upstream backend{
server 127.0.0.1:80;
keepalive 16;
}
proxy_redirect http://backend:80/ http://$host/;
server { #处理HTTPS
listen 443 default_server backlog=655350;
server_name abc.cn;
ssl on;
ssl_certificate ssl/abc.cn.crt;
ssl_certificate_key ssl/abc.cn.key;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
ssl_prefer_server_ciphers on;
localtion / {
proxy_pass http://backend;
}
}
}
把处理https的nginx分离主要是因为ssl证书带密码,每次reload nginx都要输密码(悲崔的是密码只在主运维组长一人手里)
为了方便修改lua代码后,无痛重启nginx,故把443端口的分离出来。每次只需reload 80 端口的nginx.
问题:
1. 网站忙时,443的nginx CPU占到了35%, 这正常吗?只是加解密数据 --- 当然网站近8成的请求是使用HTTPS的。
补充:机器 24个CPU. 忙时大概总CPU使用率在40%。
2. 对这种使用两个nginx来绕开有密码的ssl证书的做法,大家持什么态度?求一个更靠普的方案。
3. 处理https上,ngx还有针对SSL CPU优化的配置吗?