Nginx做缓存及代理均衡

编译安装缓存nginx:

yum install -y gcc gcc-c++ openssl-devel zlib-devel
tar xf pcre-8.34.tar.gz 
cd pcre-8.34
./configure && make && make install 
cd ..
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
tar xf ngx_cache_purge-2.3.tar.gz -C /opt/app
tar xf nginx-1.4.7.tar.gz
cd nginx-1.4.7
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/opt/app/ngx_cache_purge-2.1/

这里我添加一块磁盘做缓存

fdisk /dev/sdb
n
p
1
w
q
mkfs.ext3 /dev/sdb1
mkdir /cache
mount /dev/sdb1 /cache

nginx-cache主要配置:

[[email protected] ~]# cat /usr/local/nginx/conf/nginx.conf
 user www www;
worker_processes 1;
error_log /usr/local/nginx/logs/error.log crit;
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
      include mime.types;
      default_type application/octet-stream;
      charset utf-8;
      server_names_hash_bucket_size 128;
      client_header_buffer_size 32k;
      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/plainapplication/x-javascript text/css application/xml;
      gzip_vary on;
 
      proxy_temp_path /cache/proxy_temp_dir;
      proxy_cache_path /cache/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
 
upstream backend_server {
      server 192.168.150.131:80 weight=1 max_fails=2 fail_timeout=30s;
      server 192.168.150.129:80 weight=1 max_fails=2 fail_timeout=30s;
}
server
{
      listen 80;
      server_name localhost;
      index index.html index.htm;
      root /cache/web;
      location /
      {
        root /cache/web;  
index index.html index.htm;
proxy_next_upstream http_502 http_504 error timeout invalid_header;#不可达就转发给其它服务器处理
           proxy_cache cache_one;#在location匹配的的URL被缓存
           proxy_cache_valid 200 304 12h;#对返回状态码200和304的缓存12小时,200表示服务器处理成功,304表示网页内容未改变
           proxy_cache_key $host$uri$is_args$args;#设置缓存文件获得文件名的参数
           proxy_set_header Host $host;
           proxy_set_header X-Forwarded-For $remote_addr;
           proxy_pass http://backend_server;
           expires 1d;
      }
      location ~ /purge(/.*)#设置手动清理缓存
      {
           auth_basic "TDT  Center  CACHE  Center";
        #   auth_basic_user_file /tmp/htpasswd;#如果想保护缓存安全可以添加验证信息
           allow 127.0.0.1;
           allow 192.168.150.0/24;
           deny all;
           proxy_cache_purge cache_one $host$1$is_args$args;
      }
 
      location ~ .*\.(php|jsp|cgi)?$#不缓存动态内容
      {
           proxy_set_header Host $host;
           proxy_set_header X-Forwarded-For $remote_addr;
           proxy_pass http://backend_server;
      }
  }
}

清除缓存:

时间: 2024-10-18 14:15:10

Nginx做缓存及代理均衡的相关文章

Nginx做NodeJS应用负载均衡配置实例

这篇文章主要介绍了Nginx做NodeJS应用负载均衡配置实例,本文直接给出配置实例,需要的朋友可以参考下. 负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均衡的架构如图所示: 对于复杂的Web应用来说,用Nginx做前端负载均衡是理所当然的事.下面,我们用Nginx做NodeJS应用的负载均衡.1.配置Nginx修改nginx.conf: upstream sample { server 127.0.0.1:3000; server 127.0.0.1

nginx做为反向代理对X-Forwarded-For的设置

X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项.它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍. 标准格式如下: X-Forwarded-For: client1, proxy1, proxy2 从标准格式可以看出,X-Forwarded-For头信息可以有多个,中间用逗号分隔,第一项为真实的客户端ip,剩下的就是曾经经过的代理或负载均衡的ip

使用nginx做 tcp/udp 负载均衡

目标:对非http流量进行负载均衡 可选技术:nginx + docker-compose ,,,, 过程: 负载tcp/udp流量需要重新构建一下nginx,官网原文是 built with the --with-stream ,于是找了几个带参数的Dockerfile,大都是半年一年之前的文章了,打镜像不是重点,而且调试起来费时费力.还是想最好直接找一个官方构建好的版本,负载均衡测试后再自己构建镜像也不迟. 在docker hub找了一下,nginx默认镜像不带--with-stream参数

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

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

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

Nginx反向代理、缓存、负载均衡

环境介绍 主机名 系统环境 Ip地址 Nginx nginx Centos 6.6 64位 172.16.4.100 Web-01 Web-01 Centos 6.6 64位 172.16.4.101 Web-02 Web-02 Centos 6.6 64位 172.16.4.102 安装nginx 使用官网制作好的rpm包 [[email protected] ~]# rpm -ivh nginx-1.6.2-1.el6.ngx.x86_64.rpm [[email protected] ~]

nginx配置、反向代理缓存、负载均衡

一.nginx基本配置nginx开启文件目录浏览功能(web上显示目录) 1location / { 2 root /data/www/file //指定实际目录绝对路径: 3 autoindex on; //开启目录浏览功能: 4 autoindex_exact_size off; //关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b: 5 autoindex_localtime on; //开启以服务器本地时区显示文件修改日期! 6}php-fpm配置 1 location ~

nginx做负载均衡配置文件

nginx做负载均衡是在反向代理的基础上做的,代码如下: Java代码   ## Basic reverse proxy server ## ## Apache backend for www.baidu.com ## upstream henushang  { # 不过最好换成你们的服务器测试,因为我测试的时候使用jd和baidu的都没有连接成功,         # 换成自己的服务器就行了,估计是那里有限制,如果哪位知道,请指教 server www.jd.com weight=1; # 或

Nginx七层反向代理和负载均衡

1.介绍 1.1 Nginx不仅是一个出色的web软件,其七层代理和负载均衡也是相当出色.Nginx做前端代理,当用户请求服务时,可以根据url进行判断,然后分配到不同的后台webserver上. 1.2 Nginx的负载均衡实现原理:首先在http模块中配置使用upstream模块定义后台的web server的池子,名为proxy-web,在池子中我们可以添加多台后台webserver,其中状态检查.调度算法都是在池子中配置:然后在serverr模块中定义虚拟主机,但是这个虚拟主机不指定自己