Nginx反向代理服务器

本文详细介绍了Nginx的特性、安装步骤以及核心配置文件,包括全局块、events块和http块。重点讲解了Nginx在反向代理和负载均衡中的应用,演示了如何通过配置实现不同路径访问不同服务器以及设置负载均衡策略,如轮询、权重和IP_hash。此外,还阐述了动静分离的概念,展示了如何配置Nginx处理静态资源,以提升网站性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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中配置静态资源
在这里插入图片描述
开始测试效果:
在这里插入图片描述
结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值