直接看配置:
server {
listen 443 ssl;
server_name {{你的域名}};
root {{项目目录}};
charset utf-8;
location / {
index index.php index.html;
}
location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|ico|rar|css|js|zip|txt|flv|swf|mid|doc|ppt|xls|pdf|txt|mp3|wma|woff|woff2|ttf)$ {
root {{项目目录}};
allow all;
}
location ~^(.+\.php)(.*)$ {
limit_req zone=commonper burst=50;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
#日志记录
#注意 我这里自定义的es日志格式es_access 直接复制会报错哟
access_log logs/es/main.log es_access;
}
###### HTTPS 重点配置 ######
#指定服务器证书的路径
ssl_certificate /usr/local/nginx/conf/ca/erp.cer;
#指定私钥的路径
ssl_certificate_key /usr/local/nginx/conf/ca/erp.key;
#指定 SSL 协议(Nginx 默认使用)
ssl_protocols SSLv2 SSLv3 TLSv1;
#以 OpenSSL 库理解的格式指定密码(Nginx 默认使用)
ssl_ciphers HIGH:!aNULL:!MD5;
#依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
ssl_prefer_server_ciphers on;
#https优化
#指定 SSL 共享缓存的大小为 10M
ssl_session_cache shared:SSL:1m;
#指定 SSL 共享缓存的超时为 10 mins
ssl_session_timeout 5m;
#关闭nginx版本号 [无关紧要]
server_tokens off;
}
PS
:
证书文件需要部门申请,我这里是直接申请下来的证书文件。
需要证书教程的自行百度哈~
知识点:
HTTPS
服务器优化
SSL 连接会占用更多的更多的 CPU 资源(例如 SSL 握手),因此在多处理器系统上,应多运行几个工作进程(worker process
)。
有两种方法可以减少每个客户端执行 SSL 握手的操作:
- 首先使连接 keep-alive,然后通过一个连接发送多个请求。
- 然后是重用 SSL session 参数,以避免并行和后续连接的
SSL 握手。
Session 存储在 worker
共享的 SSL session
高速缓存中,并可通过 ssl_session_cache
指令配置。
在 http \ server上下文中对 session 的配置如下所示。
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_cache
,指定 SSL 共享缓存的大小为 10M。
ssl_session_timeout
,指定 SSL 共享缓存的超时为 10 mins。