首页 > 代码库 > 配置nginx的图片服务器

配置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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
user  nginx;
 
 worker_processes 8;
 
error_log  /usr/local/webserver/nginx/logs/nginx_error.log  crit;
 
pid        /usr/local/webserver/nginx/nginx.pid;
 
#Specifies the value for maximum file descriptors that can be opened by thisprocess.
worker_rlimit_nofile 65535;
 
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缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为5GB。
  proxy_cache_path  /data0/proxy_cache_dir  levels=1:2   keys_zone=cache_one:200m inactive=1d max_size=5g;
 
   
  server #此处为缓存服务器
  {
    listen       80;
    server_name  your_server_ip;
 
    location /
    {
         proxy_cache cache_one;
         #对不同的HTTP状态码设置不同的缓存时间
         proxy_cache_valid  200 304 12h;
         #以域名、URI、参数组合成Web缓存的Key值,Nginx根据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://your_server_ip:8080; #此处跳转到真实的图片服务器
 
log_format cache ‘***$time_local ‘
 
                    ‘$upstream_cache_status ‘
 
                    ‘Cache-Control: $upstream_http_cache_control ‘
 
                    ‘Expires: $upstream_http_expires ‘
 
                    ‘"$request" ($status) ‘
 
                    ‘"$http_user_agent" ‘; #定义日志格式(此日志格式可以显示hit miss等,显示缓存是否被击中,老版本默认可以,但是新版本,发现需要加上这个)
 
                  access_log  /var/log/nginx/cache.log cache; #使用这个日志格式
 
 
         expires      1d;
    }
 
    #用于清除缓存,假设一个URL为http://192.168.8.42/test.txt,通过访问http://192.168.8.42/purge/test.txt就可以清除该URL的缓存。
    location ~ /purge(/.*)
    {
     #设置只允许指定的IP或IP段才可以清除URL缓存。
     allow            127.0.0.1;
     deny            all;
     #proxy_cache_purge   cache_one$host$1$is_args$args;
    }
 
    #扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存。
    location ~ .*\.(php|jsp|cgi)?$
    {
         proxy_set_header Host  $host;
         proxy_set_header X-Forwarded-For  $remote_addr;
    }
 
    access_log  off;
  }
 
#真实的图片服务器
server
{
  listen 8080;
 
  server_name your_server_ip;
 
  location /
  {
    root /;
 
  }
 
access_log /usr/local/webserver/nginx/logs/nginx_access.log;
 
}
}

  把上面的your_server_ip 改为自己服务器IP.就搞定了..然后输入 nginx -t 测试一下配置有没有问题..没问题就nginx -s reload.

然后你输入your_server_ip:8080/images/pic_name 你就可以访问到你的图片了.如果403什么的话,可以试试 chmod 777 your_images_folder.

有问题可以留言交流哦..noob nginx conf...O(∩_∩)O