借助nginx实现反向代理,并通过SSL证书实现https访问以及http调整https访问。

您所在的位置:网站首页 nginx反向代理怎么传递参数 借助nginx实现反向代理,并通过SSL证书实现https访问以及http调整https访问。

借助nginx实现反向代理,并通过SSL证书实现https访问以及http调整https访问。

#借助nginx实现反向代理,并通过SSL证书实现https访问以及http调整https访问。| 来源: 网络整理| 查看: 265

目录 前言nginx反向代理为什么我们需要用到反向代理? 开始配置软件版本申请SSL证书首先安装nginx上传.crt和.key证书创建配置文件验证配置文件并重启nginx服务 成功若有帮助,希望可以点赞收藏😁。

前言

这段时间借助hexo粗略的搭建了一个自己的个人博客,通过域名访问时发现浏览器一直不安全,最后发现是因为一直通过的http访问。想着既然如此一步到位,完善成https访问方式。正巧腾讯云域名申请报备后, SSL证书的申请很容易, 查阅了不少资料,作为小白最后也完成了这一目标。 所以在这里将踩过的坑,以及经验步骤总结如下,欢迎指正😀。 首先我会简单解释一下nginx、以及反向代理。

nginx

能找到的大多数资料都是基于 nginx 实现的,那么什么是 nginx 呢?

Nginx(发音同“engine X”)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。 ——摘自维基百科

对于不熟悉web的人,或者小白可以将其看作一网页服务器就好,我们这里需要用到的主要有反向代理。

反向代理

借助在知乎上找到的一个图可以很好的解释 没看明白?没事,来点形象的栗子😏 正向代理:

假如你们宿舍只有一位同学可以用手机上网购物,你们有购物的需求都需要借助这位同学来实现。在这个过程中,最终你们都可以达到在电商平台购物的目的,但对于电商平台或者说店家来说,他并不知道到底是谁购买了产品。

在宿舍这可看作一个小的LAN,那位可以用手机上网的同学则充当了正向代理的作用,即我们一般意义上的代理。 反向代理:

换个栗子,你们社团需要买一些办公用品以及活动用品,交由一个同学外出采购,因为他有附近所有商家的联系方式。你们将需要购买的用品告诉那个同学后,那个同学外出采购,再带回来。在这个过程中,你们只提交了需求,交由那个同学去完成,而最终每一个物品在实际在哪家店购买,你们并不知晓。

在上面这个过程中,那位 同学便 扮演了反向代理的角色。

为什么我们需要用到反向代理?

1、保护服务安全 隐藏服务节点的IP; 将服务节点置于防火墙之后,避免直接攻击业务节点服务器。 2、服务节点更专注于业务,同时提升性能 由于有反向代理的存在,可以让反向代理服务器去实现比如https、gzip压缩等与业务无关的功能; 提供动静态分离,将静态文件发往静态服务器或本地文件系统,避免业务节点处理这些与业务无关的请求; 提供缓存机制,将一些短时间内不会变化的动态内容,在反向代理服务器这层增加缓存,降低业务服务器的请求量; 由于控制权在代理服务这边,完全可以根据服务节点的性能动态分配请求,做到服务节点性能最佳。 正是由于Ngxin引入了反向代理的特性,让请求和响应都要经过Nginx,因此给Nginx带来了非常多的可能。比如负载均衡、HTTP缓存等。

以上内容来自:php中文网 说回实际,因为 hexo 服务默认开启端口是4000,我们可以通过反向代理将 https 或者 http 指向4000端口。

开始配置 软件版本 软件版本ubuntu18.04.5nginx1.14.0(Ubuntu)

注意由于nginx版本不同,配置可能不同

申请SSL证书

配置https服务,必须得有SSL证书。在某某云申请的域名、云服务器,都可以在对应的平台申请SSL 证书,很容易且快速。

在腾讯云官网购买的云服务器,您可以登录 云服务器控制台 获取服务器 IP 地址、用户名及密码。

申请下SSL证书,将其下载解压后,会发现有Nginx文件夹,打开里面的.crt和.key文件即分别是你的证书和密钥。

首先安装nginx sudo apt install nginx 上传.crt和.key证书

安装好的 nginx 在 /etc/nginx 目录下,在此目录我们先创建一个ssl的目录用来存储证书。

cd /etc/nginx sudo mkdir ssl

再通过ftp或者ssh将证书的.crt和.key文件上传到 ssl 这个目录下。 故这样你的 证书路径就是 /etc/nginx/ssl/1_xxxxxxx.xxx.crt 密钥路径:/etc/nginx/ssl/2_xxxxxxxx.xxx.key

创建配置文件

在 /etc/nginx/conf.d 目录下,创建 yoursite.conf 文件,内容如下: 以下配置参考自腾讯云文档中心

server { #SSL 访问端口号为 443 listen 443 ssl; #填写绑定证书的域名 server_name your_domain_name; #证书文件名称 即.crt文件路径 ssl_certificate /etc/nginx/ssl/1_xxxxxxx.xxx.crt; #私钥文件名称 即.key文件路径 ssl_certificate_key /etc/nginx/ssl/2_xxxxxxxx.xxx.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 root html; index index.html index.htm; #配置代理 因为hexo默认端口为4000,故使其指向 proxy_pass http://localhost:4000; } } server { listen 80; #填写绑定证书的域名 server_name your_domain_name; #把http的域名请求转成https return 301 https://$host$request_uri; }

完成后,保存并退出。 第一个 server 是配置443端口的https服务,第二个server 是使http自动跳转到Https的安全配置。

验证配置文件并重启nginx服务

在nginx根目录下,通过执行以下指令验证配置文件是否正确

sudo nginx -t

显示ok和successful则代表成功。 重启nginx服务

sudo systemctl restart nginx

检查nginx状态

systemctl status nginx 成功

到这里一切顺利的话,则代表你的配置成功了,现在已经可以通过Https访问你的网站,浏览器不会再显示不安全😏。 在这里插入图片描述

若有帮助,希望可以点赞收藏😁。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3