天天看點

fastdfs單主機配置多個storage

<code>disabled</code><code>=</code><code>false</code>

<code>group_name</code><code>=</code><code>group1</code>

<code>bind_addr</code><code>=</code><code>172.1</code><code>.</code><code>1.1</code>

<code>client_bind</code><code>=</code><code>true</code>

<code>port</code><code>=</code><code>23000</code>

<code>connect_timeout</code><code>=</code><code>30</code>

<code>network_timeout</code><code>=</code><code>60</code>

<code>heart_beat_interval</code><code>=</code><code>30</code>

<code>stat_report_interval</code><code>=</code><code>60</code>

<code>base_path</code><code>=</code><code>/</code><code>data</code><code>/</code><code>fastdfs</code>

<code>max_connections</code><code>=</code><code>256</code>

<code>buff_size </code><code>=</code> <code>256KB</code>

<code>accept_threads</code><code>=</code><code>1</code>

<code>work_threads</code><code>=</code><code>4</code>

<code>disk_rw_separated </code><code>=</code> <code>true</code>

<code>disk_reader_threads </code><code>=</code> <code>1</code>

<code>disk_writer_threads </code><code>=</code> <code>1</code>

<code>sync_wait_msec</code><code>=</code><code>50</code>

<code>sync_interval</code><code>=</code><code>0</code>

<code>sync_start_time</code><code>=</code><code>00</code><code>:</code><code>00</code>

<code>sync_end_time</code><code>=</code><code>23</code><code>:</code><code>59</code>

<code>write_mark_file_freq</code><code>=</code><code>500</code>

<code>store_path_count</code><code>=</code><code>1</code>

<code>store_path0</code><code>=</code><code>/</code><code>data</code><code>/</code><code>fastdfs</code>

<code>subdir_count_per_path</code><code>=</code><code>256</code>

<code>tracker_server</code><code>=</code><code>172.1</code><code>.</code><code>1.2</code><code>:</code><code>22122</code>

<code>log_level</code><code>=</code><code>info</code>

<code>run_by_group</code><code>=</code>

<code>run_by_user</code><code>=</code>

<code>allow_hosts</code><code>=</code><code>*</code>

<code>file_distribute_path_mode</code><code>=</code><code>0</code>

<code>file_distribute_rotate_count</code><code>=</code><code>100</code>

<code>fsync_after_written_bytes</code><code>=</code><code>0</code>

<code>sync_log_buff_interval</code><code>=</code><code>10</code>

<code>sync_binlog_buff_interval</code><code>=</code><code>10</code>

<code>sync_stat_file_interval</code><code>=</code><code>300</code>

<code>thread_stack_size</code><code>=</code><code>512KB</code>

<code>upload_priority</code><code>=</code><code>10</code>

<code>if_alias_prefix</code><code>=</code>

<code>check_file_duplicate</code><code>=</code><code>0</code>

<code>file_signature_method</code><code>=</code><code>hash</code>

<code>key_namespace</code><code>=</code><code>FastDFS</code>

<code>keep_alive</code><code>=</code><code>0</code>

<code>use_access_log </code><code>=</code> <code>false</code>

<code>rotate_access_log </code><code>=</code> <code>false</code>

<code>access_log_rotate_time</code><code>=</code><code>00</code><code>:</code><code>00</code>

<code>rotate_error_log </code><code>=</code> <code>false</code>

<code>error_log_rotate_time</code><code>=</code><code>00</code><code>:</code><code>00</code>

<code>rotate_access_log_size </code><code>=</code> <code>0</code>

<code>rotate_error_log_size </code><code>=</code> <code>0</code>

<code>log_file_keep_days </code><code>=</code> <code>0</code>

<code>file_sync_skip_invalid_record</code><code>=</code><code>false</code>

<code>use_connection_pool </code><code>=</code> <code>false</code>

<code>connection_pool_max_idle_time </code><code>=</code> <code>3600</code>

<code>http.domain_name</code><code>=</code>

<code>http.server_port</code><code>=</code><code>8888</code>

<code>group_name</code><code>=</code><code>groupuser2</code>

<code>port</code><code>=</code><code>23001</code>

<code>base_path</code><code>=</code><code>/</code><code>data</code><code>/</code><code>groupuser2</code>

<code>store_path0</code><code>=</code><code>/</code><code>data</code><code>/</code><code>groupuser2</code>

<code>http.server_port</code><code>=</code><code>8889</code>

<code>cat config</code>

<code>ngx_addon_name</code><code>=</code><code>ngx_http_fastdfs_module</code>

<code>HTTP_MODULES</code><code>=</code><code>"$HTTP_MODULES ngx_http_fastdfs_module"</code>

<code>NGX_ADDON_SRCS</code><code>=</code><code>"$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"</code>

<code>CORE_INCS</code><code>=</code><code>"$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"</code>

<code>CORE_LIBS</code><code>=</code><code>"$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"</code>

<code>CFLAGS</code><code>=</code><code>"$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"</code>

<code>cat mod_fastdfs.conf</code>

<code>#include http.conf</code>

<code>connect_timeout</code><code>=</code><code>2</code>

<code>network_timeout</code><code>=</code><code>30</code>

<code>storage_sync_file_max_delay </code><code>=</code> <code>86400</code>

<code>load_fdfs_parameters_from_tracker</code><code>=</code><code>true</code>

<code>log_filename</code><code>=</code><code>/</code><code>var</code><code>/</code><code>log</code><code>/</code><code>tengine</code><code>/</code><code>mod.log</code>

<code>url_have_group_name</code><code>=</code><code>true</code>

<code>response_mode</code><code>=</code><code>redirect</code>

<code>flv_support </code><code>=</code> <code>true</code>

<code>flv_extension </code><code>=</code> <code>flv</code>

<code>group_count </code><code>=</code> <code>5</code>

<code>[group1]</code>

<code>storage_server_port</code><code>=</code><code>172.1</code><code>.</code><code>1.1</code><code>:</code><code>23000</code>

<code>[group2]</code>

<code>storage_server_port</code><code>=</code><code>172.1</code><code>.</code><code>1.1</code><code>:</code><code>23001</code>

<code>nginx</code>

<code>server {</code>

<code>  </code><code>listen </code><code>8080</code><code>;</code>

<code>  </code><code>server_name </code><code>172.1</code><code>.</code><code>1.1</code><code>;</code>

<code>  </code><code>access_log      </code><code>/</code><code>var</code><code>/</code><code>log</code><code>/</code><code>tengine</code><code>/</code><code>test_access.log;</code>

<code>  </code><code>error_log       </code><code>/</code><code>var</code><code>/</code><code>log</code><code>/</code><code>tengine</code><code>/</code><code>test_error.log;</code>

<code>  </code><code>location </code><code>/</code><code>lua {</code>

<code>     </code><code>default_type </code><code>'text/plain'</code><code>;</code>

<code>     </code><code>content_by_lua </code><code>'ngx.say("hello,lua")'</code><code>;</code>

<code>     </code><code>}</code>

<code>  </code><code>location ~</code><code>*</code> <code>/</code><code>group1</code><code>/</code><code>M00</code><code>/</code>  <code>{</code>

<code>      </code><code>ngx_fastdfs_module;</code>

<code>      </code><code>set</code> <code>$needCreateImg </code><code>0</code><code>;</code>

<code>      </code><code>if</code> <code>( !</code><code>-</code><code>f $request_filename) {</code>

<code>         </code><code>set</code> <code>$needCreateImg </code><code>"${needCreateImg}1"</code><code>;</code>

<code>      </code><code>}</code>

<code>     </code><code>if</code> <code>($uri ~</code><code>*</code> <code>"/group1/M00/(\d+)/(\d+)/([A-Za-z0-9_-]+).(gif|jpg|jpeg|png).(\d+x\d+).(gif|jpg|jpeg|png)"</code><code>) {</code>

<code>         </code><code>set</code> <code>$needCreateImg </code><code>"${needCreateImg}2"</code><code>;</code>

<code>         </code><code>set</code> <code>$conUri     </code><code>"/$1/$2/$3.$4.$5.$6"</code><code>;</code>

<code>      </code><code>if</code> <code>($needCreateImg </code><code>=</code> <code>"012"</code><code>) {</code>

<code>         </code><code>set</code> <code>$image_root </code><code>"/data/fastdfs/data"</code><code>;</code>

<code>         </code><code>set</code> <code>$</code><code>file</code> <code>"$image_root$conUri"</code><code>;</code>

<code>            </code><code>rewrite_by_lua '</code>

<code>               </code><code>local index </code><code>=</code> <code>string.find(ngx.var.conUri, </code><code>"([0-9]+)x([0-9]+)"</code><code>);</code>

<code>               </code><code>local originalUri </code><code>=</code> <code>string.sub(ngx.var.conUri, </code><code>0</code><code>, index</code><code>-</code><code>2</code><code>);</code>

<code>               </code><code>local area </code><code>=</code> <code>string.sub(ngx.var.conUri, index);</code>

<code>               </code><code>index </code><code>=</code> <code>string.find(area, </code><code>"([.])"</code><code>);</code>

<code>               </code><code>area </code><code>=</code> <code>string.sub(area, </code><code>0</code><code>, index</code><code>-</code><code>1</code><code>);</code>

<code>               </code><code>function table.contains(table, element)</code>

<code>                 </code><code>for</code> <code>_, value </code><code>in</code> <code>pairs(table) do                 </code>

<code>                   </code><code>if</code> <code>value </code><code>=</code><code>=</code> <code>element then</code>

<code>                     </code><code>return</code> <code>true</code>

<code>                   </code><code>end</code>

<code>                  </code><code>end</code>

<code>                  </code><code>return</code> <code>false</code>

<code>                </code><code>end</code>

<code>                </code><code>local c </code><code>=</code> <code>"/usr/local/graphicsmagick/bin/gm convert "</code> <code>.. ngx.var.image_root ..  originalUri  .. </code><code>" -thumbnail "</code> <code>.. area .. </code><code>" - "</code><code>;</code>

<code>                </code><code>local f </code><code>=</code> <code>assert</code><code>(io.popen(c, </code><code>"r"</code><code>))</code>

<code>                </code><code>local s </code><code>=</code> <code>assert</code><code>(f:read(</code><code>"*a"</code><code>))</code>

<code>                </code><code>f:close()</code>

<code>                </code><code>ngx.say(s) ';</code>

<code>              </code><code>}</code>

<code>           </code><code>alias </code><code>/</code><code>data</code><code>/</code><code>fastdfs</code><code>/</code><code>data</code><code>/</code><code>;</code>

<code>        </code><code>}</code>

<code>}</code>

再搞個8081就行了。

通路400的錯誤

http://bbs.chinaunix.net/thread-4120027-1-1.html

<a href="https://s5.51cto.com/wyfs02/M00/04/7C/wKiom1mj6XKA2uabAACOzxaAqeI992.png" target="_blank"></a>

<a href="http://blog.csdn.net/liweizhong193516/article/details/53244134" target="_blank">http://blog.csdn.net/liweizhong193516/article/details/53244134</a>

<a href="https://s4.51cto.com/wyfs02/M02/A3/86/wKioL1mk3viitZAyAAFrZebCuVQ746.png" target="_blank"></a>

經過測試,發現redirect模式有問題,header already sent,是以正确還是Proxy模式。

縮略圖

"/usr/local/graphicsmagick/bin/gm convert "

or

"/usr/local/ImageMagick/bin/convert "

本文轉自 liqius 51CTO部落格,原文連結:http://blog.51cto.com/szgb17/1960255,如需轉載請自行聯系原作者

繼續閱讀