Nginx配置Https
通过使用 Nginx配置 Https的方式,基本思路就是通过 转发 或者 重写url的思路,但是大多数情况下都会选择转发的形式,这样更高效一点。
配置的步骤有两大步: 1. 获取SSL证书 2. 通过配置nginx实现https
1.获取SSL加密证书
SSL证书可以通过 自签的形式 也可以从厂商中获取。本次我采用的是从阿里云获取免费的个人测试证书,一个账号可以获取20个SSL证书。这个测试证书的有效期为3个月如果证书过期可以重新获取,并重新部署到Nginx上。
1.登陆阿里云,然后搜索SSL证书,点击控制台里边那个 数字证书管理服务
2.创建个人测试证书,需要输入该证书对应要加密网站的域名。
这个这个过程需要稍微等一会,知道证书创建好就可以了
3.下载适用于Nginx的证书文件
4.在Nginx服务的主目录下创建一个 card 目录
5.将下载的证书压缩包上传到card目录下,并解压
[root@llh nginx]$ unzip 18509356_www.lzyjs.tech_nginx.zip -d card/
2.使用Nginx配置Https
我这里只是需要 加密一下我的 http:://127.0.0.1:8090 这个地址。
主要的思路就是通过 http 的方式接受到用户的请求,然后将请求转发给nginx中的https的server,这样就可以完成Https的配置。
2.1 编写Nginx配置文件
在conf.d目录下,创建一个 blog.conf
配置文件
# 接受http请求的server
server {
# 监听本机的80地址
listen 80;
# 监听请求路径为 www.lzyjs.tech
server_name www.lzyjs.tech;
# rewrite ^/(.*)$ https://www.lzyjs.tech:443/$1 permanent; # 通过重写url的方式来将请求发送给https对应服务器,效率比转发低,不采用
return 301 https://$host$request_uri; # 通过 return 转发的方法,将所有请求转发给 https 对应服务器,并指定转发码为301
}
# 接受https请求的server
server {
listen 443 ssl; # 监听443端口,并设置加密方式为ssl加密方式。
server_name www.lzyjs.tech; # 监听地址为 www.lzyjs.tech
ssl_certificate /software/nginx/card/www.lzyjs.tech.pem; # 指定SSL证书。
ssl_certificate_key /software/nginx/card/www.lzyjs.tech.key;
location / { # 匹配所有uri路径
proxy_pass http://127.0.0.1:8090; # 将请求转发给本地的 http://127.0.0.1:8090 端口,这个端口对应的是一个应用程序,可以处理对应的请求。
}
}
2.2 检查Nginx语法并重启
检查配置文件语法
[root@llh nginx]$ ls
18509356_www.lzyjs.tech_nginx.zip card client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp
[root@llh nginx]$ cd sbin
[root@llh sbin]$ ls
nginx
[root@llh sbin]$ ./nginx -t
nginx: the configuration file /software/nginx//conf/nginx.conf syntax is ok
nginx: configuration file /software/nginx//conf/nginx.conf test is successful # nginx的配置文件语法没有问题,那么就重启nginx
重启nginx
[root@llh sbin]$ ./nginx -s reload
[root@llh sbin]$
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
寻梦!
喜欢就支持一下吧