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

ops/2025/3/11 0:17:10/
http://www.w3.org/2000/svg" style="display: none;">

文章目录

  • 一、前言
  • 二、Nginx反向代理的工作原理
  • 三、Nginx反向代理的主要功能‌
  • 四、Nginx反向代理的配置和使用场景
  • 五、实战配置
    • 5.1 首先,修改宝塔面板配置
    • 5.2 接着配置代理服务器
    • 5.3 完成上面所有配置后
    • 5.4最后还要在原来的index.html文件里添加
    • 5.5 或者可以操作服务端的话,也可以在nginx配置里添加


一、前言

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

https://i-blog.csdnimg.cn/direct/63549b61f119453d85592452e69e0e77.jpeg#pic_center" alt="在这里插入图片描述" />


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

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

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

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

四、Nginx反向代理的配置和使用场景

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

五、实战配置

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

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

选择配置文件,http 请求重定向为 https 。所有 80 端口请求都重定向为 https请求。

# server代表的是nginx其中的一个服务器
server
{listen 80; # listen表示监听端口号80 (httplisten 443 ssl http2; # 表示监听443 端口号(https)server_name www.abc.com abc.com ip地址; # server_name表示服务器名称,现在同时匹配3个index index.php index.html index.htm default.php default.htm default.html; # 匹配/www/wwwroot/abc/index.htmlroot /www/wwwroot/abc; # abc表示路径,网站的起始位置为/www/wwwroot/abc#HTTP_TO_HTTPS_STARTif ($server_port !~ 443){ # 端口号不等于443,则重写url到https://当前主机/后面所有路径,并永久重定向(permanent)rewrite ^(/.*)$ https://$host$1 permanent;}

5.2 接着配置代理服务器

# 代理serve图片服务器apilocation /api/ {# 通过代理,访问https://ip|域名/api/...时,代理到http://你的ip或域名:3004/api/...proxy_pass http://你的ip或域名:3004; # 注意`http://你的ip或域名:3004`末尾不添加`/`,这样的话`/api/`将会添加到3004后面proxy_redirect  off;proxy_set_header  Host  $host;proxy_set_header  X-Real-IP  $remote_addr;proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_set_header  X-Forwarded-Proto  $scheme;}# 代理音乐服务器api# /musicapi/,必须加上后面的/,不然代理服务不成功location /musicapi/ {# 访问https://你的ip或域名/musicapi/...,# 代理到http://你的ip或域名:3005/...,不包括/musicapiproxy_pass http://你的ip或域名:3005/; # 这里末尾添加了`/`,将不会添加`/musicapi/`在端口号后面proxy_redirect  off;proxy_set_header  Host  $host;proxy_set_header  X-Real-IP  $remote_addr;proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_set_header  X-Forwarded-Proto  $scheme;}

5.3 完成上面所有配置后

http 网站升级到 https 网站,浏览器可正常访问网站,网站请求的 api 接口,需要从 http://ip| 域名 :3005/lyric?id=32507038 修改为 http(s)://ip|域名/musicapi/lyric?id=32507038 。这里的流程就是,把原本请求的 :3005/musicapi 替换掉,然后浏览器发出并重定向成 https 开头的请求,接着 nginx 发现你的请求中带有 /musicapi ,就把你的请求转发给匹配上的 http:// 你的ip 或域名 :3005/ 服务器。

5.4最后还要在原来的index.html文件里添加

# 把http链接升级为https
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />

nginx_83">5.5 或者可以操作服务端的话,也可以在nginx配置里添加

server
{listen 80;listen 443 ssl http2;......#升级可以升级为https的连接,兼容httpadd_header Content-Security-Policy "upgrade-insecure-requests;connect-src *"; 
}

http://www.ppmy.cn/ops/164796.html

相关文章

【C++】:STL详解 —— 红黑树封装map和set

目录 红黑树的源代码 正向迭代器的代码 反向迭代器的代码 set的模拟实现 map的模拟实现 红黑树的源代码 #pragma once #include <iostream>using namespace std; // set ->key // map ->key/value// set ->key // map ->key/valueenum Colour {RED,BLAC…

小程序 -- uni-app开发微信小程序环境搭建(HBuilder X+微信开发者工具)

目录 前言 一 软件部分 1. 微信开发者工具 2. HBuilder X 开发工具 二 配置部分 1. 关于 HBuilder X 配置 2. 关于 微信开发工具 配置 三 运行项目 1. 新建项目 2. 代码编写 3. 内置浏览器 编译 4. 配置小程序 AppID获取 注意 四 实现效果 前言 uni-app开发小程…

C++20 模块:告别头文件,迎接现代化的模块系统

文章目录 引言一、C20模块简介1.1 传统头文件的局限性1.2 模块的出现 二、模块的基本概念2.1 模块声明2.2 模块接口单元2.3 模块实现单元 三、模块的优势3.1 编译时间大幅减少3.2 更好的依赖管理3.3 命名空间隔离 四、如何使用C20模块4.1 编译器支持4.2 示例项目4.3 编译和运行…

爬虫案例九js逆向爬取CBA中国篮球网

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、CBA网站分析二、代码 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 爬取CBA中国篮球网 提示&#xff1a;以下是本篇文章正文内容…

K8S单机部署

主线 :部署简单的单节点k8s - sowler - 博客园 学习网址&#xff1a;为什么我不能获取到镜像&#xff0c;ImagePullBackoff | Kuboard docker镜像源&#xff1a;https://chuxia.blog.csdn.net/article/details/145090710?spm1001.2101.3001.6650.3&utm_mediumdistribute…

每日一题-----面试

一、什么是孤儿进程&#xff1f;什么是僵尸进程&#xff1f; 1.孤儿进程是指父进程在子进程结束之前就已经退出&#xff0c;导致子进程失去了父进程的管理和控制&#xff0c;成为了 “孤儿”。此时&#xff0c;这些子进程会被系统的 init 进程&#xff08;在 Linux 系统中&…

JJJ:linux sysfs相关

文章目录 1.sysfs&#xff08;属性&#xff09;文件的创建、读、写1.1 创建流程1.2 open流程1.3 read流程 2.补充2.1 sysfs下常见目录介绍2.2 属性相关2.2.1 简介2.2.2 attribute文件的创建 2.3 sysfs目录如何创建的 1.sysfs&#xff08;属性&#xff09;文件的创建、读、写 1…

V8引擎中的垃圾回收机制如何工作?

V8引擎中的垃圾回收机制主要通过分代回收和增量标记清除算法来管理内存。以下是其工作原理的详细说明&#xff1a; V8 的垃圾回收机制基于以下核心设计原则&#xff1a; 1. 分代假设&#xff1a;大多数对象的生命周期很短&#xff0c;只有少数对象会存活较长时间&#xff1b;…