nginx反向代理实现负载均衡,静态文件分离

Nginx 安装

一、安装编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

二、首先要安装 PCRE

PCRE 作用是让 Nginx 支持 Rewrite 功能。

1、下载 PCRE 安装包:

# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

2、解压安装包:

# tar zxvf pcre-8.35.tar.gz

3、进入安装包目录

# cd pcre-8.35

4、编译安装 

# ./configure

# make && make install

5、查看pcre版本

# pcre-config --version

安装 Nginx

1、下载 Nginx

[root@bogon src]# wget http://nginx.org/download/nginx-1.6.2.tar.gz

2、解压安装包

# tar zxvf nginx-1.6.2.tar.gz

3、进入安装包目录

# cd nginx-1.6.2

4、编译安装

# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/root/pcre-8.35

# make

# make install

/usr/local/nginxnginx 安装的目录

/root/pcre-8.35是刚刚pcre安装目录需要调整

5、查看nginx版本

# /usr/local/nginx/sbin/nginx -v

6启动服务测试

# /usr/local/nginx/sbin/nginx

 

7更多命令

/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件

/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx

/usr/local/webserver/nginx/sbin/nginx -s stop             # 停止 Nginx

pkill nginx# 强制关闭

 

配置Nginx反向代理实现负载均衡内置负载策略

安装后nginx的配置文件位于  /usr/local/nginx/conf/nginx.conf

Nginx负载均衡是通过upstream模块来实现的,内置实现了三种负载策略。

官网负载均衡配置说明:http://nginx.org/en/docs/http/load_balancing.html

· 轮循(默认) 
Nginx根据请求次数,将每个请求均匀分配到每台服务器

· 最少连接 
将请求分配给连接数最少的服务器。Nginx会统计哪些服务器的连接数最少。

· IP Hash 
绑定处理请求的服务器。第一次请求时,根据该客户端的IP算出一个HASH值,将请求分配到集群中的某一台服务器上。后面该客户端的所有请求,都将通过HASH算法,找到之前处理这台客户端请求的服务器,然后将请求交给它来处理。

 默认使用轮循

http {

upstream tomcats {

server 192.168.0.100:8080;

server 192.168.0.101:8080;

}

server {

listen 80;

location / { proxy_pass http://tomcats; }

} # ... 省略其它配置 }

· proxy_pass http://tomcats:表示将所有请求转发到tomcats服务器组中配置的某一台服务器上。

· upstream模块:配置反向代理服务器组,Nginx会根据配置,将请求分发给组里的某一台服务器。tomcats是服务器组的名称。

 

upstream模块下的server指令:配置处理请求的服务器IP或域名,端口可选,不配置默认使用80端口。通过上面的配置,Nginx默认将请求依次分配给100,101,102来处理,可以通过修改下面这些参数来改变默认的分配策略:

weight 默认为1,将请求平均分配给每台server

upstream tomcats {

server 192.168.0.100:8080 weight=2; # 2/6次 

server 192.168.0.101:8080 weight=3; # 3/6次 

server 192.168.0.102:8080 weight=1; # 1/6次 

}

fail_timeout 默认为10秒。某台Server达到max_fails次失败请求后,在fail_timeout期间内,nginx会认为这台Server暂时不可用,不会将请求

upstream tomcats {

server 192.168.0.100:8080 weight=2 max_fails=3 fail_timeout=15;

server 192.168.0.101:8080 weight=3;

server 192.168.0.102:8080 weight=1;

}

backup 备份机,所有服务器挂了之后才会生效

upstream tomcats {

server 192.168.0.100:8080 weight=2 max_fails=3 fail_timeout=15;

server 192.168.0.101:8080 weight=3;

server 192.168.0.102:8080 backup;

}

100和101都挂了之前,102为不可用状态,不会将请求分配给它。只有当100和101都挂了,102才会被启用。

max_conns 限制分配给某台Server处理的最大连接数量,超过这个数量,将不会分配新的连接给它。默认为0,表示不限制。注意:1.5.9之后的版本才有这个配置

upstream tomcats {

server 192.168.0.100:8080 max_conns=1000;

}

表示最多给100这台Server分配1000个请求,如果这台Server正在处理1000个请求,nginx将不会分配新的请求给到它。

假如有一个请求处理完了,还剩下999个请求在处理,这时nginx也会将新的请求分配给它。

resolve server指令配置的域名,指定域名解析服务器。需要在http模块下配置resolver指令,指定域名解析服务

http {

resolver 10.0.0.1;

upstream u {

zone ...;

... server example.com resolve;

 }

}

Nginx使用oss上的静态文件配置

阿里云的文档有说:同一个节点的ECS和OSS可以通过内网通信,内网的流量是免费的。

可以通过nginx反向代理的方式,通过内网访问OSS中的内容。

具体的配置如下:

upstream ossproxy  {

        server oss-cn-beijing-internal.aliyuncs.com; #OSS的内网地址

}

修改访问的静态文件路径:如下

location /static {#修改为使用oss中的static

        proxy_pass  http://ossproxy;

        proxy_redirect     off;

        proxy_set_header   Host             youkou.oss-cn-beijing-internal.aliyuncs.com;#Host要修改为OSS的域名或OSS控制台绑定的域名,否则OSS无法识别会报错

        proxy_set_header   X-Real-IP        $remote_addr;

        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

        proxy_max_temp_file_size 0;

        proxy_connect_timeout      90;

        proxy_send_timeout         90;

        proxy_read_timeout         90;

        proxy_buffer_size          4k;

        proxy_buffers              4 32k;

        proxy_busy_buffers_size    64k;

        proxy_temp_file_write_size 64k;

   }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx是一款强大的开源Web服务器软件,除了支持常规的Web服务器功能外,还可以用作正向代理、反向代理负载均衡以及动静分离的配置。 正向代理是指客户端通过代理服务器发送请求,然后由代理服务器转发到目标服务器,从而隐藏客户端的真实身份。在nginx中,可以通过配置修改proxy_pass指令来实现正向代理功能。 反向代理是指客户端发送请求到代理服务器,代理服务器再将请求转发到后端的服务器,然后将后端服务器的响应返回给客户端,客户端无法直接访问到后端服务器。在nginx中,可以通过修改proxy_pass指令来实现反向代理,并且可以使用负载均衡来分配请求到多个后端服务器。 负载均衡是指将请求分发到多个服务器上,以达到均衡负载的目的。在nginx中,可以使用upstream模块配置多个后端服务器,并通过配置proxy_pass和proxy_redirect实现请求的负载均衡nginx支持多种负载均衡算法,如轮询、IP哈希等。 动静分离是指将动态资源和静态资源分别部署在不同的服务器上,以提高系统性能和并发能力。在nginx中,可以通过配置location指令将动态请求和静态请求分别代理到不同的后端服务器或直接返回静态文件,从而实现动静分离。 总结来说,nginx通过配置实现了正向代理、反向代理负载均衡和动静分离等功能,在提供Web服务的同时,能够提高系统的性能、并发能力和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值