当前位置: 首页 > news >正文

Linux下Nginx安装及负载均衡配置

文章目录

  • 1.介绍
    • 1.1 Http代理,反向代理
    • 1.2 负载均衡
    • 1.3 Web缓存
    • 1.4 Ngix相关地址
  • 2.Linux下Ngix服务安装(Centos为例)
    • 2.1 依赖安装
    • 2.2 Ngix主程序安装
    • 2.3 启动Nginx服务
  • 3.Nginx配置详解(反向代理)
    • 3.1 全局块
    • 3.2 events 块
    • 3.3 http 块
  • 4.配置实例
  • 参考文档

1.介绍

Nginx 支持多种负载均衡算法,如轮询、加权轮询、IP 哈希、最少连接数等。通过负载均衡,可以将客户端的请求合理地分配到多个后端服务器上,避免单个服务器负载过高,提高系统的整体性能和可靠性。例如,在一个由多台应用服务器组成的集群中,Nginx 可以根据不同的算法将用户的请求分发到不同的服务器上进行处理。
请添加图片描述

Nginx常用功能

1.1 Http代理,反向代理

作为web服务器最常用的功能之一,尤其是反向代理。
在这里插入图片描述
Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案,你就可以随心所欲的玩。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。

1.2 负载均衡

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,可以参照所有的负载均衡算法,给他一一找出来做下实现。

上3个图,理解这三种负载均衡算法的实现
Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
在这里插入图片描述

1.3 Web缓存

Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。

1.4 Ngix相关地址

源码:https://trac.nginx.org/nginx/browser

官网:http://www.nginx.org/

2.Linux下Ngix服务安装(Centos为例)

2.1 依赖安装

检查是否安装gcc,若没有安装执行如下命令:

yum -y install gcc

pcre、pcre-devel、zlib、openssl安装,安装的必要性:(1)pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。(2)zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装;(3)openssl是一个安全套接字层密码库,nginx要支持https,需要使用openssl。

yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

2.2 Ngix主程序安装

下载Ngix安装包(tar.gz格式),下载地址:http://nginx.org/download/,选择需要的版本:
在这里插入图片描述
或在主机使用如下命令:

wget http://nginx.org/download/nginx-1.29.0.tar.gz

把压缩包解压到/usr/local,并进入路径:

tar -xzvf nginx-1.29.0.tar.gz -C  /usr/local/
cd /usr/local/nginx-1.29.0

按照如下命令配置编译:

./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --http-log-path=/var/log/nginx/access.log -
http://www.lryc.cn/news/625295.html

相关文章:

  • pytest高级用法之插件开发
  • Docker核心---数据卷(堵门秘籍)
  • RxJava 在 Android 即时通讯中的应用:封装、处理与控制
  • OpenHarmony之打造全场景智联基座的“分布式星链 ”WLAN子系统
  • (第五篇)spring cloud之Ribbon负载均衡
  • C语言实战:从零开始编写一个通用配置文件解析器
  • 常见的 Bash 命令及简单脚本
  • 量子计算和超级计算机将彻底改变技术
  • 记录Webapi Excel 导出
  • 【qml-4】qml与c++交互(类型多例)
  • 【CPP】一个CPP的Library(libXXXcore)和测试程序XXX_main的Demo
  • kkfileview预览Excel文件去掉左上角的跳转HTM预览、打印按钮
  • Spring Boot 全局异常处理
  • JVM参数优化
  • 《算法导论》第 29 章 - 线性规划
  • Matplotlib数据可视化实战:Matplotlib子图布局与管理入门
  • Day10--滑动窗口与双指针--2875. 无限数组的最短子数组,76. 最小覆盖子串,632. 最小区间
  • Hugging Face 核心组件介绍
  • 【牛客刷题】岛屿数量问题:BFS与DFS解法深度解析
  • Git的初步学习
  • 系统架构设计师-操作系统-避免死锁最小资源数原理模拟题
  • git 创用操作
  • [系统架构设计师]云原生架构设计理论与实践(十四)
  • linux系统装google chrome,amd64
  • 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(六)
  • 应用缓存不止是Redis!——亿级流量系统架构设计系列
  • [系统架构设计师]信息系统架构设计理论与实践(十二)
  • 监督分类——最小距离分类、最大似然分类、支持向量机
  • 利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
  • Apache IoTDB:大数据时代时序数据库选型的技术突围与实践指南