本文介绍了nginx作为反向代理和负载均衡器的使用,包括静态资源配置、反向代理单台和多台机器的配置方法,以及常见的负载均衡算法,如轮流策略、加权分配、IP哈希和公平算法。
摘要由CSDN通过智能技术生成
1 介绍
nginx几种常用的用法:
静态资源存放使用;反向代理单台机器;代理多台机器;
nginx架构基础配置:
# 主master进程加载配置,启动了几个worker进程 worker_processes 4; events { # 每个工作线程能进行最大的连接数 worker_connections 1024; } http { server { listen 8888; } server { listen 8889; } server { listen 8890; } server { listen 8891; location /images/ { root /usr/local/nginx/images/; } } }
对于nginx启动:首先master进程启动,加载配置监听相应的4个端口;worker_processes读取到对应的值4,然后fork 4个worker工作进程,每个监听的端口都是一个fd,在fork进程的时候fd传到工作进程。后面主进程就不进行想要了,而是由工作进程想要。
具体流程图如下:
2 静态资源配置使用
对于一些网站,php代码,图片,视频等放入指定的位置可以进行访问。具体配置:
worker_processes 4; events { worker_connections 1024; } http { server { listen 8888; } server { listen 8889; } server { listen 8890; } server { listen 8891; location / { root /usr/local/nginx/html/; } location /images/ { root /usr/local/nginx/images/; } } }
浏览器访问:
http://120.79.220.143:8891/images/a.png
结果:
location指令两种使用方式:
a:/location/xxxx/bbbb
b:/location?username=xxxx
对应api的两种访问方式:
a: GET /location/xxxx/bbbb version
b: GET /location?a=xxxx&b=yyyy version
默认api GET /version
3 反向代理单台机器
原理图:
配置:
server { listen 8891; location /{ # ip对应要转发的地址 proxy_pass http://120.24.251.73; } }
结果:
4 反向代理多台机器
代理结构图:
配置:
主master:
upstream backend { server 120.78.203.167; server 120.24.251.73; } server { listen 8891; location /{ proxy_pass http://backend; } }
业务服务器可以还是原来的配置
结果:http://120.79.220.143:8891/ 访问顺序访问对应的代理的业务服务器
5 常见的负载均衡算法
代理的两台默认的采用1 轮流策略(upstream默认策略)
当然还有其他的策略: 2 加权重
server 192.168.2.192 weight = 2;
server 192.168.2.193 weight = 99;
3 ip hash 根据ip分(但是公网ip会变动
4 fair算法(nginx三方模块提供)
5 url_hash算法(三方模块提供)