Nginx 配置 HTTPS 过程(+反向代理)

这篇具有很好参考价值的文章主要介绍了Nginx 配置 HTTPS 过程(+反向代理)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

nginx配置HTTPS前置条件

1、服务器上已经安装nginx,已经配置http访问
2、nginx服务器已经安装ssl模块
3、已经拥有ssl证书,这需要你有一个域名,并且申请了证书(免费的)
4、前端访问配置了https,则服务API也是https,所以后端也要配置https。

我这里参考了一个网友的文章,有兴趣可以直达:手把手教你Nginx 配置 HTTPS 完整过程_somnus_小凯的博客-CSDN博客_nginx配置https 。

不建议只一端配置https,另一端不配置,因为浏览器会拦截并给你一个白眼:mixed-content。大意是要你: 前端https页面中不能请求 http的请求。必须将http 转为https的请求。即 nginx 配置反向代理也必须是https的。

后端的https 配置我将在后面的文章中呈现,可"搜索"本站 https。

这里略去前奏,直接上。

主要分为几步:

1、配置https server。

2、配置http重定向。

3、重启nginx,查看端口情况,访问页面。

1、配置https server。

server {
    listen       443 ssl;   # 443端口
    server_name  www.wffw88.top; # 你的域名 
    # 你的域名下申请的证书
    ssl_certificate      ../cert/www.wffw88.top_bundle.crt;
    ssl_certificate_key  ../cert/www.wffw88.top.key;
    # 默认按此配置
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout 5m;
    # 默认按此配置
    ssl_protocols TLSv1.2 TLSv1.3; 
    # 默认按此配置,配置加密套件,写法遵循 openssl 标准。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
    ssl_prefer_server_ciphers on;
    # 这里是请求后台的API,我这里以 /koa 开头
    location ^~ /koa {
        # 反向代理 服务
        proxy_pass https://wffwkoa;
    }

    location / {
        root   html;   # 这里是静态文件目录
        index  index.html index.htm;  # 这里是入口文件名称
        # 这里是 vue-router histoey 模式的默认添加
        try_files $uri $uri/ /index.html;
    }
    # error config
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
           root   html;
    }

}

如果你暂时还不能配置后端的https,则可以在nginx https server 的 localtion /api{……}中添加请求头: add_header Content-Security-Policy upgrade-insecure-requests; 不过我试了一下,chrome 浏览器还是报错,没法访问。

上面提到的 proxy_pass https://wffwkoa; 对应的是服务器地址,我这里前端后端都配置在一个服务器上,所以使用 回环地址,我的后端服务https监听的是444端口,所以这里配置如下:

upstream wffwkoa {
    server 127.0.0.1:444;
}

2、配置http重定向。

我们需要将http的请求代理到https上,也就是永久重定向 301。我在网上查到两种跳转方式,英雄美女请自选。

server {
    listen       80;
    server_name  www.wffw88.top;
    # 转到 https
    # rewrite ^(.*)$ https://$host$1 permanent;
    return 301 https://$host$request_uri;
}

3、重启nginx,查看端口情况,访问页面。

配置好了,可以重启一下了

/usr/local/nginx/sbin/nginx -s reload

查看端口:

Nginx 配置 HTTPS 过程(+反向代理)

 文章来源地址https://www.toymoban.com/news/detail-402655.html

到了这里,关于Nginx 配置 HTTPS 过程(+反向代理)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx 离线安装 https反向代理

    1.1 安装gcc和gcc-c++ 1.1.1下载依赖包 gcc依赖下载镜像地址: 官网:https://gcc.gnu.org/releases.html 阿里云镜像站:http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ CentOS 镜像站点:https://vault.centos.org/7.5.1804/os/x86_64/Packages/ ​只需下载如下依赖即可: 1.1.2 上传依赖包 下载完成后,将依赖包上

    2024年02月02日
    浏览(41)
  • kkviewfile 实现nginx反向代理+https

    3.1 如果访问出错,并且报错信息是下图 两种解决方案 第一用我打包好的jar,下载替换就行 代码是 2021年7月6日,v4.0.0 版本 下载地址:链接: https://pan.baidu.com/s/1yqJDa75tokAWQhn_tfCOmA?pwd=ribv 提取码: ribv 第二你自己在gitee拉取代码进行处理 如果拉取中报错 error: RPC failed; curl 18 tr

    2024年02月11日
    浏览(32)
  • Nginx之正向代理与反向代理进阶(支持https)

    在【Nginx之正向代理与反向代理】一文中我们实现了将Nginx服务器作为正向代理服务器和反向代理服务器, 但美中不足的是仅支持http协议,不支持https协议 。 我们先看看看http和https的区别: http协议 :协议以明文方式发送数据,不提供任何方式的数据加密。不适合传输一些敏

    2024年02月13日
    浏览(27)
  • nginx-反向代理是设置传输协议http/https

            X-Forwarded-Proto (XFP) 是一个事实上的标准首部,用来确定客户端与代理服务器或者负载均衡服务器之间的连接所采用的传输协议(HTTP 或 HTTPS)。在服务器的访问日志中记录的是负载均衡服务器与服务器之间的连接所使用的传输协议,而非客户端与负载均衡服务器

    2024年02月14日
    浏览(36)
  • nginx部署以及反向代理多域名实现HTTPS访问

    直接进入/opt/nginx_main/nginx-info里面创建了 选择域名 然后配置免费ssl证书 证书设置我们需要的域名 然后申请之后稍等一段时间 之后点击下载,下载nginx的证书文件 一个pem,一个key 然后把下载的证书放到上面的 ssl路径 记录好位置即可,步骤 2.5会用到 1.先进入阿里云的数字证

    2024年02月12日
    浏览(37)
  • nginx 开启https时反向代理http服务的问题

    当我们用nginx开启https时,反向代理一个本地的http服务,会遭遇跨域问题,报错 strict-origin-when-cross-origin ,导致很多资源无法加载。 这时只要在反向代理部分的配置文件中加入这一条语句即可:

    2024年02月14日
    浏览(26)
  • nginx反向代理https域名时,请求报错502问题排查

    微信公众号:运维开发故事,作者:冬子先生 一. 现象 在使用nginx反向代理后端服务器的时候,因为配置的是域名,导致HTTPS 请求转发失败,报 SSL 错误,js 报 502 img img 二. 排查过程 1、查看nginx日志,发现报502,但是本地curl upstream中的后端域名是可以正常通的 img 2、查看后端

    2024年02月11日
    浏览(28)
  • 通过nginx将https协议反向代理到http协议请求上

    目前一个系统仅支持https协议访问,因后端服务基于ssl协议,前端在请求是也需要支持ssl协议的https请求来访问。目前的代理服务器是nginx,现在想要 通过http访问系统 ,需通过nginx的 反向代理 或者 重定向方式 将https请求代理为http请求。可实现的做法有如下几种: 1、使后端

    2024年02月08日
    浏览(28)
  • Nginx搭建Https反向代理,使用阿里云免费SSL证书 - Docker

    没有docker需提前安装docker,不知怎么安装的请自行百度。 1、拉取镜像 2、去阿里云或者其他云服务提供商申请免费证书,申请到之后下载下来,上传到服务器 把证书上传到ssl目录下面,下面是ssl的目录结构 /root/nginx/ssl 和上传的证书有两个文件一个 .key 一个 .pem 进入nginx-pr

    2024年02月09日
    浏览(77)
  • Nginx代理nginx.conf配置——反向代理(对WebSocket支持)

    基于Nginx代理nginx.conf配置——反向代理,如果要添加websocket支持,需要进行如下配置 在http中添加一下配置,添加对websocket支持 配置后重新运行nginx后,websocket即可成功代理。 注意防火墙端口是否开放、nginx如果使用docker,其对应的端口是否映射出来。

    2024年02月13日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包