一、nginx优点

1.反向代理

1、正向代理: 客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

graph LR
client--req-->ClientProxy
ClientProxy--resp-->client
ClientProxy--req-->server
server--resp-->ClientProxy

server不知道client是谁

2、反向代理:客户端请求服务器,中间也是经过一个代理服务器,客户端访问代理服务器就好像访问目标服务器一样。同时代理服务器将请求转发到后端具体服务器。

graph LR
client--req-->ServerProxy
ServerProxy--resp-->client

ServerProxy--req-->Server01
Server01--resp-->ServerProxy

ServerProxy--req-->Server02
Server02--resp-->ServerProxy

ServerProxy--req-->Server03
Server03--resp-->ServerProxy

客户端不知道自己具体访问的服务器是谁

3、总结 https://blog.csdn.net/wnvalentin/article/details/88171847

正向代理是对客户端的代理,由客户端设立,客户端了解代理服务器和目标服务器,但目标服务器不了解真正的客户端是谁;使用正向代理可达到 突破访问限制、提高访问速度、对服务器隐藏客户端IP等目的;

反向代理是对服务器的代理,由服务器设立,客户端不了解真正的服务器是谁,使用反向代理可达到负载均衡、保障服务端安全、对客户端隐藏服务器IP等目的。

2.负载均衡

集群平摊请求压力

负载均衡策略:

  • 轮询 :平均访问(默认方式)
upstream myserver{
ip_hash;
server 192.168.17.129:8000;
server 192.168.17.129:8001;
server 127.0.0.1:7071 down; #不参与负载均衡
server 127.0.0.1:7070 backup; #备份server 只有其他都忙了才访问
}
  • 权重
upstream myserver{
server 192.168.17.129:8000 weight 1;
server 192.168.17.129:8001 weight 2;
}
  • IP hash :每个ip分配一个固定的服务器
  upstream myserver{
ip_hash;
server 192.168.17.129:8000;
server 192.168.17.129:8001;
}
  • URL hash
  upstream myserver{
server 192.168.17.129:8000;
server 192.168.17.129:8001;
hash $request_uri;
hash_method crc32; #hash 方法
}
  • fair 根据响应时间来访问,哪个机器响应快就哪个
upstream myserver{
server 192.168.17.129:8000;
server 192.168.17.129:8001;
fair;
}

server模块的配置:

   server{
listen 80;
server_name 192.168.17.129;
location /{
proxy_pass http://myserver; #前面upstream的名字
}
}

3.动静分离

动态页面和静态页面分开部署,把动态页面的服务器性能弄的好一些,静态页面的服务器可以差一些,并且可以设置缓存。

二、基本命令

  • nginx 启动

  • nginx -v版本号

  • nginx -s stop 关闭

  • nginx -s reload 重新加载配置文件

三、配置文件

1、root和alias的区别

  • root:【指定机器根路径】
location  /appImg/{
root /home/nginx;
}

这个location相当于访问服务器上的文件路径: /home/nginx/appImg/ 。

  • alias:【别名】
location  /appImg/{
alias /home/nginx/;
}

这个alias代表了/appimg/ = /home/nginx/

3、worker_connections 和 worker_processes

设置并发数和连接数

连接数:

静态资源:2

graph LR
client--请求静态资源1-->nginx
nginx--返回静态资源2-->client

反向代理:4

graph LR
client--请求动态资源1-->nginx
nginx--请求后端服务2-->server
server--返回数据3-->nginx
nginx--返回动态资源4-->client

四、基本原理

  • master管理者:管理监控
  • worker工作者 :连接

每个worker都维护一个线程处理请求

worker_processes设置的数量和cpu核数最好相等,每个worker都是一个独立的进程

3个worker

root     20789     1  0 10:19 ?        00:00:00 nginx: master process nginx
nobody 22281 20789 0 10:47 ? 00:00:00 nginx: worker process
nobody 22282 20789 0 10:47 ? 00:00:00 nginx: worker process
nobody 22283 20789 0 10:47 ? 00:00:00 nginx: worker process
root 22319 20514 0 10:48 pts/1 00:00:00 grep --color=auto nginx

1个worker

root     20789     1  0 10:19 ?        00:00:00 nginx: master process nginx
nobody 22376 20789 0 10:49 ? 00:00:00 nginx: worker process
root 22378 20514 0 10:49 pts/1 00:00:00 grep --color=auto nginx
graph TB
Linux-->master

master-->worker1
master-->worker2
master-->worker3

worker1-->client1
worker1-->client2

worker2-->client3
worker2-->client4

worker3-->client5
worker3-->client6

master-worker架构的优点

  1. 支持热部署reload,一个worker修改config,其他继续处理请求
  2. 进程独立,每个worker都是一个进程,不会造成服务中断

nginx使用手册+基本原理+优缺点的更多相关文章

  1. Nginx安装手册

    前提是搭建yum安装环境,见前面的教程资料 Nginx安装手册1 nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. gcc 安装ngin ...

  2. 负载均衡器技术Nginx和F5的优缺点对比

    负载均衡器技术Nginx和F5的优缺点对比 博客分类: 应用服务 F5nginx  对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的 ...

  3. 转!!负载均衡器技术Nginx和F5的优缺点对比

    对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器. 目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡 ...

  4. 转载:负载均衡器技术Nginx和F5的优缺点对比

    https://blog.csdn.net/zxc456733/article/details/78861100 nginx(一) nginx详解 nginx是一个被广泛使用的集群架构组件,我们有必要 ...

  5. 浅谈tomcat 、apache、 nginx的区别及优缺点

    (~~排版垃圾~~,此文纪念自己18年6月所作为,如有不适合之处,请告知.) 本文主要说明tomcat .apache. nginx的定义.区别及优缺点 一. 定义: 1. Apache Apache ...

  6. Nginx中文手册

    Nginx 常见应用技术指南[Nginx Tips] 第二版 作者:NetSeek http://www.linuxtone.org (IT运维专家网|集群架构|性能调优) 目 录 一. Nginx ...

  7. Nginx使用手册目录

    Nginx学习总结[第一篇]: Nginx简介 Nginx第二篇:Nginx部署及使用 Nginx第三篇:Nginx日志处理 Nginx第四篇:Nginx优化 Nginx第五篇:Nginx日常管理

  8. nginx入门手册(一)

    1.nginx进程: nginx会启动多个进程: 一个主进程Master. 几个工作进程worker. 缓存加载器进程 缓存管理器进程 master主要工作: 1. 读取并验正配置信息: 2. 创建. ...

  9. nginx和apache的优缺点比较

    简单的说apache httpd和nginx都是web服务器,但两者适应的场景不同,也就是两者专注于解决不同的问题.apache httpd:稳定.对动态请求处理强,但同时高并发时性能较弱,耗费资源多 ...

随机推荐

  1. Internet上的音频/视频概述

    Internet上的音频/视频概述 计算机网络最初是为传送数据信息设计的.因特网 IP 层提供的"尽最大努力交付"服务,以及每一个分组独立交付的策略,对传送数据信息也是很合适的. ...

  2. Python爬虫-scrapyd

    1.什么是scrapyd Scrapyd是一个服务,用来运行scrapy爬虫的. 它允许你部署你的scrapy项目以及通过HTTP JSON的方式控制你的爬虫. 官方文档:http://scrapyd ...

  3. python 读取 execl 文件 之 xlrd 模块

    1. 安装 xlrd模块 pip install xlrd 2. 读取文件内容 #!/usr/bin/env python3 import xlrd name = r"E:\excel\yo ...

  4. GPUImage学习总结

    GPUImage是iOS上一个基于OpenGL进行图像处理的开源框架,内置大量滤镜,架构灵活,可以在其基础上很轻松地实现各种图像处理功能. GPUImgae特性 1,丰富的输入组件 摄像头.图片.视频 ...

  5. APPium+Python+iOS屏幕滑动方法对比

    最近在学习appium自动化,对iOS手机进行滑动操作进行总结: 1.mobile:scroll;该方法在实际使用调用时,会滚动2次.执行时间很长. 向下滚动整个屏幕driver.execute_sc ...

  6. celery异步任务框架

    目录 Celery 一.官方 二.Celery异步任务框架 Celery架构图 消息中间件 任务执行单元 任务结果存储 三.使用场景 四.Celery的安装配置 五.两种celery任务结构:提倡用包 ...

  7. 端口占用的一种形式 Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8090"] java.net.BindException: Address already in use: JVM_Bind <null>:8090

    严重: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8090"]java.ne ...

  8. 前端每日实战:152# 视频演示如何用纯 CSS 创作一个圆点错觉效果

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gBwzKR 可交互视频 此视频是可 ...

  9. win10执行Tensorflow,总是会报错“DLL load failed: 找不到指定的模块”的解决方式----终极版方式

    win10上运行tensorflow时报错,“DLL load failed: 找不到指定的模块”的解决方式 我只想说,当你们遇到这个问题的时候,以下终极版的方式出来了,非常感谢知乎 leo lv ! ...

  10. 【猫狗数据集】pytorch训练猫狗数据集之创建数据集

    猫狗数据集的分为训练集25000张,在训练集中猫和狗的图像是混在一起的,pytorch读取数据集有两种方式,第一种方式是将不同类别的图片放于其对应的类文件夹中,另一种是实现读取数据集类,该类继承tor ...