Nginx缓存和程序动静分离设置

一、配置Nginx缓存。

参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path
语法
proxy_cache_path path [levels=levels] keys_zone=name:size [inactive=time] [max_size=size] [loader_files=number] [loader_sleep=time] [loader_threshold=time];
配置格式:
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;
#定义/data/nginx/cache为缓存目录;levels=1:2 有2级子目录,最多为3级子目录,用冒号隔开定义3个数字,每个数字表示其目录名称;keys_zone=one:10m 用多大的空间保存键值;
1.nginx缓存设置:
vim /data/nginx/conf/nginx.conf
user nginx nginx;
worker_processes auto;
pid  /data/nginx/logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
    use epoll;
    worker_connections 65535;
    multi_accept on;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    charset   utf-8;
    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" $http_host‘
                      ‘$status $upstream_status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$upstream_addr" "$http_x_forwarded_for" ‘;
    #access_log  logs/access.log  main;
    sendfile       on;
    tcp_nopush     on;
    keepalive_timeout  60;
    server_tokens  off;
    limit_rate_after 3m;
    limit_rate 512k; 
    tcp_nodelay on;
    client_header_buffer_size 256k;
    large_client_header_buffers 4 256k;
    #Define nginx proxy module
        proxy_http_version 1.1;
        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;
        proxy_headers_hash_max_size 51200;
        proxy_headers_hash_bucket_size 6400;
        #需要在http字段,设置nginx cache
        proxy_temp_path /data/nginx/proxy_temp_path;
        proxy_cache_path /data/nginx/proxy_cache_path levels=1:2 keys_zone=cache_one:50m inactive=20m max_size=30g;
# Define Gzip compression module
    gzip on;
    gzip_vary on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;

    # Define realserver pool
    upstream  tomcat_server {
        ip_hash;
        server 192.168.1.10:5678        max_fails=0  weight=2;
        server 192.168.1.20:7890        max_fails=0  weight=1;
   }
    server {
        listen       80;
        server_name  beyond.com www.beyond.com;

nginx缓存是否成功,可以在缓存目录中查看,如图所示:

二、静态数据访问本地,静态数据交给本地nginx处理。动态数据交给后端代理的tomcat服务器处理。

location ~ .*\.(png|gif|jpg|jpeg|bmp|swf)$ {
        root /data/node1/webapps/ROOT;  #反向代理图片服务器,这里静态数据交给本地处理了。
        expires 1d;                     #缓存一天
        proxy_cache one;                #引用定义的缓存模块名称
        proxy_cache_valid 200 1h;       #请求返回值为200的则缓存1小时
        proxy_cache_valid 302 10m;      #请求返回值为301 302的则缓存10分钟
        proxy_cache_valid any 10s;      #其他任何返回值缓存10秒
        add_header X-Via $server_addr;  #定义这个header名为X-Via 通过变量$server_addr明确说明从哪个服务器来响应的 server_addr
        add_header X-Cache-Status $upstream_cache_status;#明确说明是否命中 $upstream_cache_status为upstream模块
        }
 动态数据交给后端代理的tomcat,实现动静分离。当然做了CDN那就另说了,可以单独把静态数据解析到另外一个域名上去。
        location ~ \.(do|jsp|php)$ {
                proxy_pass  http://tomcat_server;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP       $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
时间: 2024-10-08 12:02:41

Nginx缓存和程序动静分离设置的相关文章

Nginx 和 IIS 实现动静分离【转载】

前段时间,搞Nginx+IIS的负载均衡,想了解的朋友,可以看这篇文章:<nginx 和 IIS 实现负载均衡>,然后也就顺便研究了Nginx + IIS 实现动静分离.所以,一起总结出来,与大家共同探讨. 动静分离,说白了,就是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用服务器的请求.后台应用服务器只负责动态数据请求. 优势:分担负载,减轻web服务器的压力,适用于大负载. 静态资源放置cdn,同时还可以

Nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第三部分

Nginx反向代理.动静分离.负载均衡及rewrite隐藏路径详解 (Nginx Apache MySQL Redis) 楓城浪子原创,转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 三.Nginx动静分离及负载均衡 3.1 Nginx安装 请参考:https://fengchenglangzi.000webhostapp.com/?p=511 亦

haproxy+nginx+tomcat+memcache实现动静分离、会话同步集群

一.实验说明 haproxy在前端做负载均衡调度,后端实现动静分离 静态资源server为nginx 动态内容使用nginx&tomcat做app server,集成于单机,两台 使用两台memcache服务器做高可用session缓存,实现app server宕机时会话不中断 以上组合使用实现业务.session.session缓存均为高可用的集群. 二.实验准备 haproxy server:192.168.0.168 nginx server(静态):192.168.0.68 nginx+

nginx反代后端动静分离 php会话保持使用memcached

nginx调度器: DR:172.18.11.111 ]# yum -y install nginx ]# systemctl start nginx php主机:部署phpwind程序.安装memcached RS1:172.18.11.112 RS2:172.18.11.113 ]# yum -y install php ]# systemctl start php ]# yum -y install memcached ]# yum -y install libmemcached ]# y

nginx+tomcat负载均衡+动静分离

1.服务器A安装ng,服务器B.C安装tomcat: 2.服务器A建立/data/www目录,用于发布静态文件: 3.ng无动静分离配置: user root root; worker_processes 8; pid /usr/local/nginx/nginx.pid; worker_rlimit_nofile 102400; events { use epoll; worker_connections 102400; } http { include mime.types; default

nginx负载均衡、动静分离

一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载:http://yunpan.cn/QXIgqMmVmuZrm 一.前言 在前面的几篇博文中我们主要讲解了Nginx作为Web服务器知识点,主要的知识点有nginx的理论详解.nginx作为

nginx反向代理(动静分离)

使用反向代理(动静分离)可以让nginx专注静态内容,把动态请求交给apache来处理,发挥各自的优势,而且整个架构更加清晰: 这里假设你已经搭建好了nginx环境; 为了简单起见,就不用源码编译安装了,直接使用apt方式安装,不影响说明: apt-get install apache2 -y apt-get install libapache2-mod-php7.0 #php版本随意 修改apache的配置文件,首先端口不能跟nginx重复: 采用apt方式安装的apache需要改如下两个配置

使用nginx作为代理实现动静分离

客户端访问http://bbs.upl.com --> 解析到 nginx_proxy 172.16.2.8 nginx_proxy作为反向代理,实现动静分离:    如果是已知的静态页面请求: 调度给squid             图片,文本.txt,.html,.htm,客户端代码文件.js,.css 其他未知的请求(包括php)调度给lnmp节点 nginx_proxy 使用宿主机    br0    172.16.2.8    <---模拟连接到公网    virbr1    19

Nginx的应用之动静分离

Nginx 的动静分离 我们通过中间件将动态请求和静态请求进行分离,减少了不必要的请求消耗和延时. 动静分离后,即使动态服务不可用,但静态资源不会受到影响. 应用实例 1.准备环境 系统 角色 主机名 IP 服务 CentOS 7.2 反向代理 Nginx_Proxy 192.168.1.10 Nginx:v1.16.1 CentOS 7.2 静态资源 Nginx_Static 192.168.1.11 Nginx:v1.16.1 CentOS 7.2 动态资源 Tomcat_Server 19