win764位下配置http2+nginx+nodeJS.docx_第1页
win764位下配置http2+nginx+nodeJS.docx_第2页
win764位下配置http2+nginx+nodeJS.docx_第3页
win764位下配置http2+nginx+nodeJS.docx_第4页
win764位下配置http2+nginx+nodeJS.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

最近要调研http2能给页面带来多少访问速度的提升,所以自己先搭一个环境测试一下;一、CA数字证书:要升级http2首先是要把http升级到https,https升级就需要CA证书,但由于现代的浏览器都已默认安装了一些网络证书,所以我们访问淘宝,京东之类的网站就不需要让用户自己安装了,其它没有安装的证书就得用户自己得去安装了;现在网络上的很多https证书,有免费的也有付费的,但作为我是用于自己调试与测试用,当然找免费的了,但免费的证书需要申请与审核,时间也是得等,加上功能上也有限制,好吧,我是迫不及待的用证书,来调试,最后找到了OpenSSL,自己来创建证书,省去申请的时间,那现在就说说OpenSSL如何创建一个 ca证书,服务器证书与客户端证书;安装准备:下载OpenSSL我用的版本是openssl-1.1.0下载安装ActivePerl最新版本即可;下载安装nasm最新版本即可;下载安装Visual Studio 2015 自己上度娘找吧,很多;先把OpenSSL解压到E盘,目录名称为openssl-1.1.0;点击开始按钮,选择Visual Studio Tools 下的64位编译机,定位到E:/openssl-1.1.0输入命令:/初始化文件目录$ perl Configure VC-WIN64A -prefix=E:/openssl-1.1.0/win64_OpenSSL -openssldir=E:/openssl-1.1.0/win64_SSL$ nmake$ nmake test$ nmake install注意,以上的安装方法一定要参考该版本的安装方法,这个安装方法的文件一般叫INSTALL,网上有很多方法,都是老版本来的;生成密钥、证书第一步,为服务器端和客户端准备公钥、私钥# 生成服务器端私钥genrsa -out server.key 1024# 生成服务器端公钥rsa -in server.key -pubout -out server.pem# 生成客户端私钥genrsa -out client.key 1024# 生成客户端公钥rsa -in client.key -pubout -out client.pem第二步,生成 CA 证书# 生成 CA 私钥genrsa -out ca.key 1024# X.509 Certificate Signing Request (CSR) Management.req -config E:openssl-1.1.0win64_SSLf -new -key ca.key -out ca.csr# X.509 Certificate Data Management.x509 -req -in ca.csr -signkey ca.key -out ca.crtCountry Name (2 letter code) AU:CHState or Province Name (full name) Some-State:Guangdong ProvinceLocality Name (eg, city) :GuangzhouOrganization Name (eg, company) Internet Widgits Pty Ltd:123.comOrganizational Unit Name (eg, section) :IT# 这里是写你的服务器域名Common Name (e.g. server FQDN or YOUR name) :*.123.comEmail Address :*.netPlease enter the following extra attributesto be sent with your certificate requestA challenge password :1234An optional company name :JINJIN第三步,生成服务器端证书和客户端证书 (注:每次生成完csr与crt 要把命令工具关闭重新打开,否则报错)# 服务器端需要向 CA 机构申请签名证书,在申请签名证书之前依然是创建自己的 CSR 文件req -config E:openssl-1.1.0win64_SSLf -new -key server.key -out server.csr# 向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,最终颁发一个带有 CA 签名的证书x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt# 其它参考上面的,唯一区别这就句Organization Name (eg, company) Internet Widgits Pty Ltd:# 向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,最终颁发一个带有 CA 签名的证书x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt# client 端到 CA 签名x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt# 其它参考上面的,唯一区别这就句Organization Name (eg, company) Internet Widgits Pty Ltd:生成后的文件如下:二、nginx配置:首先先下载一个nginx的稳定版本 1.10.1;由于windows下的nginx是默认没有开通http_v2_module模块,即http2.0模块,如果要开启这个模块就得自己重新编译一个新nginx.exe文件,下面就来介绍如何生成一个支持http2.0的nginx;安装准备:下载安装Visual Studio 2015;下载安装MSYS最新版本即可;下载安装ActivePerl最新版本即可;下载安装Mercurial最新版本即可;先看看官网说明,编译时要用的安装包/en/docs/howtobuildon_win32.html:需要用到pcre-8.39.tar.gz,zlib-1.2.8.tar.gz,openssl-1.0.2h.tar.gz这三个包,自行上网找吧;然后再看看nginx1.10.1开启了哪些功能:把上面开启的内容全部复制下来,注意builddir,pcre,zlib,openssl 这四个路径,要与你的生成路径匹配;生成nginx.exe第一步:首先安装Mercurial并在环境变量中添加C:Program FilesMercurial目录,因为我们需要在命令行中使用hg命令来获取nginx的源码。hg clone /nginx下载nginx的依赖模块就放到nginx源码的同级目录中:nginx-lib-openssl-1.0.2h.tar.gz-pcre-8.39.tar.gz-zlib-1.2.8.tar.gz在nginx目录中新建build文件夹做为我们编译目录,并在build中新增lib存放依赖包解压目录,打开MSYS安装目录下的msys.bat命令行工具,cd到nginx/build/lib目录下执行:tar -xzf ././lib/openssl-1.0.2h.tar.gztar -xzf ././lib/pcre-8.39.tar.gztar -xzf ././lib/zlib-1.2.8.tar.gznginx/build/lib目录:nginx-build-lib-openssl-1.0.1s-pcre-8.37-zlib-1.2.8第二步:生成配置nginx生成Makefile文件,如果打包的系统是x64的话需要在生成Makefile之前把openssl模块的配置修改为x64的,到nginx/build/lib/openssl-1.0.2h目录下,找到INSTALL.W64文件,用编辑器打开,找到类似如下文字:To build for Win64/x64: perl Configure VC-WIN64A msdo_win64a nmake -f msntdll.mak cd out32dll .mstest在cmd命令行中cd到目录下分别执行前两句,执行成功即可: perl Configure VC-WIN64A msdo_win64a启动msys.bat并cd到nginx源码目录下执行:auto/configure -with-cc=cl -builddir=build -with-debug -prefix= -conf-path=conf/nginx.conf -pid-path=logs/nginx.pid -http-log-path=logs/access.log-error-log-path=logs/error.log -sbin-path=nginx.exe -http-client-body-temp-path=temp/client_body_temp -http-proxy-temp-path=temp/proxy_temp -http-fastcgi-temp-path=temp/fastcgi_temp -http-scgi-temp-path=temp/scgi_temp -http-uwsgi-temp-path=temp/uwsgi_temp -with-cc-opt=-DFD_SETSIZE=1024 -with-pcre=build/lib/pcre-8.39 -with-zlib=build/lib/zlib-1.2.8 -with-select_module -with-http_realip_module -with-http_addition_module -with-http_sub_module -with-http_dav_module -with-http_stub_status_module -with-http_flv_module -with-http_mp4_module -with-http_gunzip_module -with-http_gzip_static_module -with-http_auth_request_module -with-http_random_index_module -with-http_secure_link_module -with-http_slice_module -with-mail -with-stream -with-openssl=build/lib/openssl-1.0.2h -with-openssl-opt=no-asm -with-http_ssl_module -with-mail_ssl_module -with-stream_ssl_module -with-ipv6 -with-http_v2_module接下来用visual studio 的命令行工具来执行,因为编译生成32位的nginx,所要要用32位的编译机,执行以下代码:nmake -f build/Makefile开始执行等待大概几分钟,如果没有意外就成功了,我在编译时最后提示找不到引用sed我看了一下是mingw中的引用文件,但是不用管他我们在build下的nginx.exe已经编译成功了。编译成功后,把nginx.exe复制到之前的nginx_1.10.1的目录下,替换掉,再次查看一下开启的模块:第三步:配置一下nginx.conf文件:client_max_body_size 20M;server_names_hash_max_size 512;server_names_hash_bucket_size 128;gzip on;server listen 80; listen 443 ssl http2 default_server; server_name ; ssl on; #这里开启后,在linux上不能访问http ssl_certificate /nginx/ssl/server.crt; ssl_certificate_key /nginx/ssl/server.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论