7、nginx的upstream及fastcgi模块应用

ngx_http_proxy_module, ngx_http_upstream_module

ngx_http_proxy_module:实现反向代理及缓存功能

proxy_pass http://{SERVER_IP|UPSTREAM_NAME}/uri

proxy_cache_path path [levels=levels] keys_zone=name:size [inactive=time] [max_size=size];

proxy_cache zone_name;          //缓存名称

proxy_cache_valid [code] time;  //指明不同响应码内容的缓存时长

proxy_cache_method              //只对哪些方法获取的资源进行缓存,一般使用get

proxy_cache_use_stale error timeout ...   //是否使用过期的缓存进行响应

proxy_cache_min_uses             //某资源至少响应请求多少次后才被缓存下来

proxy_cache_bypass string: 设置在何种情形下nginx将不从cache取数据的;比如邮件

例如:$cookie_nocache、$arg_nocache 、$http_authorization

proxy_set_header

ngx_http_upstream_module:定义服务器组

可以调用服务器组反向代理有:proxy_pass, fastcgi_pass, uwsgi_pass,

upstream name {

server address [parameters];

ip_hash;    //基于源地址绑定

}

nginx(2)

SNAT模式的大量Client

基于sticky实现session绑定:

cookie

route

learn ()

least_conn: 调度方法,最少连接;

health_check;

建议:关闭访问日志;

自定义响应首部:

add_header X-Via $server_addr;

add_header X-Cache $upstream_cache_status;

LNMP

fpm

编辑/etc/nginx/fastcgi_params,将其内容更改为如下内容:

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;

fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING       $query_string;

fastcgi_param  REQUEST_METHOD     $request_method;

fastcgi_param  CONTENT_TYPE       $content_type;

fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

fastcgi_param  REQUEST_URI        $request_uri;

fastcgi_param  DOCUMENT_URI       $document_uri;

fastcgi_param  DOCUMENT_ROOT      $document_root;

fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;

fastcgi_param  REMOTE_PORT        $remote_port;

fastcgi_param  SERVER_ADDR        $server_addr;

fastcgi_param  SERVER_PORT        $server_port;

fastcgi_param  SERVER_NAME        $server_name;

LNAMP

LNMP, fastcgi_cache

练习:

(1) root为同一路径;

(2) root为不同的路径;

location \.php$ {

root /web/app/wp;

}

location / {

root /web/htdocs;

}

如何解决问题?

(3) fpm server为另一主机;

location \.php$ {

fastcgi_pass fastcgi://172.16.100.9:9000;

}

location / {

root /web/htdocs;

}

总结:

cache:

proxy_cache

fastcgi_cache

练习:

使用nginx反向代理(rr调度)用户请求至两个以上的后端LAMP(按标准路径部署的有pma);

(1) 手动更新所有节点上的pma至新版本;

(2) 写脚本实现如上过程;

回顾:nginx upstream, fastcgi

upstream name {

server

server

}

wrr

ip_hash|least_conn|sticky

fastcgi_pass fastcgi://

LNMMP: Memcached

HAProxy:

web arch: haproxy

mode: http, tcp (https, mysql)

HAProxy:

代理(http): 掮客(broker)

正向代理:

反向代理:

代理作用:web缓存(加速)、反向代理、内容路由(根据流量及内容类型等将请求转发至特定服务器)、转码器;

在代理服务器上添加Via首部;

缓存的作用:

减少冗余内容传输;

节省带宽、缓解网络瓶颈;

降低了对原始服务器的请求压力;

降低了传输延迟;

HAProxy: 只是http协议的反向代理,不提供缓存功能;但额外支持对tcp层对基于tcp通信的应用做LB;

nginx:

server {

}

server {

location ~* \.php$ {

proxy_pass

}

location / {

}

}

upstream {

leastconn

server

server

}

upstream {

}

haproxy:

frontend

use_backend

default_backend

backend

balancer

server

server

listen:

server

default

配置文件:haproxy.cfg

全局配置

代理配置

回顾:

HAProxy:

http协议反向代理

tcp层的LB

特性:event-driven, ebtree

配置:/etc/haproxy/haproxy.cfg

/usr/sbin/haproxy

CentOS 6: /etc/rc.d/init.d/haproxy

CentOS 7: haproxy.service

配置分为两段:

global

配置参数:log, maxconn, ...

proxies

defaults, frontend, backend, listen

示例:

frontend main *:80

default_backend websrvs

backend websrvs

balance roundrobin

server web1 172.16.100.68 check

server web2 172.16.100.69 check

nihoa

原文地址:https://www.cnblogs.com/hanshanxiaoheshang/p/10004532.html

时间: 2024-11-08 12:34:49

7、nginx的upstream及fastcgi模块应用的相关文章

Nginx反向代理、缓存、 负载均衡、upstream以及fastcgi模块应用

Nginx反向代理,缓存, 负载均衡, upstream及fastcgi模块应用 Nginx版本为nginx-1.6.2-1.el6.ngx.x86_64.rpm可以去官网下载: http://nginx.org/packages/centos/6/x86_64/RPMS/ [[email protected] ~]# rpm -ivhnginx-1.6.2-1.el6.ngx.x86_64.rpm [[email protected] ~]# vim/var/www/html/index.ht

Nginx基础入门之fastcgi模块常用配置项说明

在LNMP环境中,我们都知道nginx如果要解析php脚本语言,就必须通过配置fastcgi模块来提供对php支持,那么在配置fastcgi的时候,关于fastcgi配置项的值应该怎么设置才能让其发挥出更出色的性能呢,下面就讲讲关于nginx模块中fastcgi这部分通用参数介绍 1.1 fastcgi_connect_timeout  配置语法:  fastcgi_connect_timeout 时间(单位为s) 默认值: fastcgi_connect_timeout 60s 配置区域: h

Nginx之upstream和proxy模块使用

一.模块简介 ngx_http_upstream_module模块用于定义可以由proxy_pass.fastcgi_pass.uwsgi_pass.scgi_pass.memcached_pass和grpc_pass指令引用的服务器组. 二.示例 1 upstream feng { 2 server 192.168.1.1:8080 weight = 8; 3 server www.feng.club weight = 2; 4 } 5 6 server { 7 location / { 8

Nginx学习日记第五篇 -- upstream及fastcgi

一.Nginx upstream Ngx_http_upstream_module模块可实现七层负载均衡,定义的服务器组可被proxy_pass.fastcgi_pass.uwsgi_pass.scgi_pass和memcached_pass所引用. 1.实验场景 Nginx upstream IP:192.168.0.110 apache node1 IP:192.168.0.40 apache node2 IP:192.168.0.30  2.Nginx upstream配置(结合proxy

Nginx专题: upstream模块和缓存的简单使用

Nginx专题: upstream模块和缓存的简单使用 前言: 本文接着上篇Nginx专题: 从编译安装到URL重写来介绍Nginx的负载均衡模块使用方法, 本文的实验没有考虑大多数情况, 例如两个web服务器之间的数据同步等, 主要写Nginx如何作为负载均衡器使用并且缓存 实验拓扑 实验环境 主机 IP地址 功用 lb.anyisalin.com 172.16.1.2 负载均衡并缓存静态资源 web1.anyisalin.com 172.16.1.3 提供web服务 web2.anyisal

Nginx之upstream模块和proxy模块简单应用

Nginx在web服务中是一个很强大的工具,可以做静态web服务,当然它的最常用的功能就是其负载均衡,下面只是应用nginx的upstream模块和proxy模块来做一个小实验.在此体现的功能也只是冰山一角. upstreem 使用注意:1.只能使用http上下文.2.各server只能直接使用IP或者主机名,不要加协议,在此次实验中使用server IP的方式来代理其后端,其后端使用Apache,提供web服务. 实验拓扑图: 实验配置 本实验主要应用nginx的upstream模块和prox

nginx添加sticky cookie 分流模块

需要下载nginx源码和sticky,在nginx配置文件中添加sticky模块,然后重新编译nginx. #准备安装基础环境:yum install gcc openssl-devel pcre-devel zlib-devel #下载nginx1.6.3wget http://nginx.org/download/nginx-1.6.3.tar.gz #解压缩nginxtar xvf nginx-1.6.3.tar.gz #安装依赖的库yum -y install libxml2 libxm

nginx的upstream目前支持5种方式的分配

Nginx nginx的upstream目前支持5种方式的分配 FROM: 转载 1 轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器, 如果后端服务器down掉, 能自动剔除. 2 weight 指定轮询几率, weight和访问比率成正比, 用于后端服务器性能不均的情况.例如: 1 2 3 4 upstream bakend {     server 192.168.0.14 weight=10;     server 192.168.0.15 weight=10; } 3 ip_

nginx学习(二)——模块指令介绍

nginx.conf 配置文件详解 Nginx 配置文件主要分成四部分:main(全局设置).server(主机设置).upstream(上游服务器设置,主要为反向代理.负载均衡相关配置)和 location(URL匹配特定位置后的设置).main 部分设置的指令影响其他所有部分的设置:server 部分的指令主要用于制定虚拟主机域名.IP 和端口号:upstream 的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡:location 部分用于匹配网页位置(比如,根目录“/”