nginx使用手册+基本原理+优缺点

1、nginx优势

1.反向代理

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

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

server不知道client是谁java

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

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

客户端不知道本身具体访问的服务器是谁后端

三、总结 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模块的配置:app

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

3.动静分离

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

2、基本命令

  • nginx 启动

  • nginx -v版本号

  • nginx -s stop 关闭

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

3、配置文件

一、root和alias的区别

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

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

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

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

三、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

4、基本原理

  • 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都是一个进程,不会形成服务中断
相关文章
相关标签/搜索