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. HTML5——地图应用

    我们就拿百度地图举例吧: 废话少说,直接上Demo 简要截图如下:' 简要代码如下: <!DOCTYPE html> <html> <head> <title ...

  2. 通过Ajax——异步获取相关问题解答

    问题呈现: 解决方案: dataType定义的是接收的值的类型,及controller控制器返回什么类型的值,这就写成什么类型, 我写的是return content("...") ...

  3. Graphics samples2

    为图形填充渐变色: Graphics2D g2=(Graphics2D)g; GradientPaint gra=new GradientPaint(20, 20, Color.BLUE, 100,8 ...

  4. python 读写文件和设置文件的字符编码

    一. python打开文件代码如下: f = open("d:\test.txt", "w") 说明:第一个参数是文件名称,包括路径:第二个参数是打开的模式mo ...

  5. “耐撕”团队2016.03.28 站立会议

    1. 时间:20:30--20:50 2. 成员: Z 郑蕊 * 组长 (博客:http://www.cnblogs.com/zhengrui0452/), P 濮成林(博客:http://www.c ...

  6. dell r710 服务器配置RAID5(3块硬盘做RAID5,另外再弄一块做数据冗余盘)

    本文完全转载于:http://www.jb51.net/article/53814.htm,只为做笔记使用 ①4块硬盘做成RAID5 ②3块硬盘做RAID5,一块硬盘做热备盘 这两种配置之间的区别.大 ...

  7. Eclipse_调试技巧

    一.使用Display视图实时计算变量结果(带智能提示)  windows-->show view-->display http://stackoverflow.com/questions ...

  8. Vijos p1770 大内密探 树形DP+计数

    4天终于做出来了,没错我就是这么蒟蒻.教训还是很多的. 建议大家以后编树形DP不要用记忆化搜索,回溯转移状态个人感觉更有条理性. 大神题解传送门 by iwtwiioi 我的题解大家可以看注释&quo ...

  9. Python 之我见

    读音 Python(KK 英语发音:/ˈpaɪθən/) 序言 其实早前就已经接触了python这个功能强大的脚本语言,但是那时只是基于兴趣而学习,目的性并不是很强,所以学习的并不是很深入.最近由于闲 ...

  10. Java编程思想学习(九) 异常处理

    java的异常处理机制可以使程序有极好的容错性,让程序更加的健壮.所谓的异常,就是指的阻止当前方法或作用域继续执行的问题,,当程序运行时出现异常时,系统就会自动生成一个Exception对象来通知程序 ...