浅入浅出之nginx

目录

    • 工作流程
    • 正向代理
      • 概念
    • 反向代理
      • 概念
    • nginx反向代理配置文件介绍
      • 解释
      • 作用
    • 参考文章
    • Nginx 常用指令和操作
      • 启动 Nginx
      • 测试配置文件
      • 快速关闭 Nginx
      • 优雅关闭 Nginx
      • 重载配置文件
      • 查看版本
      • 查看编译时的参数
      • 查看进程
      • 配置用户访问日志
      • 配置错误日志
      • 设置 web 根目录
      • 配置 server 块
      • 配置 location 块
      • 配置反向代理
      • 配置负载均衡

工作流程

  1. 用户通过域名发出访问Web服务器的请求,该域名被DNS服务器解析为反向代理服务器的IP地址
  2. 反向代理服务器接受用户的请求
  3. 反向代理服务器在本地缓存中查找请求的内容,找到后直接把内容发送给用户
  4. 如果本地缓存里没有用户所请求的信息内容,反向代理服务器会代替用户向源服务器请求同样的信息内容,并把信息内容发给用户,如果信息内容是缓存的还会把它保存到缓存中

正向代理

概念

正向代理(Forward Proxy)通常都被简称为代理,就是在用户无法正常访问外部资源,比方说受到GFW的影响无法访问twitter的时候,我们可以通过代理的方式,让用户绕过防火墙,从而连接到目标网络或者服务
Alt

反向代理

概念


反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器
Alt

nginx反向代理配置文件介绍

# Nginx 代理配置示例## `/abc/dd/` 代理配置```nginx
location /abc/dd/ {proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://200.200.111.22:1234;
}

解释

  • location /abc/dd/ {:定义了一个 location 块,匹配以 /abc/dd/ 开头的请求路径。
  • proxy_set_header Host $http_host;:设置代理请求的 Host 头部,使用客户端请求中的 Host 头部值。
  • proxy_set_header X-Real-IP $remote_addr;:设置代理请求的 X-Real-IP 头部,传递客户端的真实 IP 地址。
  • proxy_set_header REMOTE-HOST $remote_addr;:设置代理请求的 REMOTE-HOST 头部,传递客户端的真实 IP 地址。
  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;:设置代理请求的 X-Forwarded-For 头部,传递客户端的 IP 地址以及之前所有代理的 IP 地址(如果有的话)。
  • proxy_pass http://200.200.111.22:1234;:指定代理请求应该转发到的目标服务器地址。

作用

这段配置定义了一个 Nginx 代理,它将所有指向特定路径(/abc/dd/)的请求转发到目标服务器(http://200.200.111.22:1234),并在转发过程中设置了一些必要的 HTTP 头部,以传递客户端的真实 IP 地址和其他相关信息。

参考文章

nginx工作原理分析

nginx配置文件详解

当然,以下是一个以 Markdown 格式输出的 Nginx 常用指令和操作列表:

Nginx 常用指令和操作

启动 Nginx

nginx

测试配置文件

nginx -t

快速关闭 Nginx

nginx -s stop

优雅关闭 Nginx

nginx -s quit

重载配置文件

nginx -s reload

查看版本

nginx -v

查看编译时的参数

nginx -V

查看进程

ps aux | grep nginx

配置用户访问日志

access_log /path/to/log;

配置错误日志

error_log /path/to/log;

设置 web 根目录

root /path/to/webroot;

配置 server 块

server {listen 80;server_name example.com;location / {root /path/to/webroot;index index.html;}
}

配置 location 块

location / {try_files $uri $uri/ /index.html;
}

配置反向代理

location / {proxy_pass http://localhost:3000;
}

配置负载均衡

upstream backend {server backend1.example.com;server backend2.example.com;
}server {location / {proxy_pass http://backend;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/822862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode_1304.和为零的 N 个不同整数

题目: 题解: 题目说让我们返回一个由n个各不相同的整数组成的数组,相加为0。 这里的比较好的办法就是类似于 1 2 3 0 -3 -2 -1这样对称的数组。既满足要求,又好实现。 先calloc出一个容量为n的整型数组,定义两个变量…

解决java.lang.NoClassDefFoundError 问题

解决java.lang.NoClassDefFoundError 问题 一、背景二、分析三、解决 一、背景 项目运行成功之后,调用某个接口时报错,信息如下: 2024-04-17 14:59:23 [ERROR] --- [nio-8070-exec-1] c.c.c.e.LogExceptionHandleFilter : Handler dispatch failed; nest…

如何使用Git-Secrets防止将敏感信息意外上传至Git库

关于Git-Secrets Git-secrets是一款功能强大的开发安全工具,该工具可以防止开发人员意外将密码和其他敏感信息上传到Git库中。 Git-secrets首先会扫描提交的代码和说明,当与用户预先配置的正则表达式模式匹配时,便会阻止此次提交。该工具的优…

分布式光纤测温解决方案

安科瑞电气股份有限公司 祁洁 15000363176 一、方案介绍 分布式光纤测温(DTS)集光电信号检测、计算机技术等为一体,具有实时监测、测温精度高、测量距离长、可精确定位、采用光纤作为传感器和传输介质,具有抗电磁干扰、本征防…

项目文档维护(一) 快速生成项目结构图

IDEA快速生成项目树形结构图 1. 执行指令 在项目根目录下,进入cmd或terminal, 输入如下指令: tree . > tr.txt 只有文件夹 tree /f . > tr.txt 包括文件夹和文件注意尽量要使用idea, pycharm等ide, 其他工具需自己测试效果, 本人使用power …

详解网络通讯框架Netty原理,看这一篇就够了

NIO网络通信 网络通信BIONIOselectpollepollselect poll epoll对比 Netty原理Netty架构reactor响应式编程netty组件eventLoop 线程间交互Future接口Promise接口 Handler和PipelineByteBuf组成指针常用方法 网络通信 通过网络编程的基础可以知道,各设备通过I/O流写入…

如何阻止访问您的网站

本周有一个客户,购买Hostease的HK Basic Linux虚拟主机,询问我们的在线客服,如何阻止部分地区或IP段访问他的网站。我们为用户提供教程,用户很快完成了设置。在此,我们分享这个操作教程,希望可以对您有帮助…

Linux第88步_非阻塞IO实验

非阻塞IO是“应用程序”对“驱动设备”进行操作,若不能获取到设备资源,则非阻塞IO应用程序的线程不会被“挂起”,即线程不进入休眠,而是一直“轮询”,直到获取到设备资源为止,或者直接放弃。 非阻塞IO应用举…

本地部署运行大模型ollama

本地部署运行大模型ollama ollama模型下载地址 在我使用 vscode 开发时,使用 coplit 或 chatgpt 来辅助过于昂贵,于是我希望找到一个可以调用本地大模型的工具来辅助编程。 ollama 就是这样一个工具。 ollama使用 ollama 是一个可以将训练好的模型部署到…

1688店铺商品接口全攻略:一键获取商品信息,轻松玩转电商数据!

1688店铺所有商品接口技术详解 一、引言 随着电子商务的快速发展,越来越多的商家选择通过1688平台开展业务。为了方便商家获取店铺内所有商品的信息,1688平台提供了相应的API接口。本文将详细介绍如何使用这些接口获取店铺所有商品的信息,以…

GVRP协议与动态、静态vlan

一、GVRP协议使用场景 1、当实际组网复杂到网络管理员无法短时间内了解网络的拓扑结构,或者是整个网络的VLAN太多时,工作量会非常大,而且非常容易配置错误。在这种情况下,用户可以通过GVRP的VLAN自动注册功能完成VLAN的配置。 2、…

【快捷部署】020_Jenkins(2.60.3)

📣【快捷部署系列】020期信息 编号选型版本操作系统部署形式部署模式复检时间020Jenkins2.60.3Ubuntu 20.04Docker单机2024-04-17 一、快捷部署 #!/bin/bash ################################################################################# # 作者&#xff1…

BackTrader 中文文档(十二)

原文:www.backtrader.com/ Visual Chart 原文:www.backtrader.com/docu/live/vc/vc/ 与 Visual Chart 的集成支持两者: 实时数据提供 实时交易 Visual Chart是完整的交易解决方案: 在单个平台上集成图表、数据源和经纪功能 更多…

WebGl/Three 粒子系统 人物破碎及还原运动

粒子 首先,加载模型,这是万千粒子的前身,模型对象由很多面构成,这些面又是由各个点构成的,所以可以将模型的几何体对象geometry赋给粒子对象,粒子物体用Points方式渲染 bloader.load("obj/female02/Fe…

PyTorch深度学习入门-2

PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili 一、神经网络的基本骨架 --nn.Module Neutral network torch.nn — PyTorch 2.2 documentation * import torch from torch import nnclass xiaofan(nn.Module):…

GAN:对抗生成网络【通俗易懂】

一、概述 对抗生成网络(GAN)是一种深度学习模型,由两个神经网络组成:生成器G和判别器D。这两个网络被训练来协同工作,以生成接近真实数据的新样本。 生成器的任务是接收一个随机噪声向量,并将其转换为与真…

如何入行产品经理?

转产品经理第一点要先学基础理论知识,学了理论再去实践,转行,跳槽! 学理论比较好的就是去报NPDP的系统班,考后也会有面试指导课,跟职场晋升课程,对小白来说非常合适了~(可以去哔站找…

氟化氢冷凝回流反应瓶耐高温聚四氟烧瓶可灵活加工PTFE反应釜

四氟烧瓶又叫反应瓶、PTFE反应釜,常用于有HF或者冷凝回流反应等实验中,可作为接收瓶使用,可放入水浴器或油浴器里进行加热,平底稳定性好。相对于圆底烧瓶可直接放置,不需要铁架台等固定。 1.外观纯白不透明&#xff1b…

Jenkins打包app并通过openssh上传到服务器

1、下载安装openssh 网上很多教程,包括开端口的,可以搜下 2、配置openssh根目录 进入C:\ProgramData\ssh打开文件sshd_config,添加配置ChrootDirectory D:\wxs\soft,想改端口的也在这个文件 3、安装Jenkins 参考上一篇 4、新…

UE5 C++ 射线检测

一.声明四个变量 FVector StartLocation;FVector ForwardVector;FVector EndLocation;FHitResult HitResult;二.起点从摄像机,重点为摄像机前9999m。射线检测 使用LineTraceSingleByChannel 射线直线通道检测,所以 void AMyCharacter::Tick(float Delt…