• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Nginx配置反向代理服务器实现在https网站中请求http资源

    发布者: 涵韵3588 | 发布时间: 2025-8-16 17:57| 查看数: 59| 评论数: 0|帖子模式

    一、前言
    1. ‌Nginx
    复制代码
    反向代理‌是一种将客户端请求转发到后端服务器的技术,主要用于负载均衡、提高安全性和提升性能。与正向代理不同,反向代理隐藏了后端服务器的真实地址,客户端与之交互时只知道反向代理服务器的地址。‌

    二、Nginx反向代理的工作原理

    当客户端发送请求到反向代理服务器时,Nginx 会接收这些请求,并根据配置将请求转发到后端的真实服务器上。Nginx 可以将多个请求分发到多个后端服务器,从而实现负载均衡,提高系统的并发处理能力和可用性。常见的负载均衡算法有轮询、IP 哈希、最少连接等。

    三、Nginx反向代理的主要功能‌


    • 负载均衡‌
      1. Nginx
      复制代码
      可以通过反向代理实现负载均衡,将请求分发到多个后端服务器上,从而提高系统的并发处理能力和可用性。
    • 缓存加速‌
      1. Nginx
      复制代码
      可以缓存静态资源或动态页面,减少后端服务器的负载,提高响应速度。通过设置缓存时间、缓存规则等参数,可以灵活地控制缓存策略。‌
    • SSL终端‌
      1. Nginx
      复制代码
      可以作为
      1. SSL
      复制代码
      终端,接收
      1. HTTPS
      复制代码
      请求并进行
      1. SSL/TLS
      复制代码
      解密,然后将解密后的请求转发给后端服务器,减轻后端服务器的负担,提高安全性和性能。‌
    • 安全过滤‌
      1. Nginx
      复制代码
      可以通过反向代理实现安全过滤功能,例如防止恶意请求、
      1. DDoS
      复制代码
      攻击、
      1. SQL
      复制代码
      注入等。通过配置访问控制规则、限制请求频率等方式,可以提高系统的安全性。

    四、Nginx反向代理的配置和使用场景
    1. Nginx
    复制代码
    的反向代理功能通过配置文件进行配置,配置文件包含了全局配置、http配置和
    1. server
    复制代码
    配置等部分,可以设置监听端口、代理规则、缓存配置、负载均衡策略等。
    1. Nginx
    复制代码
    具有高性能的特点,采用异步非阻塞的事件驱动模型,可以处理大量并发连接,同时内存消耗较低,适合在资源有限的环境中使用。

    五、实战配置

    网站使用
    1. nginx
    复制代码
    作为服务器,协议从
    1. http
    复制代码
    升级为
    1. https
    复制代码
    的注意事项。

    5.1 首先,修改宝塔面板配置

    选择配置文件,
    1. http
    复制代码
    请求重定向为
    1. https
    复制代码
    。所有
    1. 80
    复制代码
    端口请求都重定向为
    1. https
    复制代码
    请求。
    1. # server代表的是nginx其中的一个服务器
    2. server
    3. {
    4.     listen 80; # listen表示监听端口号80 (http)
    5.     listen 443 ssl http2; # 表示监听443 端口号(https)
    6.     server_name www.abc.com abc.com ip地址; # server_name表示服务器名称,现在同时匹配3个
    7.     index index.php index.html index.htm default.php default.htm default.html; # 匹配/www/wwwroot/abc/index.html
    8.     root /www/wwwroot/abc; # abc表示路径,网站的起始位置为/www/wwwroot/abc
    9.    

    10.     #HTTP_TO_HTTPS_START
    11.     if ($server_port !~ 443){ # 端口号不等于443,则重写url到https://当前主机/后面所有路径,并永久重定向(permanent)
    12.         rewrite ^(/.*)$ https://$host$1 permanent;
    13.     }
    复制代码
    5.2 接着配置代理服务器
    1. # 代理serve图片服务器api
    2.     location /api/ {
    3.    # 通过代理,访问https://ip|域名/api/...时,代理到http://你的ip或域名:3004/api/...
    4.         proxy_pass http://你的ip或域名:3004; # 注意`http://你的ip或域名:3004`末尾不添加`/`,这样的话`/api/`将会添加到3004后面
    5.         proxy_redirect  off;
    6.             proxy_set_header  Host  $host;
    7.             proxy_set_header  X-Real-IP  $remote_addr;
    8.             proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    9.             proxy_set_header  X-Forwarded-Proto  $scheme;
    10.     }
    11.    
    12.     # 代理音乐服务器api
    13.     # /musicapi/,必须加上后面的/,不然代理服务不成功
    14.     location /musicapi/ {
    15.     # 访问https://你的ip或域名/musicapi/...,
    16.     # 代理到http://你的ip或域名:3005/...,不包括/musicapi
    17.         proxy_pass http://你的ip或域名:3005/; # 这里末尾添加了`/`,将不会添加`/musicapi/`在端口号后面
    18.         proxy_redirect  off;
    19.             proxy_set_header  Host  $host;
    20.             proxy_set_header  X-Real-IP  $remote_addr;
    21.             proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    22.             proxy_set_header  X-Forwarded-Proto  $scheme;
    23.     }
    复制代码
    5.3 完成上面所有配置后
    1. http
    复制代码
    网站升级到
    1. https
    复制代码
    网站,浏览器可正常访问网站,网站请求的
    1. api
    复制代码
    接口,需要从
    1. http://ip| 域名 :3005/lyric?id=32507038
    复制代码
    修改为
    1. http(s)://ip|域名/musicapi/lyric?id=32507038
    复制代码
    。这里的流程就是,把原本请求的
    1. :3005
    复制代码
    1. /musicapi
    复制代码
    替换掉,然后浏览器发出并重定向成
    1. https
    复制代码
    开头的请求,接着
    1. nginx
    复制代码
    发现你的请求中带有
    1. /musicapi
    复制代码
    ,就把你的请求转发给匹配上的
    1. http://
    复制代码
    你的
    1. ip
    复制代码
    或域名
    1. :3005/
    复制代码
    服务器。

    5.4 最后还要在原来的index.html文件里添加
    1. # 把http链接升级为https
    2. <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
    复制代码
    5.5 或者可以操作服务端的话,也可以在nginx配置里添加
    1. server
    2. {
    3.     listen 80;
    4.     listen 443 ssl http2;
    5.     ......
    6.     #升级可以升级为https的连接,兼容http
    7.     add_header Content-Security-Policy "upgrade-insecure-requests;connect-src *";
    8. }
    复制代码
    以上就是Nginx配置反向代理服务器实现在https网站中请求http资源的详细内容,更多关于Nginx配置反向代理服务器的资料请关注脚本之家其它相关文章!

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表