AMH 社区首页
AMH社区 - 开放自由有价值的社区
[求助帖] 【修正版】ssl使用以及nginx性能优化 |
|
---|---|
iseeyo |
iseeyo 发表于 2016-04-30 20:57:01
分享下ssl使用及nginx优化方法,同时分析了下目前AMH存在的问题,A大关注下,看看能不能对这些存在的问题进行优化下呢?:P
1、amssl生成的ssl证书在各大浏览器上显示是风险不安全证书(这个证书也就相当于无效了),建议吸纳沃通或者Let's Encrypt等证书,景安的免费ssl证书用的就是沃通的api接口生成的。 2、第三方ssl证书申请地址:https://www.aliyun.com/product/cas ,过程中建议直接使用填写密码获取证书的便捷方式,申请得的证书压缩包有nginx、apache、iis、tomcat等web服务器的使用证书,其中nginx证书有.crt和.key两个文件,在amh的amssl里配置证书时只需第以一、三步,第二步的csr配置直接忽略,配置完应用到对应站点即可生效。如果还未生效还得在防火墙开启443端口。(注意:目前基本上的cdn譬如百度云加速都不支持https,所以使用cdn的用户暂时无法使用ssl) 3、虚拟主机切换Rewrite规则后,https.conf文件未能同步切换,这点需改进。 4、有些搜索引擎是不支持https抓取的,有些系统也不支持https(如XP系统也不支持SNI),这就涉及到了http和https共存以及显示谁的问题。 amh采用的是双server段方式: http方式下,如果浏览器或者搜索引擎支持https则跳到https if ($http_user_agent !~* "(Windows\ NT\ 5.1;Windows\ NT\ 5.2)|BaiduSpider|360Spider|YisouSpider") { https方式下,如果浏览器或者搜索引擎不支持https则跳到httprewrite ^(.*)$ https://$host$1 permanent; } if ($http_user_agent ~* "(Windows\ NT\ 5.1;Windows\ NT\ 5.2)|BaiduSpider|360Spider|YisouSpider") { 5、nginx性能优化(包含),amh默认情况下是没有对nginx进行优化的rewrite ^(.*)$ http://$host$1 permanent; } http {
### TCP 优化 sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 60; ### 开启 Gzip gzip on; gzip_vary on; gzip_comp_level 6; gzip_buffers 16 8k; gzip_min_length 1000; gzip_proxied any; gzip_disable "msie6"; gzip_http_version 1.0; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript; ### 开启缓存 # 定义服务端缓存目录和属性值 proxy_cache_path /home/jerry/cache/nginx/proxy_cache_path levels=1:2 keys_zone=pnc:300m inactive=7d max_size=10g; proxy_temp_path /home/jerry/cache/nginx/proxy_temp_path; proxy_cache_key $host$uri$is_args$args; server { location / { resolver 127.0.0.1; proxy_cache pnc; proxy_cache_valid 200 304 2h; # 服务端缓存:状态值等于 200 和 304 的响应缓存 2 小时 proxy_cache_lock on; proxy_cache_lock_timeout 5s; proxy_cache_use_stale updating error timeout invalid_header http_500 http_502; proxy_http_version 1.1; proxy_ignore_headers Set-Cookie; # 移除 Set-Cookie ... ... } # 客户端缓存:开启 etag 、设置 expires 为最大值 location ~ ^/static/ { root /home/jerry/www/blog/www; etag on; expires max; } ### HTTPS 优化 ## 缓存 TLS 会话供后续连接使用:简化 TLS 握手 ssl_session_cache shared:SSL:10m; # session_cache 缓存方式 ssl_session_timeout 60m; ssl_session_tickets on; # session_tickets 缓存方式 ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /xxx/full_chain.crt; resolver 8.8.4.4 8.8.8.8 valid=300s; resolver_timeout 10s; # 配置 OCSP stapling 策略:让浏览器跳过在线验证证书有效性,用服务端获取 OCSP 同时更好地缓存 ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /xxx/full_chain.crt; resolver 8.8.4.4 8.8.8.8 valid=300s; resolver_timeout 10s; ### 使用 HTTP/2 listen 443 ssl http2 fastopen=3 reuseport; # 限制 fastopen 为 3 减少攻击导致资源耗尽(仅支持Kernel3.7以上内核)、启用 SO_REUSEPORT 监听多个 socket(每个 Worker 都能分到一个) ... ... } ... ... }
点赞,加油! (1分)
2016-04-30 20:57:01 1
|
iseeyo |
"(Windows\ NT\ 5.1;Windows\ NT\ 5.2)|BaiduSpider|360Spider|YisouSpider" 其中这一段请自行修改
回复
2016-04-30 21:00:25 2
|
iseeyo |
Linux从3.5开始支持fastopen特性,但是需要手动开启,linux3.10开始默认开启。
回复
2016-04-30 21:06:26 3
|
iseeyo |
支持https的有:谷歌、必应、搜狗、百度
不支持的有: 360、神马(宜搜)等
回复
2016-04-30 21:11:20 4
|
iseeyo |
http_user_agent判断的方式比直接全局强制跳转好100倍!!!
回复
2016-04-30 21:16:40 5
|
roppl |
这次更新一起整合了吧 nginx 也更新1.10.0稳定版本 可以开启http/2了
回复
2016-05-02 00:22:57 6
|