Nginx详解

1、什么是Nginx

Nginx是一个高性能的web服务器和反向代理服务器。用于HTTP、HTTPS、SMTP、POP3和IMAP协议

2、负载均衡的几种常用方式和算法实现原理

  • 轮询 (用一个初始值为0的计数器,当有请求时计数器+1,计数器=ip数时计数器归零,以此从ip列表获取ip)
    upstream mysvr { 
        server 127.0.0.1:7878;
        server 192.168.10.121:3333;       
    }
  • 加权轮询 (与轮询算法的区别是ip列表按照权重重复加入ip)
    upstream mysvr { 
        server 127.0.0.1:7878 weight=1;
        server 192.168.10.121:3333 weight=2;
    }
  • Ip hash (通过hash函数计算ip得到一个hash值,并与服务器列表数量取模运算)由于同一个ip会映射到同一台服务器,因此可以解决session不同步问题(实际上session可以放到redis中以解决同步问题)
    upstream mysvr { 
        server 127.0.0.1:7878; 
        server 192.168.10.121:3333;
        ip_hash;
    }
  • 其他(最小连接数、随机、加权随机、fair、url_hash等)

3、常用配置

worker_processes 8; 工作进程个数
events {
    use epoll; #支持大量连接和非活动连接
    worker_connections 65535; #每个工作进程能并发处理(发起)的最大连接数(包含所有连接数)
    multi_accept on; #nginx在已经得到一个新连接的通知时,接收尽可能多的连接
    accept_mutex on; #防止惊群现象发生,默认为on
}
error_log /data/logs/nginx/error.log; 错误日志打印地址
access_log /data/logs/nginx/access.log 进入日志打印地址

#静态http服务器配置  可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。
server {
    listen80; # 端口号
    location / {
        root /usr/share/nginx/html; # 静态文件路径
}

#负载均衡配置
upstream mysvr { 
    server 192.168.10.121:3333;
    server 192.168.10.122:3333;
}

#反向代理配置
server {
    ....
    location  ~*^.+$ {         
        proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表         
    }
}

#热备:如果你有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务
upstream mysvr { 
    server 127.0.0.1:7878; 
    server 192.168.10.121:3333 backup;  #热备     
}

4、nginx和apache的区别

  • 轻量级,同样起Web服务,比apache占更少内存及资源
  • 抗并发,nginx处理请求是异步非阻塞的,而apache阻塞型
  • apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别,C10K)可以对应一个进程

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值