架构图 配置过程 配置web服务器 # 1、配置web01,更改配置文件 [root@web01 /etc/nginx/conf.d]# vi test1.conf server { listen 8007; server_name test.gong.com; root /website/test



架构图


配置过程

配置web服务器

# 1、配置web01,更改配置文件[root@web01 /etc/nginx/conf.d]# vi test1.conf server {        listen 8007;        server_name test.gong.com;        root /website/test;        index index.html;}# 2、创建站点目录。[root@web01 /etc/nginx/conf.d]# mkdir -p /website/test# 2、添加主页[root@web01 /etc/nginx/conf.d]# echo 'This is <h1 style="color:red;">web01</h1> page!!' >/website/test/index.html# 4、重启nginx[root@web01 /etc/nginx/conf.d]# nginx -s reload# 用同样的方法配置web02## web02监听的8008端口[root@web01 /etc/nginx/conf.d]# vi test1.conf server {        listen 8008;        server_name test.gong.com;        root /website/test;        index index.html;}

配置七层负载均衡

# 1、配置负载均衡[root@lb01 /etc/nginx/conf.d]# vi upstream.conf upstream test_gong {        172.16.1.7:8007;        172.16.1.8:8008;}server {        listen 8005;        server_name test.gong.com;        location / {                proxy_pass http://test_gong;                include proxy_params;        }}[root@lb01 /etc/nginx/conf.d]# nginx -s reload# 第二台也使用相同的配置##[root@db01 /etc/nginx/conf.d]# vi upstream.conf upstream test_gong {        server 172.16.1.7:8007;        server 172.16.1.8:8008;}server {        listen 8051;        server_name test.gong.com;        location / {                proxy_pass http://test_gong;                include proxy_params;        }}

四层负载均衡概念

四层负载均衡

七层负载均衡:只识别域名,是http层。

四层负载均衡:不识别域名,是tcp层,类似于端口转发。

在nginx-1.9.0之前的版本没有四层负载均衡。

ngx_stream_core_module

用于四层负载均衡

The ngx_stream_core_module module is available since version 1.9.0. This module is not built by default, it should be enabled with the --with-stream configuration parameter.

“ngx_stream_core_”模块自1.9.0版起提供。默认情况下,此模块不是生成的,应使用“--with-stream”配置参数启用它。

官方实例

因为是四层的协议,所以不能写在http模块当中。

stream {    upstream backend {        hash $remote_addr consistent;        server backend1.example.com:12345 weight=5;        server 127.0.0.1:12345            max_fails=3 fail_timeout=30s;        server unix:/tmp/backend3;    }    upstream dns {       server 192.168.0.1:53535;       server dns.example.com:53;    }    server {        listen 12345;        proxy_connect_timeout 1s;        proxy_timeout 3s;        proxy_pass backend;    }    server {        listen 127.0.0.1:53 udp reuseport;        proxy_timeout 20s;        proxy_pass dns;    }    server {        listen [::1]:12345;        proxy_pass unix:/tmp/stream.socket;    }}

四层负载作用

端口转发

做7层负载的高可用

7层负载的端口限制

四层转发的效率比七层的高,因为在tcp的第四层。

大并发的场景会在,七层负载前面添加四层负载。

动静分离

不需要运维来做,开发做的。

  • 动态请求:该请求会调用数据库中的数据。

  • 静态请求:用户请求不会调用数据库。

  • 动态页面:后端开发写的需要调用数据库的页面(python、java、C、php)

  • 静态页面:前端开发写的不需要调用数据库。


配置四层负载均衡

四层负载均衡比七层的转发效率要高,在yum安装nginx的时候不带支持四层负载均衡的模块所以要使用源码编译安装。

[root@nfs01 ~]# tar -xf nginx-1.16.1.tar.gz[root@nfs01 /application]# yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel[root@nfs01 ~/nginx-1.16.1]# ./configure --prefix=/application/nginx-1.16.1 --user=www --group=www --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --with-stream[root@nfs01 ~/nginx-1.16.1]# make && make install[root@nfs01 ~]# vi /etc/profile.d/nginx.shexport PATH="/application/nginx/sbin:$PATH"[root@nfs01 ~]# ln -s /application/nginx-1.16.1/ /application/nginx[root@nfs01 ~]# source /etc/profile[root@nfs01 ~]# vi /application/nginx/conf/nginx.conf...events {    worker_connections  1024;}# 加入它在指定的目录下配置单独的配配置文件include conf.c/*.conf;http {...[root@nfs01 /application/nginx/conf/conf.c]# vi four_upstream.confstream {    upstream lb {            server 172.16.1.5:8005;            server 172.16.1.51:8051;    }    log_format  main '$remote_addr $remote_port - [$time_local] $status $protocol '                     '"$upstream_addr" "$upstream_bytes_sent" "$upstream_connect_time"';        server {            listen 80;            proxy_connect_timeout 3s;            proxy_timeout 3s;            proxy_pass lb;            access_log  logs/access.log  main;    }}



FBI WARNING

QQ:1402122292 认准原创sheldon 别人叫我晓东

欢迎访问个人站点:shelldon.51vip.biz

点击转到获取更过分享

©著作权归作者所有:来自51CTO博客作者80民工的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. ramdisk配置、解压、创建rootfs、启动简单分析
  2. SpringBoot如何加载jar包外面的配置文件?
  3. VS code配置Go环境
  4. 如何指定某些目录配置忽略eslint?
  5. Nginx开启gzip的配置
  6. 弹性负载均衡(Elastic Load Balance,ELB)
  7. 服务器负载均衡(Server Load Balance,SLB)
  8. 【linux】循序渐进学运维-CentOS7基本配置
  9. 【EMCC】 12.1.0.5 OEM server agent 安装配置及监控MySQL数据库

随机推荐

  1. Jenkins长大了,Pipeline该用起来了!
  2. HTML5 蓝色 3D 钻石旋转动画
  3. Javascript 性能测试 [每日前端夜话0xB1]
  4. 漂亮实用!一款基于Bootstrap的jQuery开关
  5. 用 NodeJS 重命名系统文件[每日前端夜话0
  6. 什么?你项目还在用Date表示时间?!
  7. CSS3 全屏大气手风琴图片展示插件
  8. 嗯,用了一下Kotlin编程语言,真香!
  9. 纯CSS3骏马奔腾动画特效
  10. 用 Jest 进行 JavaScript 测试[每日前端