内容简介:刚刚把全站上了HTTPS,部署了CDN。在部署CDN的时候发现有个HTTP2.0支持的选项,于是开始升级HTTP2.0这是一个开源的nginx扩展项目,为nginx增加了很多有用的功能,自带了一些防火墙措施,而且提供了相当友好的控制界面安装步骤:
前言
刚刚把全站上了HTTPS,部署了CDN。在部署CDN的时候发现有个HTTP2.0支持的选项,于是开始升级HTTP2.0
安装Verynginx
这是一个开源的nginx扩展项目,为nginx增加了很多有用的功能,自带了一些防火墙措施,而且提供了相当友好的控制界面
安装步骤:
#更新一下系统 apt update apt upgrade && apt dist-upgrade #安装依赖环境 apt install git wget perl make build-essential procps libreadline-dev libncurses5-dev libpcre3-dev libssl-dev #添加nginx用户组 groupadd -r nginx && useradd -r -g nginx nginx #下载Verynginx git clone https://github.com/alexazhou/VeryNginx.git #安装Verynginx cd VeryNginx python install.py install
启动Verynginx
#启动 sudo /opt/verynginx/openresty/nginx/sbin/nginx #重载配置 sudo /opt/verynginx/openresty/nginx/sbin/nginx -s reload
申请证书
- 申请的腾讯云的 免费SSL证书 –> 传送门
- 如果有域名直接申请即可,没有域名,腾讯云 .club域名首年1元 –> 传送门
- 申请证书选择 免费版DVSSL证书
- 填写相关信息即可,如果是腾讯云够买的域名会直接发放证书,如果是其他服务商购买的需要自行添加 TXT记录 进行域名认证
部署证书
- 进入SSL证书管理,下载相应的证书
- 解压zip压缩包,将nginx目录下的 XXXX.crt 和 XXXX.key 上传到服务器上,假设目录为 /path/to/ssl
修改Verynginx配置文件
1、编辑 /opt/verynginx/openresty/nginx/conf/nginx.conf
2、添加一个include语句
include /opt/verynginx/verynginx/nginx_conf/in_http_block.conf; include /opt/verynginx/verynginx/nginx_conf/sites/*.conf; #添加此行代码 server { listen 80; #this line shoud be include in every server block include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf; location = / { root html; index index.html index.htm; } }
3、 创建文件夹 mkdir /opt/verynginx/verynginx/nginx_conf/sites
4、 进入该文件夹并新建 XXX.conf cd /opt/verynginx/verynginx/nginx_conf/sites && touch XXXX.conf
5、 编辑 XXXX.conf 文件内容如下:
server { listen 443 ssl http2 fastopen=3 reuseport; #开启HTTP2.0支持并启用端口复用 server_name XXXX; #你的域名 ssl on; ssl_certificate /path/to/ssl/XXXX.crt; #证书crt文件的路径 ssl_certificate_key /path/to/ssl/XXXX.key; #证书key文件的路径 ssl_stapling on; #开启OCSP Stapling ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 10s; ssl_buffer_size 8k; ssl_session_tickets on; ssl_session_cache shared:SSL:20m; ssl_session_timeout 10m; #设置加密协议,TLSv1协议将于2019年被废弃,如果不用IE6老古董建议不启用 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4'; #开启HSTS务必保证所有子域名都已经配置好HTTPS,否则删除掉includeSubdomains add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" always; #防止点击劫持 add_header X-Frame-Options SAMEORIGIN always; #防止XSS攻击 add_header X-XSS-Protection "1; mode=block" always; #防止MIME探测 add_header X-Content-Type-Options nosniff; #this line shoud be include in every server block include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf; root /path/to/website; #网站根目录 location / { #与普通nginx配置相同 } }
重启Verynginx
#重载配置 sudo /opt/verynginx/openresty/nginx/sbin/nginx -s reload
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- php如何实现session,自己实现session,laravel如何实现session
- AOP如何实现及实现原理
- webpack 实现 HMR 及其实现原理
- Docker实现原理之 - OverlayFS实现原理
- 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性?
- 自己实现集合框架(十):顺序栈的实现
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。