windows配置NGINX、NGINX配置SSL证书通过HTTPS访问、使用HTTPS通过NGINX代理访问服务器端项目
1、windows配置nginx
1)在nginx官网下载稳定版nginx,nginx官网:http://nginx.org/en/download.html
2)解压文件,注:存放目录最好不要带有中文,
3)在安装目录下按住 shift 加 鼠标右键,打开cmd命令行窗口,执行 start .\nginx.exe
4)打开浏览器,访问localhost,出现nginx的欢迎页面,表示nginx安装成功
附:关于windows操作nginx的命令,以下命令都需要在nginx的安装目录下打开CMD命令窗口执行。
启动nginx:start .\nginx.exe
停止nginx:nginx.exe -s stop 快速停止nginx可能并不保存相关信息 或 nginx.exe -s quit 完整有序的停止nginx并保存相关信息。
改动配置文件后查看配置文件参数是否正确:.\nginx -t 出现successful表示配置文件没问题
改动配置文件后重新载入:.\nginx -s reload
查看nginx版本:.\nginx -v
2、NGINX配置SSL证书通过HTTPS访问
1)先根据自己系统的版本,下载安装OpenSSL:http://slproweb.com/products/Win32OpenSSL.html
下载完成之后安装到指定目录
2)为OpenSSL配置环境变量
变量名:OPENSSL_HOME
变量值:C:\Users\78425\OpenSSL-Win64\bin 改为你的OPENSSL安装目录
记得添加到path中
3)在nginx的安装目录创建存储SSL证书的文件夹
4)按住shift 点击鼠标右键,打开cmd命令窗口
5)首先创建私钥
输入命令:openssl genrsa -des3 -out test.key 1024
注:test.key 是私钥文件名,随便取,无所谓
这里会让你给私钥设置一个密码,随便设置一个,我的是:123456
接着会让你再次设置一遍密码,和之前保持一致:123456
6)去除之前创建私钥设置的密码,不然配置到nginx后启动还要输入密码,太麻烦
首先复制一份test.key文件,命名为:test.key.org
输入命令:openssl rsa -in test.key.org -out test.key
然后输入之前设置的密码:123456
7)创建csr文件
输入命令:openssl req -new -key test.key -out test.csr
注:test.csr 是文件名,随便取,无所谓
接着会让你输入一些数据,如下图,其他的都无所谓,随便输,黄色框起来的是要输入你的SSL证书绑定的域名/访问地址。这里我绑定的是本机。
8)生成crt证书
输入命令:openssl x509 -req -days 365 -in test.csr -signkey test.key -out test.crt
然后打开之前在nginx创建的ssl文件夹,会有四个文件:
9)修改nginx的配置文件,达到我们可以通过 https://localhost 访问nginx欢迎页的目的
打开nginx目录下的config目录,打开nginx.conf配置文件,找到配置文件内被 #号 注释掉的SSL访问的配置参数。
去除 #号,把 ssl_certificate 和 ssl_certificate_key 两个参数改为我们生成的证书相关文件,如下图:
改完之后保存,在nginx的安装目录,打开cmd窗口,输入 .\nginx -s reload 重新载入配置文件
10)打开浏览器,输入 https://localhost ,你的浏览器可能会出现 “您的链接不是私密链接” 等提示信息,这时候点击高级,继续访问,出现下面的nginx欢迎页则表示成功!
3、使用HTTPS通过NGINX代理访问服务器端项目
1)打开nginx的配置文件,增加几个参数,如下图:
注释: root index
增加: proxy_pass http://xxx.xxx.xxx.xxx:8001; # 服务器端IP及部署的项目访问端口
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
改完之后保存,在nginx的安装目录,打开cmd窗口,输入 .\nginx -s reload 重新载入配置文件
2)打开浏览器,输入:https://localhost/index.html 如果可以正常访问服务器端的项目或页面,则成功!!!
注:我的理解,这里的 localhost 会被nginx反向代理到配置文件里配置的proxy_pass参数,也就是 https://localhost/index.html 等于 https://xxx.xxx.xx:8001/index.html
作者:Coder_lp
来源链接:https://blog.csdn.net/Coder_lp/article/details/107950096
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。