搭建Nginx图片服务器

Part-I 安装Nginx

  1. 安装PCRE
  2. 下载 ngx_cache_purge 并解压,用来清除缓存
  3. 下载Nginx并解压
  4. cd nginx-1.7.7
  5. 编译,--prefix使用默认值,则nginx安装在/usr/local/nginx
    ./configure    --user=www    --group=www    --add-module=../ngx_cache_purge-1.0
    --with-http_stub_status_module --with-http_ssl_module
    make && make install

Part-II 配置

vim /usr/local/nginx/conf/nginx.conf,并编辑如下:

user  www www;
worker_processes 8; error_log /data3/nginx/error.log crit;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; pid /usr/local/nginx/nginx.pid; 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 和 proxy_cache_path 必须在同一分区
proxy_temp_path /data0/proxy_temp_dir;
# 设置web缓存区名称为cahche_one,内存缓存空间大小为200M,1天没有被访问的内容自动清除硬盘缓存空间大小为300G
proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g; # upstream backend_server{
# server 192.168.1.121:80 weight=1 max_fail=2 fail_timeout=30s;
# server 192.168.1.122:80 weight=1 max_fail=2 fail_timeout=30s;
# server 192.168.1.123:80 weight=1 max_fail=2 fail_timeout=30s;
# } #以下为缓存服务器 log_format cache '***$time_local \n'
' $upstream_cache_status \n'
' $remote_addr, $http_x_forwarded_for \n'
' Cache-Control: $upstream_http_cache_control \n'
' Expires: $upstream_http_expires \n'
' "$request"($status) \n'
' "$http_user_agent" \n'; server {
listen 80;
server_name 192.168.1.120; location / {
proxy_cache cache_one;
# 对不同的HTTP状态码设置不同的缓存时间
proxy_cache_valid 200 304 12h;
#以域名、URI、参数组合成web服务器的key值,Ngnix根据key值哈希,存储缓存内容到二级缓存目录内
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
#此处跳转到真实图片服务器
proxy_pass http://192.168.1.120:8080; access_log /data3/nginx/cache.log cache; expires 1d;
} location ~ /purge(/.*){
#设置只允许指定的ip或ip段才可以清除url缓存
#allow 127.0.0.1;
#allow 192.168.0.0/16;
#deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
} # #扩展名为.php、.jsp、.cig结尾的动态应用程序不缓存
# location ~.*\.(php|jsp|cgi)?$
# {
# proxy_set_header Host $host;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_pass http://backend_server;
# } access_log off; #error_page 404 /404.html; # redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} # proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#} # deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
} #真实的图片服务器
server{
listen 8080;
server_name localhost;
location /{
root /data0/images/;
} #访问日志,一般都off掉
access_log /data3/nginx/access.log combined;
} # another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias; # location / {
# root html;
# index index.html index.htm;
# }
#} # HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost; # ssl_certificate cert.pem;
# ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on; # location / {
# root html;
# index index.html index.htm;
# }
#} }

到此,Nginx图片服务区搭建完毕。 在/data0/images/下放入一张图片 200.jpg测试之 访问 http://192.168.1.120/200.jpg, cache_log记录如下:

***12/Nov/2014:16:15:26 +0800
MISS
192.168.1.19, -
Cache-Control: -
Expires: -
"GET /200.jpg HTTP/1.1"(200)
"Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0" ***12/Nov/2014:16:15:38 +0800
HIT
192.168.1.19, -
Cache-Control: -
Expires: -
"GET /200.jpg HTTP/1.1"(200)
"Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0"

访问 http://192.168.1.120/purge/200.jpg 清除缓存

搭建Nginx图片服务器的更多相关文章

  1. 第一次项目上Linux服务器(八:——搭建Nginx图片服务器)

    一.准备工作 安装Nginx,参考历史博客 二.搭建Nginx图片服务器 1.效果 例如:图片通过xftp服务上传到/home/java/upload目录下,我想通过访问Nginx服务器来访问xftp ...

  2. 【图片服务器】搭建Nginx图片服务器

    一.安装Nginx 二.安装vsftpd 三.开始搭建Nginx图片服务器 1.效果 例如:图片通过ftp服务上传到/home/ftpuser/www/images目录下,我想通过访问Nginx服务器 ...

  3. Windows下搭建Nginx图片服务器

    在项目最开始,上传图片的时候,服务器先保存原图再使用ImageMagick生成上传图片缩略图,这种方法有很多缺点,例如生成的缩略图的大小是固定的,不能动态请求指定大小的缩略图. 虽然有非常多的图片云存 ...

  4. 基于Docker搭建Nginx图片服务器

    前言 一般开发中,都会把图片上传到一个目录,然后将目录和文件名拼接存储在数据库中,但是,这种方法如果没弄好的话可能有一定的缺陷. 若项目搬迁,即时这台服务器本身还在用,存放在服务器的跟项目相关的图片也 ...

  5. 搭建Nginx图片服务器(Linux)

    知识点: 在Linux系统上安装Nginx服务器,配置图片访问路径 通过ftp上传图片到,指定路径,通过浏览器访问指定路径中的图片 参考博客:http://blog.csdn.net/maoyuanm ...

  6. linux搭建nginx图片服务器

    1:参考http://blog.csdn.net/u012401711/article/details/53525908

  7. 04_安装Nginx图片服务器

    一.安装Nginx 先安装Nginx,看我之前发的文章: 搭建Nginx服务器 二.安装vsftpd 再安装vsftpd组件,看我之前发的文章: Linux安装ftp组件 三.开始搭建Nginx图片服 ...

  8. (转)Nginx图片服务器

    本文转至博客http://wenxin2009.iteye.com/blog/2117079 Nginx搭建图片服务器 Nginx下载地址:http://nginx.org/en/download.h ...

  9. FastDFS搭建单机图片服务器(二)

    防丢失转载:https://blog.csdn.net/MissEel/article/details/80856194 根据 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 和 ...

随机推荐

  1. Druid连接池简单入门

    偶尔的机会解释Druid连接池,后起之秀,但是评价不错,另外由于是阿里淘宝使用过的所以还是蛮看好的. 1.jar包依赖--Druid依赖代码 <dependency> <groupI ...

  2. UiThread DEMO

    import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import android.a ...

  3. 【LeetCode 213】House Robber II

    This is an extension of House Robber. After robbing those houses on that street, the thief has found ...

  4. 从python run 和python unittest两种eclipse运行方式深入理解if __name__ == "__main__"

    在写一个简单的python测试程序的时候,发现eclipse中Run as "Python run 和 Python unittest”结果不一样?为什么会不一样? 先贴一下代码段: # - ...

  5. Fedora22(Gnome桌面)安装Chrome

    1.从官网上(http://www.google.cn/chrome/)下载到相对应系统版本的rpm包.这里我的是: google-chrome-stable_current_x86_64.rpm 此 ...

  6. support vector regression与 kernel ridge regression

    前一篇,我们将SVM与logistic regression联系起来,这一次我们将SVM与ridge regression(之前的linear regression)联系起来. (一)kernel r ...

  7. FS,FT,DFS,DTFT,DFT,FFT的联系和区别

    DCT变换的原理及算法 文库介绍 对于初学数字信号处理(DSP)的人来说,这几种变换是最为头疼的,它们是数字信号处理的理论基础,贯穿整个信号的处理. 学习过<高等数学>和<信号与系统 ...

  8. Programming Impala Applications

    Programming Impala Applications The core development language with Impala is SQL. You can also use J ...

  9. select XXX into 和 Insert into XXX select

    检索一个表中的部分行存到另一张表中. 一 .另外的那张表没有新建的时候,使用 select XXX into,创建的表与原表有相同的列名和类型: select * into Departments_C ...

  10. MLE MAP EM

    1.最大似然估计 (MLE):  什么是最大似然估计?     问题:给定一组观察数据还有一个参数待定的模型,如何来估计这个未知参数呢? 观察数据(x1,y1)......(xn,yn)   待定模型 ...