Nginx负载均衡-下部

2019-12-03 分类:Linux基础 阅读(201) 评论(0)

负载均衡相关

负载均衡

F5    硬件
LVS   软件
Haproxy  支持四层和七层
Nginx  仅支持7层

配置Nginx4层负载均衡

通过访问负载均衡的5555端口,实际是后端的web01的22端口在提供服务。
通过访问负载均衡的6666端口,实际是后端的mysql的3306端口在提供服务。

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.

worker_processes auto;
error_log /var/log/nginx/error.log info;
events {
worker_connections  1024;
}
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;
}
server {
listen 12345;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass backend;
}
}

[root@lb01 ~]# mkdir -p /etc/nginx/conf.c
[root@lb01 ~]# vim /etc/nginx/nginx.conf
----在events层下面,http层上面
include  /etc/nginx/conf.c/*.conf;

[root@lb01 ~]# cd /etc/nginx/conf.c/
[root@lb01 conf.c]# vim stream.conf
[root@lb01 conf.c]# cat stream.conf
stream {
#1.定义虚拟资源池
upstream ssh {
server 172.16.1.7:22;
}

upstream mysql {
server 172.16.1.51:3306;
}
#2.调用虚拟资源池
server {
listen 5555;
proxy_pass ssh;
}
server {
listen 6666;
proxy_pass mysql;
}
}
[root@lb01 conf.c]# systemctl restart nginx

Nginx动静分离

动静分离,通过中间件将动态请求和静态请求进行分离,分离资源,减少不必要的请求消耗,减少请求延时。
好处:动静分离后,即使动态服务不可用,但静态资源不会受到影响

Nginx动静分离应用案例


配置过程

系统 服务 地址
CentOS7.5 proxy 10.0.0.5
CentOS7.5 Nginx 10.0.0.7
CentOS7.5 Tomcat 10.0.0.7
1.在10.0.0.7准备静态资源
[root@web01 conf.d]# cat images.conf
server{
listen 80;
server_name ds.nfsnobody.com;
root /soft/code;
index index.html;

location ~* .*\.(png|jpg|gif)$ {
root /soft/code/images;
}
}
2.准备目录, 以及静态相关图片
[root@web01 ~ ]# mkdir -p /soft/code/images/
[root@web01 ~ ]# wget -O /soft/code/images/nginx.png http://nginx.org/nginx.png
[root@web01 ~ ]# systemctl restart nginx
3.在10.0.0.7准备java动态资源,记得移除本地的8080端口
[root@web01 ~]# yum install -y tomcat
[root@web01 ~]# systemctl start tomcat
[root@web01 ~]# mkdir /usr/share/tomcat/webapps/ROOT
[root@web01 ~]# vim /usr/share/tomcat/webapps/ROOT/java_test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>


<title>JSP Test Page</title>


&lt;%
        Random rand = new Random();
        out.println("
<h1>Random number:</h1>
");
out.println(rand.nextInt(99)+100);
%&gt;


4.配置proxy服务,10.0.0.5 配置负载均衡代理调度, 实现访问jsp和png
[root@lb01 conf.d]# cat ds_proxy.conf
upstream static {
server 10.0.0.7:80;
}
upstream java {
server 10.0.0.7:8080;
}
server {
listen 80;
server_name ds.nfsnobody.com;
location / {
root /soft/code;
index index.html;
}
location ~ .*\.(png|jpg|gif)$ {
proxy_pass http://static;
include proxy_params;
}
location  ~ .*\.jsp$ {
proxy_pass http://java;
include proxy_params;
}
}
[root@lb01 conf.d]# systemctl restart nginx
5.配置Hosts文件
6.在负载均衡上面添加一个html整合动态资源和静态资源
[root@lb01 ~]# mkdir /soft/code -p
[root@lb01 ~]# cat /soft/code/index.html


<meta charset="UTF-8">
<title>测试ajax和跨域访问</title>
<script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>

<script type="text/javascript"><br />
$(document).ready(function(){<br />
        $.ajax({<br />
        type: "GET",<br />
        url: "http://ds.nfsnobody.com/java_test.jsp",<br />
        success: function(data) {<br />
                $("#get_data").html(data)<br />
        },<br />
        error: function() {<br />
                alert("fail!!,请刷新再试!");<br />
        }<br />
        });<br />
});<br />
</script>
<h1>测试动静分离</h1>
<img src="http://ds.nfsnobody.com/nginx.png">
<div id="get_data"></div>
[root@lb01 ~]# systemctl restart nginx
7.测试动静分离
1.关闭nginx  测试静态
2.关闭tomcat 测试动态

电脑与手机分离

主机 IP地址 作用
proxy 10.0.0.5 负载均衡
web01   10.0.0.7 #模拟iphone页面
web02 10.0.0.8 #模拟android页面

web01操作

[root@web01 conf.d]# cat sj.conf
server {
listen 80;
server_name sj.nfsnobody.com;

location / {
root /sj;
index index.html;
}
}
[root@web01 conf.d]# mkdir /sj
[root@web01 conf.d]# echo "Iphone....." &gt;/sj/index.html
[root@web01 conf.d]# systemctl restart nginx

web02操作

[root@web02 conf.d]# cat sj.conf
server {
listen 80;
server_name sj.nfsnobody.com;

location / {
root /sj;
index index.html;
}
}
[root@web02 conf.d]# mkdir /sj
[root@web02 conf.d]# echo "Android...." &gt; /sj/index.html
[root@web02 conf.d]# systemctl restart nginx

proxy操作

[root@lb01 ~]# cd /etc/nginx/conf.d/
[root@lb01 conf.d]# cat sj_proxy.conf
upstream iphone {
server 172.16.1.7:80;
}

upstream android {
server 172.16.1.8:80;
}

server {
listen 80;
server_name sj.nfsnobody.com;
location / {
if ($http_user_agent ~* "iphone"){
proxy_pass http://iphone;
}
if ($http_user_agent ~* "android"){
proxy_pass http://android;
}
}
}
[root@lb01 conf.d]# systemctl restart nginx
标签:

您可能也喜欢:

Keepalived高可用

Keepalived高可用概述 什么是高可用 什么是高可用双击热备, 一般指2台机器启动着相同的业务系统,当有一台机器down机了, 另外一台服务器能快速的接管, 对于访问的用户是无感知的。 高可用使用场景 那么高可用使用在什么场景,业务系统需要保证7x24小时不...

more

Nginx负载均衡-上部

Nginx负载均衡 负载均衡的用处 Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中,实现负载的分发。那么会大大提升系统的吞吐率、请求性能、高容灾 什么是SLB Ngi...

more

Nginx代理服务

Nginx代理服务概述 什么是代理 代理我们往往并不陌生, 该服务我们常常用到如(代理租房、代理收货等等) 那么在互联网请求里面, 客户端无法直接向服务端发起请求, 那么就需要用到代理服务, 来实现客户端和服务通信 Nginx作为代理服务可以实现很多的...

more

欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称
邮箱
网站

切换注册

登录

忘记密码 ?

切换登录

注册