搭建Nginx图片服务器

搭建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 清除缓存

时间: 2024-12-28 16:50:29

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

(转)Nginx图片服务器

本文转至博客http://wenxin2009.iteye.com/blog/2117079 Nginx搭建图片服务器 Nginx下载地址:http://nginx.org/en/download.html 本例下载的是window版本nginx-1.6.1 以下是我本机操作说明: 下载完后,解压,并把它放到D:\tools\nginx-1.6.1,双击nginx.exe即可运行nginx.可通http://127.0.0.1访问到nginx欢迎界面,如下  也可在cmd中通过命令进行启停启动n

在Centos7上搭建Nginx+rtmp服务器

在VPS服务器上配置一个直播环境,在iOS客户端实现推流到直播服务器,通过VLC播放器实现拉取服务器上的流观看直播. 效果图 Demo_01 Centos7上搭建Nginx+rtmp服务器 今天第一次在Centos7上搭建Nginx+rtmp服务器,以前在Mac上成功搭建,所以今天想在Centos7上试一试,在此记录一下,过程还是比较顺利. (1)准备需要的模块及工具(nginx-rtmp-module,openssl和git) 1.使用yum安装git [root~]# yum -y inst

基于centos 7搭建Nginx网站服务器(包含虚拟web主机的配置)

Nginx专为性能优化而开发,其最大的优点就是它的稳定性和低系统资源消耗,以及对http并发连接的高处理能力,单台物理服务器可支持20000~50000个并发请求,正是如此,大量提供社交网络.新闻资讯.电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供web服务,目前中国大陆使用nginx网站用户有:新浪.网易.腾讯,另外知名的微网志Plurk也使用nginx. Nginx是一个很牛的高性能Web和反向代理服务器,它具有有很多非常优越的特性: 高并发连接:官方测试能支撑5万并发连接,在实际生

Centos 7搭建Nginx网站服务器及配置虚拟主机

Nginx专为性能优化而开发,其最大的优点就是它的稳定性和低系统资源消耗,以及对http并发连接的高处理能力,单台物理服务器可支持20000~50000个并发请求,正是如此,大量提供社交网络.新闻资讯.电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供web服务,目前中国大陆使用nginx网站用户有:新浪.网易.腾讯,另外知名的微网志Plurk也使用nginx. Nginx是一个很牛的高性能Web和反向代理服务器,它具有有很多非常优越的特性: 高并发连接:官方测试能支撑5万并发连接,在实际生

转:Linux下使用Nginx搭建简单图片服务器

最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的,今天再这里简单讲一下Nginx实现上传图片以及图片服务器的大致理念. 如果是个人项目或者企业小项目,仅仅只有十来号人使用的小项目,可以使用如下方案: 用户访问系统,使用上传图片功能,那么图片就上传到你的当前项目所在的tomcat服务器上,在/image下,上传成功后用户可以直接访问 http://ip:port/project/images/xxx.jpg 这样做在用户少的时候是没有问题的 当你的企

centos7 nginx图片 服务器可以访问ftp用户上传的图片资源的配置

注:本文参考了csdn:JAVA_DIRECTION的<nginx和ftp搭建图片服务器>一文.在实践中其文在centos7中还是存在缺陷性的 一:前提条件:是成功的安装好了ftp服务器和nginx服务器:如果没有安装敬请参考<CentOS7 搭建FTP服务器>和 <centos7_ linux : Nginx安装手册> 二:开放ftpuser用户主目录的其他用户的访问权限: 1 [[email protected] home]# chmod -R 777 ftpuse

树莓派3B+搭建Nginx流媒体服务器

树莓派3B+搭建流媒体服务器 一.硬件准备 1)树莓派3B+ 2)配套电源 3)连接到网络 二.软件安装包 1)nginx源码包nginx-1.8.1.tar.gz 下载地址: http://nginx.org/download/nginx-1.8.1.tar.gz 2)h264数据流支持包nginx_mod_h264_streaming-2.2.7.tar.gz 下载地址: http://h264.code-shop.com/download/nginx_mod_h264_streaming-

使用iis并搭建 iis 图片服务器

1.打开控制面板 2.程序-卸载程序 3.点击左边的 打开或关闭windows功能 4.如下图所示,找到internet信息服务勾选.顺便把FTP服务器也全部勾选了,后面会用到 5.进入 控制面板 – 系统与安全 – 管理工具 - Internet 信息服务(IIS)管理器 6.进入iis管理页面 7.网站那里右键选择添加网站 8.输入名称,选择好物理路径,选好ip地址和端口(默认80),勾选立即启动网站,点击确定 9.找到刚创建的网站名称,右键管理网站-浏览,在浏览器里打开网站 10.出现错误

FTP+Nginx图片服务器

1.安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件.[[email protected] ~]# yum -y install vsftpd 2.创建虚拟用户登录 2.1 创建文本格式的用户名.密码列表 首先需要建立一个文本格式的用户名/密码列表文件,奇数行为用户名,偶数行为上一行中用户名所对应的密码.例如:添加两个用户jene.john,密码分别为abc123.abc456执行以下的操作: [[email protected] ~