Nginx反向代理服务器

article/2025/8/22 7:53:45

1、nginx简介

Nginx 是⼀个⾼性能的HTTP和反向代理web服务器,核⼼特点是占有内存少,并发能⼒强。
Nginx的应用场景:

  • Http服务器(Web服务器)
    1、性能⾮常⾼,⾮常注重效率,能够经受⾼负载的考验。
    2、⽀持50000个并发连接数,不仅如此,CPU和内存的占⽤也⾮常的低,10000个没有活动的连接才占⽤2.5M的内存。
  • 反向代理服务器

2、nginx的安装

  1. 上传nginx安装包到linux服务器
    nginx安装包(.tar⽂件)下载地址:http://nginx.org
  2. 安装Nginx依赖,pcre、openssl、gcc、zlib(推荐使⽤yum源⾃动安装)
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
  1. 解包Nginx软件包
tar -xvf nginx-1.17.8.tar
  1. 进⼊解压之后的⽬录 nginx-1.17.8,依次执行以下命令
cd nginx-1.17.8
./configure
make
make install
  1. 执行完上述步骤,会在/usr/local/下会产⽣⼀个nginx⽬录,进入nginx目录开始启动nginx
cd nginx/sbin
./nginx

在这里插入图片描述

  1. 访问服务器的80端口(nginx的默认端口为80)
    我这里使用的是个人服务器,如果运行的话,前面的ip要是自己虚拟机或者过服务器的ip

3、核心配置文件

Nginx的核⼼配置⽂件conf/nginx.conf包含三块内容:全局块、events块、http块
7. 全局块
从配置⽂件开始到events块之间的内容,此处的配置影响nginx服务器整体的运⾏,⽐ 如worker进程的数量、错误⽇志的位置等
在这里插入图片描述
8. events块
events块主要影响nginx服务器与⽤户的⽹络连接,⽐如worker_connections 1024,标识每个workder_process⽀持的最⼤连接数为1024
在这里插入图片描述
9. http块
从http开始都是http块,http块是配置最频繁的部分,虚拟主机的配置,监听端⼝的配置,请求转发、反向代理、负载均衡等
在这里插入图片描述

4、nginx应用场景之反向代理

  1. 第一种
    在这里插入图片描述
    代码实现:
  2. 部署tomcat,保持默认监听8080端口
  3. 修改nginx配置,并重新加载
    - 修改nginx配置
    在这里插入图片描述
    -重新加载nginx配置
    ./nginx -s reload
  4. 访问nginx路径,返回tomcat页面,我是上图的端口号改成9001了,因为9003没开放,就换成9001了
    在这里插入图片描述
  5. 第二种
    在这里插入图片描述
    配置location路径
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    现在就通过不同的路径访问了不同的服务器,此处时location的基本配置,location的集中配置分别是:
    location [=|~|~*|^~] /uri/ { … }
    1. 正则匹配 location ~ /lotus { }
    2. 不区分⼤⼩写的正则匹配 location ~* /lotus { }
    3. 匹配路径的前缀 location ^~ /lotus { }
    4. 精确匹配 location = /lotus { }
    5. 普通路径前缀匹配 location /lotus { }
      优先级:4 > 3 > 2 > 1 > 5

5、nginx应用场景之负载均衡

在这里插入图片描述
先将三个tomcat的index.jsp文件修改一下
在这里插入图片描述
然后启动三个tomcat服务器
在这里插入图片描述
进入nginx的配置文件nginx.conf中进行负载均衡配置

在这里插入图片描述
然后重新加载nginx
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是nginx的默认的负载均衡策略

Nginx负载均衡策略

  • 轮询
    默认策略,每个请求按时间顺序逐⼀分配到不同的服务器,如果某⼀个服务器下线,能⾃动剔除
upstream lotus{server 127.0.0.1:8080;server 127.0.0.1:8001;server 127.0.0.1:8002;}
location / {proxy_pass http://lotus/;
}
  • weight
    权重,默认每⼀个负载的服务器都为1,权重越⾼那么被分配的请求越多(⽤于服务器性能不均衡的场景)
upstream lotus{server 127.0.0.1:8080  weight=1;server 127.0.0.1:8001  weight=1;server 127.0.0.1:8002  weight=2;}
  • ip_hash
    每个请求按照ip的hash结果分配,每⼀个客户端的请求会固定分配到同⼀个⽬标服务器处理,可以解决session问题
upstream lotus{ip_hash;server 127.0.0.1:8080;server 127.0.0.1:8001;server 127.0.0.1:8002;}

6、nginx应用场景之动静分离

动静分离就是讲动态资源和静态资源的请求处理分配到不同的服务器上,⽐较经典的组合就是Nginx+Tomcat架构(Nginx处理静态资源请求,Tomcat处理动态资源请求),那么其实之前的讲解中,Nginx反向代理⽬标服务器Tomcat,我们能看到⽬标服务器ROOT项⽬的index.jsp,这本身就是Tomcat在处理动态资源请求了。
在这里插入图片描述
首先在nginx目录下创建一个staticData目录,在staticData目录下创建static目录,并在目录存放一个html文件
在这里插入图片描述

<html lang="en">
<head><meta charset="UTF-8"><title>static resouce</title>
</head>
<body>
Hello Minicat-static resouce!
</body>
</html>

在nginx.conf中配置静态资源
在这里插入图片描述
开始测试效果:
在这里插入图片描述
结束!


http://chatgpt.dhexx.cn/article/ojeDbJEr.shtml

相关文章

反向代理服务器的工作原理

最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡。所以搜罗了一些关于反向代理服务器的内容,整理综合。 一 概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的…

Nginx反向代理服务器搭建(超详细)

一、简介 Nginx &#xff08;engine x&#xff09; 是一个高性能的Web服务器和反向代理服务器&#xff0c;也可以作为邮件代理服务器。 反向代理&#xff08;Reverse Proxy&#xff09;方式是指以代理服务器来接受internet上的连接请求&#xff0c;然后将请求转发给内部网络上…

什么是反向代理?

正向代理 当客户端访问一台服务器有障碍&#xff0c;访问不到的时候&#xff0c;这时候就可以找一台可以访问到该服务器的另外一台服务器去代替他去访问&#xff0c;这台代替他去访问的服务器称之为代理服务器。然后客户端就可以把请求发送给代理服务器&#xff0c;然后通过代…

服务器反向代理

一、定义 正向代理 正向代理&#xff0c;代理的是客户端&#xff0c;为客户端发送请求&#xff0c;对服务器隐藏自己的真实客户端。 由下图可见&#xff0c;通过代理服务器&#xff0c;可以访问局域网外的服务器&#xff0c;突破自身ip的访问权限。比如翻墙访问外网。 一般而言…

什么是反向代理(代理服务器解释

什么是反向代理(reverse proxy)&#xff1f; A reverse proxy protects web servers from attacks and can provide performance and reliability benefits. Learn more about forward and reverse proxies. 反向代理是位于 Web 服务器前面的服务器&#xff0c;将客户端&…

反向代理服务器

反向代理服务器的概念 反向代理服务器位于用户与目标服务器之间&#xff0c;但是对于用户而言&#xff0c;反向代理服务器就相当于目标服务器&#xff0c;即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时&#xff0c;用户不需要知道目标服务器的地址&#xff0…

超全Nginx反向代理服务器原理+实战篇

文章目录 1.Nginx简介和安装部署1.1.什么是Nginx1.2.Nginx的用途1.3.正向代理服务器1.4.反向代理服务器1.5.nginx安装部署1.6.线上访问服务器应用流程解析1.7.本地虚拟机配置宿主机域名映射2.Nginx核心基础知识2.1.Nginx目录结构2.2.Nginx核心配置文件2.3.Nginx搭建前端静态服务…

什么是反向代理服务器

我们常会看到‘反向代理服务器’这个名词&#xff0c;例如常看到文章上说 nginx 是一个反向代理服务器、varnish 是一个反向代理服务器 …… 下面就了解下这个概念 含义 ‘反向代理服务器’ 有两个概念&#xff0c;一是‘代理服务器’&#xff0c;二是‘反向’ ‘代理服务器’比…

入门Nginx反向代理服务器

前言 博主最近学习了Nginx&#xff0c;故想通过撰写博客的方式加强对知识的认识和记忆&#xff0c;所涉及知识浅薄&#xff0c;如有错误&#xff0c;敬请指正 一.Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff1b;其特点是占有内存少&#xff0…

推导大O阶方法

1、用常数1取代运行时间中的所有加法常数&#xff1b; 2、只保留最高阶项&#xff1b; 3、去除最高阶项的常数&#xff1b; 常数阶是O&#xff08;1&#xff09;&#xff1b; 线性阶是O&#xff08;n&#xff09;; 对数阶是O&#xff08;logn)&#xff1b; 平方阶是O&…

大O算法复杂度表示

序言&#xff1a;算法的时间复杂度和空间复杂度都是用“ 大O表示法” 来表示的。其中O是个常量。 常见的 排序算法的时间复杂度&#xff1a; 冒泡排序、插入排序、希尔排序、选择排序的时间复杂度是O&#xff08;n^2&#xff09;&#xff1b; 快速排序的时间复杂度是 O&#…

数据结构学习笔记:算法复杂度的度量之“大O记号”

分析算法复杂度的非常重要的方法&#xff1a;大O记号&#xff01;&#xff01; 下面来让我们看一下到底什么是大O记号 举个例子&#xff1a; 用一个直尺去评价算法复杂度&#xff0c;上面的刻度就相当于大O记号&#xff0c;我们不一定要一味的强调刻度的精细程度&#xff0c;没…

算法复杂度渐进符号(大O、Ω和θ)的个人理解

做软考习题时&#xff0c;碰到了这样的一道题&#xff1a; 关于算法复杂度渐进符号&#xff08;O、Ω、θ&#xff09;&#xff0c;详细解释可参考&#xff1a; 【双语字幕】什么是算法复杂度渐进符号&#xff1f;阿布老师算法课11 这里节选总结了视频的重点内容&#xff0c;…

数据结构考研:大O表示法最浅显易懂且详细深入的解释及与小o表示法的区别(十分钟必懂)

大O表示法的背景 作为软件工程专业的学生&#xff0c;在我们学习数据结构的时候&#xff0c;总是会碰见对各种算法时间复杂度和空间复杂度的大O表示法的描述。我们只是将信将疑的用着&#xff0c;并不知道大O表示法的准确含义&#xff0c;今天博主李同学在查阅各方资料后进行详…

算法的时间复杂度(大O表示法)

首先我们先来看个例子, 我想找个1&#xff5e;100的数字&#xff0c;你的目标是以最少的次数猜到这个数字。你每次猜测后&#xff0c;我会说小了、大了或对了。下面我们来看下两种简单的方法&#xff08;方法有很多种&#xff09;&#xff0c;再来引入算法的运行时间&#xff0…

算法时间复杂度分析——大O、大Ω、大θ、小o,小ω

最近开始转战传统算法分析的研究工作了&#xff0c;重新拾起以前学过的一些内容。 目录 一、概述 二、对常见的Ο和Ω进行分析 2.1 大O表示法 2.2 大Ω表示法 三、P问题&#xff0c;NP问题&#xff0c;NP-hard问题&#xff0c;NPC问题 3.1 P问题和NP问题 3.2 NPC问题和N…

复杂度分析(大O表示法)

复杂度分析 前文提要 本文完完全全引用极客时间的文章《数据结构与算法之美》&#xff0c;作者王争。 数据结构是作为程序猿绕不过的一道坎&#xff0c;所以萌生了学习的想法&#xff0c;试读了几篇文章后发现讲的很好&#xff0c;也有很多人订阅&#xff0c;于是不回头的走…

big O notation - 大 O 表示法

big O notation - 大 O 表示法 Big O notation (with a capital letter O, not a zero), also called Landau’s symbol. 大 O 表示法 (大写字母 O&#xff0c;不为零)&#xff0c;也称为 Landau’s symbol。 Big O notation is a mathematical notation that describes the l…

算法分析:大O符号/大Ω符号/大Θ符号/小o符号/小w符号

感谢作者分享&#xff0c;原文链接&#xff1a;http://blog.csdn.net/u012816041/article/details/49888631 大O&#xff0c;渐进表示法&#xff0c;接下来我尝试用最简单的方式进行说明。 学习算法我经常听到这个词汇&#xff0c;我一开始很难理解&#xff0c;什么鬼&#xff…

算法分析—大O、大Ω、大θ

前言 在算法的学习中&#xff0c;最开始便是要学习算法的分析。学习算法分析时&#xff0c;我们便会接触到这么几个符号&#xff1a;大O、大Ω、大θ&#xff0c;常常让人难以理解。 在通常的算法分析时&#xff0c;我们可以明白&#xff0c;在输入规模较小&#xff0c;各种算…