设为首页 收藏本站
查看: 1370|回复: 0

[经验分享] Nginx缓存和程序动静分离设置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-13 09:00:07 | 显示全部楼层 |阅读模式
一、配置Nginx缓存。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
参考:http://nginx.org/en/docs/http/ng ... ml#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缓存是否成功,可以在缓存目录中查看,如图所示:
wKioL1WhQmLwXkmYAAKNfV79NnY832.jpg
二、静态数据访问本地,静态数据交给本地nginx处理。动态数据交给后端代理的tomcat服务器处理。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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;
        }



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-86016-1-1.html 上篇帖子: nginx配置https 下篇帖子: nginx+keepalive搭配负载均衡 程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表