user apache apache;
worker_processes 4;
worker_rlimit_nofile 100000;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; events {
use epoll;
multi_accept on;
worker_connections 51200;
} # load modules compiled as Dynamic Shared Object (DSO)
#
dso {
# load ngx_http_fastcgi_module.so;
# load ngx_http_rewrite_module.so;
} http
{
server_tokens off;
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
keepalive_timeout 20; server_names_hash_bucket_size 128;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
client_body_buffer_size 512k;
client_max_body_size 20m;
gzip on;
gzip_disable "msie6";
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/javascript;
gzip_vary on; lua_package_path '/usr/local/tengine/lua/?.lua;;'; upstream tomcat_server {
ip_hash;
server 172.16.151.112:6080 ;
server 172.16.151.113:6080 ;
# server 172.16.151.235 max_fails=2 fail_timeout=30s;
} server {
listen 80;
server_name image0.lovebuy.com.cn;
# root /usr/html/lovebuy; location = / {
root /usr/html/lovebuy/html;
index index.html;
} location ~ ^/index.html$ {
root /usr/html/lovebuy/html;
} location ^~ /subject/ {
root /usr/html/lovebuy/html;
} # location ~ ^/goods_(\d\d\d).html$ {
#
# if (-f $request_filename) {
# root /usr/html/lovebuy/html;
# rewrite ^/goods_(\d\d).html$ /page0$1/goods_0$1.html break;
# rewrite ^/goods_(\d+).html$ /page$1/goods_$1.html break;
# }
#
# if (!-f $request_filename) {
# # rewrite ^/goods_(\d+).html http://www.lovebuy.com.cn/goods_3784.html permanent;
# rewrite ^/goods_(\d+).html http://172.16.151.112:6080/goods_$1.htm permanent;
# }
# proxy_set_header Host $host;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_pass http://tomcat_server;
# } location ~ ^/goods_(.*)(\d\d\d).html$ { root /usr/html/lovebuy/html/page$2/; if (-f $request_filename) {
rewrite ^/goods_(.*)(\d\d\d).html$ /goods_$1$2.html break;
} if (!-f $request_filename) {
rewrite ^/goods_(\d+).html http://$host/goods_$1.htm ;
# proxy_pass http://tomcat_server ;
}
# proxy_set_header Host $host;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_pass http://tomcat_server;
} # location ~ ^/goods_(.*)(\d\d\d).html$ {
#
# root /usr/html/lovebuy/html;
# rewrite ^/goods_(.*)(\d\d\d).html$ /page$2/goods_$1$2.html break;
# } #/thumbnail目录下的图片请求不经过缩略图模块
location ^~ /thumbnail/ {
root /usr/html/lovebuy/upload; } location /lua {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
} #########################################################
#对类似_100x100.gif/jpg/png/jpeg进行缩略图处理
location ~* _([0-9]+)x([0-9]+)\.(gif|jpg|png|jpeg)$ { #匹配文件名规则
# location ^~ /photo/ { #匹配文件名规则
rewrite ^/(upload/)(.*)$ /$2 last;
root /usr/html/lovebuy/upload; #点根目录
lua_code_cache off;
set $image_root /usr/html/lovebuy/upload; #图片目录
set $thumbnail_root /usr/html/lovebuy/upload/thumbnail; #缩略图存放目录
#果缩略图文件存在,直接返回
set $file $thumbnail_root$uri;
if (-f $file) {
rewrite ^/(.*)$ /thumbnail/$1 last;
} #果缩略图文件不存在,则应用缩略图模块处理
if (!-f $file) {
rewrite_by_lua_file /usr/local/tengine/lua/thumbnail.lua;
# rewrite_by_lua '
# local command = "/usr/local/GraphicsMagick/bin/gm convert /usr/local/tengine/html/image/photo/2m.jpg /usr/local/tengine/html/image/photo/2m_300x300.jpg" ;
# os.execute(command); # ';
} }
location /nginx-status {
stub_status on;
access_log off;
#加入访问限制
#allow 60.195.252.106;
allow 172.16.151.83;
#deny all;
}
##################缓存配置###############################3
location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ {
root /usr/html/lovebuy/;
expires 1d; } location ^~ /resources/ {
root /usr/html/lovebuy/;
expires 30d; } ###################缓存配置-end##########################
location / {
concat on; #开启concat模块
root /usr/html/lovebuy/;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

  

nginx lua处理图片的更多相关文章

  1. 使用Nginx+Lua代理Hadoop HA

    一.Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个Master组件提供服务,其中正在使用的组件称为Active,另一个作为备份称为Standby,例如HDFS的NameNo ...

  2. 用Nginx+Lua(OpenResty)开发高性能Web应用

    在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等场景:而把Nginx作为一个Web容器使用的还不是那么广泛.Nginx的高性能是大家公认的,而Nginx开 ...

  3. OpenResty(nginx+lua) 入门

    OpenResty 官网:http://openresty.org/ OpenResty 是一个nginx和它的各种三方模块的一个打包而成的软件平台.最重要的一点是它将lua/luajit打包了进来, ...

  4. Nginx+lua环境搭建

    其实有点类似WampServer一站式安装包 wget http://openresty.org/download/ngx_openresty-1.7.10.1.tar.gz tar -zxvf ng ...

  5. Nginx+Lua(OpenResty)开发高性能Web应用

    使用Nginx+Lua(OpenResty)开发高性能Web应用 博客分类: 跟我学Nginx+Lua开发 架构 ngx_luaopenresty 在互联网公司,Nginx可以说是标配组件,但是主要场 ...

  6. 深入浅出 nginx lua 为什么高性能

    最近很多人问我nginx lua的优势是什么?为什么? 一.同步和异步.阻塞和非阻塞 如果要说清楚这个问题首先要了解:同步和异步.阻塞和非阻塞的关系 同步:php.java的正常代码都是同步执行的 异 ...

  7. Nginx+Lua+Redis 对请求进行限制

    Nginx+Lua+Redis 对请求进行限制 一.概述 需求:所有访问/myapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器 ...

  8. nginx+lua+redis初体验

    1.下载nginx.lua.redis nginx下载地址 wget  http://nginx.org/download/nginx-1.8.0.tar.gz lua下载地址 wget http:/ ...

  9. nginx lua mysql redis设置

    最近公司网站改版,程序和数据库全部用新版,旧版的数据要导入,旧网站的30万条数据url要全部重定向到新版网站,正好前段时间在学习nginx+lua+mysql+memcache(redis),找资料真 ...

随机推荐

  1. Javascript基础系列之(五)条件语句(比较操作符)

    和其他语言一样,JavaScript也有条件语句对流程上进行判断.包括各种操作符合逻辑语句 比较操作符 常用的比较操作符有      等于 == ,  不等于!= , 大于 >, 小于 < ...

  2. html之给文本框设置宽度和高度/input的无边框效果

    <input name="" type="text" style="width:200px; height:20px;" /> ...

  3. sublime text 删除安装的插件

    ctrl+shift+p输入remove package选择要删掉的插件即可

  4. maven初学(二)archeType插件使用

    archeType是一个maven插件,它的主要功能是根据模板来创建工程结构 创建工程结构: 1,创建工程目录 2,输入命令:mvn archetype:generate 3,选择需要的archety ...

  5. Eclipse属性文件编辑器---Properties Editor

    今天在用 Eclipse 来编辑 .properties 文件时,写的中文会自动转为 Unicode 编码,完全不知道自己的中文写的是什么!! 于是查了一下,网上推荐,在Eclipse 中 安装一个 ...

  6. 【CodeForces 227A】Where do I Turn?叉积

    题意 ABC的位置关系只有三种可能: 1.在一条直线上,输出TOWARDS A--B--C 2.AB 和BC垂直,B为直角顶点,AB左侧是C,输出LEFT C--B | A 3.AB 和BC垂直,B为 ...

  7. 配置Junit测试程序

    第一步:加载所需要的包:右键-->Build Path-->Configure Build Path-->Libraries-->Add Library-->Junit ...

  8. hdu 1241 Oil Deposits(水一发,自我的DFS)

    解题思路: 1. 遍历扫描二维数组,遇到‘@’,结果ans++; 2. 将当前 i,j 位置置为‘*’,将当前‘@’的 i,j 传人到DFS函数中,开始遍历八个方向的字符 如果碰到 '@' 则先将当前 ...

  9. unity 全屏乱影 BlitMultiTap

    http://m.blog.csdn.net/blog/stalendp/40859441 官方例子AngryBots的链接地址:http://u3d.as/content/unity-technol ...

  10. WebSocket 是什么原理?为什么可以实现持久连接?

    https://www.zhihu.com/question/20215561   作者:Ovear链接:https://www.zhihu.com/question/20215561/answer/ ...