产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] 【修正版】ssl使用以及nginx性能优化

iseeyo
金牌会员
5375.36 价值分

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") {
rewrite ^(.*)$ https://$host$1 permanent;
}
https方式下,如果浏览器或者搜索引擎不支持https则跳到http
if ($http_user_agent ~* "(Windows\ NT\ 5.1;Windows\ NT\ 5.2)|BaiduSpider|360Spider|YisouSpider") {
rewrite ^(.*)$ http://$host$1 permanent;
}
5、nginx性能优化(包含),amh默认情况下是没有对nginx进行优化的
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 都能分到一个)
... ...
}
... ...
}
2016-04-30 20:57:01 1

iseeyo
金牌会员
5375.36 价值分

"(Windows\ NT\ 5.1;Windows\ NT\ 5.2)|BaiduSpider|360Spider|YisouSpider" 其中这一段请自行修改
  支持 (0分)  反对 (0分)
回复  2016-04-30 21:00:25 2

iseeyo
金牌会员
5375.36 价值分

Linux从3.5开始支持fastopen特性,但是需要手动开启,linux3.10开始默认开启。
  支持 (0分)  反对 (0分)
回复  2016-04-30 21:06:26 3

iseeyo
金牌会员
5375.36 价值分

支持https的有:谷歌、必应、搜狗、百度
不支持的有: 360、神马(宜搜)等
  支持 (0分)  反对 (0分)
回复  2016-04-30 21:11:20 4

iseeyo
金牌会员
5375.36 价值分

http_user_agent判断的方式比直接全局强制跳转好100倍!!!
  支持 (0分)  反对 (0分)
回复  2016-04-30 21:16:40 5

roppl
铜牌会员
768.00 价值分

这次更新一起整合了吧 nginx 也更新1.10.0稳定版本 可以开启http/2了
  支持 (0分)  反对 (0分)
回复  2016-05-02 00:22:57 6
 1  (总1页)
AMH社区列表
用户服务中心