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

nginx正向代理、反向代理、负载均衡

nginx.conf nginx首要处理静态页面 反向代理 动态请求

全局模块 work processes 1; 设置成服务器内核数的两倍(一般不不超过8个超过8个反而会降低性能一般4个 1-2个也可以)

netstat -antp | grep 80 查端口号

*1、events块:*

配置影响nginx服务器与用户的网络连接

一般设置并发15000-20000个

处理进程的过程必然涉及配置文件和展示页面 也就是涉及打开文件的数量

linux默认打开的文件数就是1024

vim /etc/security/limits.conf (最大文件数) vim nginx.conf

*soft nproc 65535 最大进程数的软限制

*hard nproc 66635 最大进程数的硬限制

*soft nofile 65535最大打开文件数的软限制

*hard nofile 65535 最大打开文件数的硬限制

http

在这里插入图片描述

在这里插入图片描述

默认不支持jsp.js.php

在这里插入图片描述

默认的日志格式记录了access.log 访问日志的格式,error.log也是一样的格式

在这里插入图片描述

存放路径

在这里插入图片描述

属于http
在这里插入图片描述

location网页匹配的工作目录的地址和支持打开页面的文件类型

在这里插入图片描述

tail -f /usr/local/nginx/logs/error.log
在这里插入图片描述

root和alias之间匹配区别

*root指定访问页面的根目录是拼接*

*alias指定的是完整目录绝对路径*

root的匹配模式 拼接

root的工作目录,访问的uri /xy102

location /xy102

/opt/test1/

/opt/test1/xy102/

alias匹配nginx的工作目录,路径是绝对路径

location /xy102

alias /opt/test1/xy102/;

alias 只能写在http模块当中的sever模块的location模块里面

root可以写server模块也可以在http 也可以在locatiion

alias匹配工作目录不能够使用重定向功能

全局模块

work_processes 1;指定进程数

envents模块决定了能够处理的来年结束

stream 四层代理模块

http模块】转发和处理http请求设置代理(正向代理,反向代理),缓存,定义日志格式,重定向配置)

在http模块中包含

sever块http里面可以有多个server模块

在server模块当中包含:

location模块

在server当中可以又多个location

统计访问状态

在这里插入图片描述

active connections 当前活动的连接数

server accepts handled reouests 表示已经处理的连接数

三个数字 从左往右 已经处理的连接数 成功的建立连接的次数 已经处理的请求数

Reading:0 Writing: 1 Waiting :0

reading 表示服务端正在从客户端读取请求的数据

writing 表示服务端正在把响应数据发送给客户端

waitting 表示有链接处于空闲时刻 等待请求

基于密码授权进行访问控制

yum -y install httpd-tools #httppasswd的工具 ,要先安装

htpasswd -c /usr/local/nginx/passwd.db zj
chown nginx passwd.db
chmod 400 passwd.db #权限只能是400

在这里插入图片描述

基于客户端的访问控制 IP地址来进行控制
在这里插入图片描述

403 forbidden 0/24整个网段

在这里插入图片描述

基于域名的nginx主机
在这里插入图片描述

mkdir -p /var/www/html/xy102

在这里插入图片描述

基于ip地址的虚拟主机

在这里插入图片描述

多个网卡

多个配置文件**

******nginx优化与防盗链

1.隐藏版本号

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

server_tokens off; 关闭版本号

设置页面的缓存时间 主要针对动态页面,图片的缓存

html默认工作目录

修改用户与组

#设置图片的缓存时间

expires 1d; 一天

2.日志分割**+日志清理****

nginx没有自带的日志分割功能,靠我们运维人员通过脚本实现日志分割。

apache是 自带日志分割的按天来进行收集日志

#获取日期 d=$(date +%Y-%m-%d)

access.log

error-2024.07-03.log

nginx没有自动分割的功能,脚本来实现日志分割

#日志清理 日志清理原则:业务日志一般保留30天。数据库日志,保留2年。用户信息加密,而且要永久保存。高可用。

date-d "-1 day" "+%Y%m%d" 分割前一天的

在这里插入图片描述

更改进程数设置cpu绑定

worker_connections 一般15000-20000

两个相乘就是最大并发数

*别忘了修改limits.conf。否则不生效。*

3.连接超时 配置页面压缩

在这里插入图片描述

gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;
支持压缩的类型

回收TIME_WAIT:

time_wait是tcp链接当中的一种状态出现在四次挥手之后

处于等待状态 双方不再发送数据

time_wait所占用的系统资源很小,数量比较少,完全可以忽略不计

但是太多了就有一定的影响

连接断开(四次挥手)之后,尽快的把time_wait状态的连接进行回收

统计当前系统的连接状态

vim /etc/sysctl.conf

net.ipve.tcp_syncookies=1

防止tcp的半连接队列溢出 可以达到服务端在接收到tcp的syn(同步)的请求时能够快速响应

net.ipv4.tcp_tw_reuse=1

允许复用time_wait状态的连接 新的连接可以直接使用time_wait状态的端口 可以提高连接的重用率

net.ipv4.tcp_tw_recycle=1 (新版本已被淘汰)

这个是老版本的配置 时间戳戳记也可以进行来连接复用

net.ipv4.tcp_fin_timeout=30

控制time_wait状态的时间 持续30秒 不是立即把time_wait连接收回 而是尽可能的把time_wait状态进行回收

nginx优化(重要)

隐藏版本号

日志分割

cpu绑定

连接超时

页面压缩

页面缓存时间

time_wait状态的回收

防盗链

vim nginx.conf

lnmp+DISCUZ

论坛的一个服务

l linux 操作系统

n nginx 前端页面的web服务

mysql 数据库 保存用户和密码 以及论坛的相关内容

php 动态强求转发的中间件

态进行回收

nginx优化(重要)

隐藏版本号

日志分割

cpu绑定

连接超时

页面压缩

页面缓存时间

time_wait状态的回收

防盗链

vim nginx.conf

[外链图片转存中…(img-Ey3svsBO-1720579650496)]

lnmp+DISCUZ

论坛的一个服务

l linux 操作系统

n nginx 前端页面的web服务

mysql 数据库 保存用户和密码 以及论坛的相关内容

php 动态强求转发的中间件

在这里插入图片描述

my.cnf是mysql的主配置文件

四层代理
四层代理只能写在全局环境中,不能写在http模块里

注意:写在四层里必须指定后台服务器的地址和端口
在这里插入图片描述
七层代理
test1 20.0.0.10 代理 ------配置反向代理

test2 20.0.0.20 后台服务器1

test3 20.0.0.30 后台服务器2

客户端:谷歌浏览器

七层代理写在http模块里,默认端口80
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【C++】构造函数详解
  • 机器人及其相关工科专业课程体系
  • 批量提取PDF指定区域内容到 Excel , 根据PDF文件第一行文字来自动重命名v1.3-附思路和代码实现
  • qt 返回上级页面
  • Java如何使用 HttpClientUtils 发起 HTTP 请求
  • C++(week11): C++基础 第六章:关联式容器 set、map
  • 2 Java的基本程序设计结构(基本语法1)
  • 外包干了1个月,技术明显退步。。。
  • SparkStreaming--scala
  • Apache访问机制配置
  • 阿里通义音频生成大模型 FunAudioLLM 开源
  • el-popover或el-popconfirm中button不展示问题
  • 从零开始学习c++全套通关系列(第二章)万字总结,建议收藏!
  • 混合贪心算法求解地铁线路调度
  • 结合C++智能指针聊聊观察者模式
  • 【前端学习】-粗谈选择器
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • android图片蒙层
  • input的行数自动增减
  • JS函数式编程 数组部分风格 ES6版
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • php ci框架整合银盛支付
  • Python爬虫--- 1.3 BS4库的解析器
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • TypeScript迭代器
  • vue:响应原理
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • webpack+react项目初体验——记录我的webpack环境配置
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 思否第一天
  • 用Canvas画一棵二叉树
  • 带你开发类似Pokemon Go的AR游戏
  • ​ubuntu下安装kvm虚拟机
  • ​插件化DPI在商用WIFI中的价值
  • ​香农与信息论三大定律
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #pragma预处理命令
  • #传输# #传输数据判断#
  • (152)时序收敛--->(02)时序收敛二
  • (4)事件处理——(7)简单事件(Simple events)
  • (70min)字节暑假实习二面(已挂)
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (done) 两个矩阵 “相似” 是什么意思?
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十三)Maven插件解析运行机制
  • (四)Controller接口控制器详解(三)
  • (译)2019年前端性能优化清单 — 下篇
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)scrum常见工具列表