Nginx做为CDN缓存负载均衡代理的配置实现

系统架构:

nginx+tomcat+mysql

本文只做Nginx做为CDN缓存负载均衡代理的配置实现的介绍

相关软件:

nginx-1.8.1.tar.gz

ngx_cache_purge-2.3.tar.gz (用于手动清理缓存)

一、nginx安装

[[email protected] ~]tar -xf nginx-1.8.1.tar.gz

[[email protected] ~]tar -xf ngx_cache_purge-2.3.tar.gz -C /usr/local/ngx_cache_purge-2.3

[[email protected] ~]cd nginx-1.8.1

[[email protected] nginx-1.8.1]./configure --prefix=/usr/local/nginx --user=nginx --without-http_fastcgi_module --without-http_scgi_module --add-module=/usr/local/ngx_cache_purge-2.3;make;make install

二、nginx.conf配置

user nginx;
worker_processes  2;

error_log  logs/error.log;
pid /usr/local/nginx/nginx.pid;

events {
    worker_connections  1024;
}

http {
	charset  utf-8;
	server_names_hash_bucket_size 128;
	client_header_buffer_size 4k;
	large_client_header_buffers 4 32k;
	client_max_body_size 300m;
	sendfile on;
	tcp_nopush     on;
	   
	keepalive_timeout 60;
	   
	tcp_nodelay on;
	client_body_buffer_size  512k;
	 
	proxy_connect_timeout    5;
	proxy_read_timeout       60;
	proxy_send_timeout       5;
	proxy_buffer_size        16k;
	proxy_buffers            4 64k;
	proxy_busy_buffers_size 128k;
	proxy_temp_file_write_size 128k;
	   
	  gzip on;
	  gzip_min_length  1k;
	  gzip_buffers     4 16k;
	  gzip_http_version 1.1;
	  gzip_comp_level 2;
	  gzip_types       text/plain application/x-javascript text/css application/xml;
	  gzip_vary on;

	server_tokens off;	  

	log_format  main  ‘$http_x_forwarded_for - $remote_user [$time_local] "$request" ‘
			  ‘$status $body_bytes_sent "$http_referer" ‘
			  ‘"$http_user_agent" "$upstream_cache_status" $remote_addr‘;
	#缓存配置1:2表示第一级目录1个字符,第二级目录2个字符;cache1:20m表示每个缓存区域20M空间;
	#3d表示3天后缓存过期
	proxy_cache_path  /ngx_cache/proxy_cache/cache1  levels=1:2 keys_zone=cache1:20m inactive=3d max_size=500m;			   

	upstream web_app
	{
	 server 0.0.0.0:8081 max_fails=2 fail_timeout=30s;
	}

    server {
        listen      80;
        server_name  
         
        #purge缓存清理配置
	location ~ /purge(/.*) {
		allow all;
		proxy_cache_purge cache1 $host$1$is_args$args;
		}

	#代理配置
        location / {
                proxy_pass http://web_app;
                proxy_next_upstream http_502 http_504 error timeout invalid_header;
                proxy_set_header Host  $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

		add_header Nginx-Cache $upstream_cache_status;#添加响应头的缓存状态,在浏览器F12可以看到Nginx-Cache:HIT,Nginx-Cache:MISS等状态
		proxy_cache cache1;#设置资源缓存的zone
		proxy_cache_key $host$uri$is_args$args;#设置缓存的key,以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
		proxy_cache_valid 200 304 30m;#200和304状态码进行30分钟的缓存
		expires      1d;#缓存过期时间
        	}

        #错误页提示
        error_page   500 502 503 504  /50/50.html;
        location ~ /50(/.*) {
        	root   html;
        	}
	}

三、缓存清理测试

如访问http://203.195.144.57/public/images/main/homepage/wechat.jpg

则清理此图片的格式为http://203.195.144.57/purge/public/images/main/homepage/wechat.jpg

时间: 2024-12-15 01:51:40

Nginx做为CDN缓存负载均衡代理的配置实现的相关文章

用Nginx做NodeJS应用的负载均衡

<用Nginx做NodeJS应用的负载均衡> 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均衡的架构如图所示: 对于复杂的Web应用来说,用Nginx做前端负载均衡是理所当然的事. 下面,我们用Nginx做NodeJS应用的负载均衡. 1.配置Nginx 修改nginx.conf: .... upstream sample { server 127.0.0.

nginx做前端反代负载均衡,后端httpd+tomcat

实验内容:用nginx做前端反代负载均衡后端httpd+tomcat 实验环境:物理机win7,虚拟机centos7: node1:172.18.11.111 httpd+tomcat node2:172.18.11.112 httpd+tomcat node3:172.18.11.113 nginx反代负载均衡 说明:httpd有两种方式与tomcat通信: (1)httpd可使用http模块反代tomcat,此时tomcat使用http链接器: (2)httpd还可使用ajp模块反代tomc

Nginx+Keepalived 实现反代 负载均衡 高可用(HA)配置

Nginx+Keepalived实现反代负载均衡高可用(HA)配置 Nginx+Keepalived实现反代负载均衡高可用配置 OS IP 子网掩码 路由网关 Centos6.6 nginx Keepalived Eth0:192.168.26.210 255.255.252.0 192.168.25.3 VIP:192.168.27.210 Centos6.6 Nginx Keepalived Eth0:192.168.26.211 255.255.252.0 192.168.25.3 VIP

Nginx + Tomcat 动静分离实现负载均衡

0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 # 定义Nginx运行的用户 和 用户组 如果对应服务器暴露在外面的话建议使用权限较小的用户 防止被入侵 # user www www; #Nginx进程数, 建议设置为等于CPU总核心数 worker_processes 8; #开启全局错误日志类型 error_log /var/log/nginx/error.log info; #进程文件

Nginx、LVS及HAProxy负载均衡软件的优缺点详解

提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护.缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用:另外一种就是类似于Nginx/LVS

Nginx、LVS、HAProxy负载均衡软件的优缺点

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂

负载均衡 | Nginx+Tomcat 动静分离实现负载均衡

0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 基本配置这个文件,就可以实现负载了.但是里面的各种关系要了解就比较麻烦了.这篇博客,也不是教学篇,是记录一下,方便以后自己看了. 2.基础讲解 现在假使有一台电脑192.168.8.203这台电脑,上面部署了Tomcat,里面8080端口有J2EE的服务,通过浏览器可以正常浏览网页.现在有一个问题tomcat是一个比较全面的web容器,对静态网页

HAProxy负载均衡代理

HAProxy负载均衡代理1. HAProxy概述       HAProxy 提供高可用性.负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根据官方数据,其最高极限支持 10G 的并发.HAProxy 特别适用于那些负载特大的 web 站点, 这些站点通常又需要会话保持或七层处理. HAProxy 运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的 web 服务

keepalived+nginx实现高可用and负载均衡集群

keepalived+nginx实现高可用and负载均衡集群 前言 因生产环境需要,现需要搭建一个前端为nginx的HA双向互备.后端为nginx代理的loadbalance负载均衡集群.nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都 由主进程发出,Slave(work