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

nginx介绍及搭建

架构模型

Nginx是由一个master管理进程、多个worker进程组成的多进程模型。master负责管理worker进程,worker进程负责处理网络事件,整个框架被设计为一种依赖事件驱动、异步、非阻塞的模式。
在这里插入图片描述优势:
1、充分利用多核,增强并发处理能力;
2、多worker间可以实现负载均衡;
3、Master统管worker行为:在worker异常后,可以主动拉起worker进程,从而提升了系统的可靠性。并且由Master进程控制服务运行中的程序升级、配置项修改等操作,从而增强了整体的动态可扩展与热更的能力;

安装

yum方式

yum install -y nginx
#查看是否安装成功
pcre-config --version
systemctl start nginx && systemctl enable nginx
#检查服务
ps -ef | grep nginx        
netstat -ntlp | grep 80
#检查配置文件
nginx -t
systemctl restart nginx 
systemctl start nginx 
systemctl stop nginx 

编译方式

wget http://nginx.org/download/nginx-1.22.0.tar.gz
tar -zxvf nginx-1.22.0.tar.gz/下载路径/configure --prefix=/安装路径#下载依赖
yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel      
make && make install 
# 启动服务
/安装路径/sbin/nginx
#重新加载
./nginx -s reload
#服务关闭
./nginx -s stop
#服务开启
./nginx

基本配置

主配置文件/etc/nginx/nginx.conf;如果是openresty,则在/usr/local/openresty/nginx/conf/nginx.conf。

# worker进程的数量,建议数量<=服务器的总核心数
worker_processes  4;                               
events {
# 单个worker进程并发最大连接数;
# nginx并发总链接数 = worker_processes * worker_connections,建议数量<=文件打开数worker_connections  256;
}
http {
# include为http模块调取的配置文件
# mime.types文件是nginx可处理的静态媒体资源类型include       mime.types;
# 定义默认类型,普通文本为text/plaindefault_type  application/octet-stream;
# 是否能使用sendfile()传输文件,该属性可以大大提高Nginx处理静态资源的性能sendfile        on;
# 链接超时时间keepalive_timeout  65;server {
# nginx服务监听端口,默认为80listen       80;
# 指定网址域名信息,例:www.abc.com;默认为主机地址,通过输入主机地址访问页面server_name  localhost; 
# url为/时location / {
# 指定网址站点目录root   html;
# 访问主页后,无对应站点时,反馈的信息,默认打开此配置文件index  index.html index.htm;}
# 错误页面,优雅显示配置模块error_page   500 502 503 504  /50x.html;                    location = /50x.html {root   html;}}
}

常用项

在这里插入图片描述在这里插入图片描述

反向代理

在这里插入图片描述
客户端发送请求到反向代理服务器,由反向代理服务器去选择目标服务器获取数据,然后再返回到客户端。此过程客户端无法感知代理,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。

        location / {echo "this is 100 / page";}location /a {proxy_pass http://10.0.0.101:80/;}location /b {proxy_pass http://10.0.0.102:80/;}# proxy_pass为反向代理配置, 即流量由代理端转发至后端响应。注意结尾的/号,如果不配置会代表其他用法。

匹配规则

=:优先级最高;
^~:优先级其次,匹配以xx开头;
~ ^/\w: 优先级第三,匹配字母、数字、下划线或汉字(正则表达式)
/:优先级最低;

  server {listen       80;server_name  localhost;# 需要在server配置模块中添加配置, 否则默认会下载default_type text/html;location / {echo "this is / page";}location = /a {echo "this is = /a page";}location ^~ /a {echo "this is ^~ /a page";}location ~ ^/\w {echo "this is ~ ^/\w page";}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}

动静分离

nginx对静态页面的处理能力远高于tomcat,非常擅长将css、js、图片等资源以http协议的方式返回给客户端。故静态请求交由nginx,动态请求交由tomcat,提升系统吞吐量,,降低由单个服务器的压力。

在这里插入图片描述

location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
# 静态数据放入客户端的缓存,七天内有效root /webapps/projectname/code/static-resource;expires 7d;}location / {
# 动态请求转交tomcatproxy_pass http://127.0.0.1:8080;
}

负载均衡

    http:upstream group {server 10.0.0.101:80;server 10.0.0.102:80;}server:location /lb {proxy_pass http://group/;}

调度种类

轮询:每个请求按时间顺序逐一分配到不同的后端服务器;
在这里插入图片描述权重:weight值越大,被访问的概率越高;
在这里插入图片描述

ip hash:每个请求按访问ip的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,有效解决了动态网页存在的session共享问题;

在这里插入图片描述

fair:按后端服务器的响应时间来分配请求,响应时间短的优先分配;
在这里插入图片描述

url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效;
在这里插入图片描述

几种状态

down:当前的后端server不参与负载;
weight:默认为1, 被访问的概率;
max_fails:允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream模块定义的错误 ;
fail_timeout:失败访问达到max_fails次数后,暂挂的时间。;
backup: 所有非backup后端server处于宕机或者忙的时候,转发请求到backup后端server;

在这里插入图片描述

nginx的主备: link

http://www.lryc.cn/news/322135.html

相关文章:

  • 树莓派夜视摄像头拍摄红外LED灯
  • Oracle19C静默安装教程
  • 【机器学习】基于粒子群算法优化的BP神经网络分类预测(PSO-BP)
  • Sora后时代文生视频的探索
  • 指南:在各主流操作系统上安装与配置Apache Tomcat
  • 物联网的介绍
  • 目标检测——YOLOR算法解读
  • NVIDIA NCCL 源码学习(十三)- IB SHARP
  • Spark-Scala语言实战(4)
  • ffmpeg不常用命令整理
  • 怎么理解面向对象?一文带你全面理解
  • 神经网络(深度学习,计算机视觉,得分函数,损失函数,前向传播,反向传播,激活函数)
  • Tomcat的Host Manager页面403的原因和解决办法
  • 零基础学华为ip认证难吗?华为认证费用多少?
  • [C语言]——内存函数
  • QGIS编译(跨平台编译)056:PDAL编译(Windows、Linux、MacOS环境下编译)
  • 计算机三级——网络技术(综合题第二题)
  • Python 深度学习第二版(GPT 重译)(二)
  • 【Redis】Redis常见原理和数据结构
  • 3个Tips,用“AI”开启新生活
  • 【ROS | OpenCV】在ROS中实现多版本OpenCV、cv_bridge共存:安装与配置指南
  • Docker容器化技术(docker-compose示例:部署discuz论坛和wordpress博客,使用adminer管理数据库)
  • 微分学<6>——Taylor公式
  • 检索增强生成(RAG)应用的构建:LangChain与LlamaIndex的比较与选择
  • 免费PDF转换和编辑工具 PDFgear 2.1.4
  • uniapp,导航栏(切换项)有多项,溢出采取左滑右滑的形式展示
  • 计算机网络面经-什么是IPv4和IPv6?
  • 彻底讲透:如何写sql能够有效的使用到复合索引?
  • 在Spring Boot中如何处理跨域请求(CORS)?
  • 好就业三种专业#信息安全#云计算#网络工程