6、nginx的反向代理及缓存功能

nginx模块的应用

ngx_http_proxy_modulenginx 反向代理模块: http://nginx.org/en/docs/http/ngx_http_proxy_module.html

server {

listen

server_name

location / {

proxy_pass http://192.168.184.141:80/;  //指明把用户所有对路径"/"的请求都转发到后端所指定的服务器:192.168.184.141:80

}

}

格式:

location  /uri {

rewrite

proxy_pass http://back_server:port/newuri;

}

/uri --> /newuri

http://www.magedu.com

http://mysql.magedu.com

proxy_connect_timeout:

proxy_hide_header:

upstream

回顾:nginx

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

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/9941007.html

时间: 2024-11-08 20:41:10

6、nginx的反向代理及缓存功能的相关文章

Nginx学习日记第四篇 -- 反向代理及缓存功能

一.Nginx反向代理 Nginx中的ngx_http_proxy_module模块可以实现后端服务器的反向代理功能,这样就可以实现客户端请求的动静分离以及负载均衡功能.  1.实验场景 Nginx主机作为反向代理服务器将客户端请求发往node1主机web服务器 Nginx主机IP:192.168.0.110 node1主机IP:192.168.0.40    2.Nginx主机配置 grep -Ev "#|^$" server.conf     server {         li

Nginx实现反向代理负载均衡功能

反向代理软件Nginx:本身支持反向代理.负载均衡功能,属于L7层负载均衡.Nginx反向代理简单易用,受到大部分中小企业的青睐.LVS:支持L4层负载均衡,haproxy:支持L4.L7层负载均衡L4.L7是指OSI模型中的第四层和第七层:L4:TCP负载均衡:L7:http负载均衡nginx.lvs.haproxy区别参考资料https://www.cnblogs.com/ahang/p/5799065.htmlhttps://www.cnblogs.com/like-minded/p/51

Nginx构建反向代理缓存服务器

防伪码:曾经沧海难为水,除却巫山不是云. 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上,然后由代理服务器去访问Web服务器, 并将Web服务器的Response回传给客户端:  反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提

Nginx反向代理、缓存、负载均衡服务器构建

代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上,然后由代理服务器去访问Web服务器, 并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理. 反向代理服务器接受来

Nginx入门级简介,包括安装,基本使用,负载均衡,动静分离,反向代理,缓存应用等功能。

本文为Nginx入门级简介,包括安装,基本使用,负载均衡,动静分离,反向代理,缓存应用等功能. 依赖项准备 可能用到的依赖库,以下提供官方网站链接可自行下载: pcre http://www.pcre.org/ zlib http://zlib.net http://sourceforge.net/projects/libpng/files/zlib/ zlib.net上不去-是不是被墙了,我们可以使用另外一个链接zlib是 libpng的依赖库 openssl http://www.opens

Nginx实现反向代理负载均衡与静态缓存

介绍: Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.在连接高并发的情况下,Nginx是Apache服务器不错的替代品,能够支持高达50000个并发连接数的响应. 实验环境: Hostname IP 系统 规划 n2.preferred 192.168.1.2 Centos 6.5 Web server n3.preferred 192.168.1.3 Centos 6.5 Web server n6.preferred 192.168.1.6

Nginx 反向代理并缓存及缓存清除

Nginx 反向代理并缓存及缓存清除 原文地址:http://www.cnblogs.com/caoguo/p/5012447.html 一. Nginx 配置 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_conne

nginx 反向代理、缓存

lvs+keepalive+nginx(realserver)两台+tomcat(后端服务器),nginx的配置文件nginx.conf如下 user  nobody nobody; worker_processes 12; error_log /var/log/nginx/error.log crit;(取消记录错误日志) #error_log  /var/log/nginx/debug.log  debug_http; #error_log  logs/error.log; #error_l

nginx反向代理及缓存清理

#下载安装包wget http://nginx.org/download/nginx-1.13.7.tar.gzwget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gzwget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.41.tar.bz2 #--------------- 在未安装nginx的情况下安装ngx_cache_purge -------