Skip to content

Instantly share code, notes, and snippets.

@pyh
Created April 20, 2012 21:24
Show Gist options
  • Save pyh/2431987 to your computer and use it in GitHub Desktop.
Save pyh/2431987 to your computer and use it in GitHub Desktop.
Our mogilefs nginx configs
location /dev1 {
client_body_temp_path /var/mogdata/dev1;
}
location /dev2 {
client_body_temp_path /var/mogdata/dev2;
}
location /dev3 {
client_body_temp_path /var/mogdata/dev3;
}
location /dev4 {
client_body_temp_path /var/mogdata/dev4;
}
location /dev5 {
client_body_temp_path /var/mogdata/dev5;
}
location /dev6 {
client_body_temp_path /var/mogdata/dev6;
}
location /dev7 {
client_body_temp_path /var/mogdata/dev7;
}
location /dev8 {
client_body_temp_path /var/mogdata/dev8;
}
location /dev9 {
client_body_temp_path /var/mogdata/dev9;
}
location /dev10 {
client_body_temp_path /var/mogdata/dev10;
}
location /dev11 {
client_body_temp_path /var/mogdata/dev11;
}
location /dev12 {
client_body_temp_path /var/mogdata/dev12;
}
location /dev13 {
client_body_temp_path /var/mogdata/dev13;
}
location /dev14 {
client_body_temp_path /var/mogdata/dev14;
}
location /dev15 {
client_body_temp_path /var/mogdata/dev15;
}
location /dev16 {
client_body_temp_path /var/mogdata/dev16;
}
location /dev17 {
client_body_temp_path /var/mogdata/dev17;
}
location /dev18 {
client_body_temp_path /var/mogdata/dev18;
}
location /dev19 {
client_body_temp_path /var/mogdata/dev19;
}
location /dev20 {
client_body_temp_path /var/mogdata/dev20;
}
location /dev21 {
client_body_temp_path /var/mogdata/dev21;
}
location /dev22 {
client_body_temp_path /var/mogdata/dev22;
}
location /dev23 {
client_body_temp_path /var/mogdata/dev23;
}
location /dev24 {
client_body_temp_path /var/mogdata/dev24;
}
location /dev25 {
client_body_temp_path /var/mogdata/dev25;
}
location /dev26 {
client_body_temp_path /var/mogdata/dev26;
}
location /dev27 {
client_body_temp_path /var/mogdata/dev27;
}
location /dev28 {
client_body_temp_path /var/mogdata/dev28;
}
location /dev29 {
client_body_temp_path /var/mogdata/dev29;
}
location /dev30 {
client_body_temp_path /var/mogdata/dev30;
}
location /dev31 {
client_body_temp_path /var/mogdata/dev31;
}
location /dev32 {
client_body_temp_path /var/mogdata/dev32;
}
location /dev33 {
client_body_temp_path /var/mogdata/dev33;
}
location /dev34 {
client_body_temp_path /var/mogdata/dev34;
}
location /dev35 {
client_body_temp_path /var/mogdata/dev35;
}
location /dev36 {
client_body_temp_path /var/mogdata/dev36;
}
location /dev37 {
client_body_temp_path /var/mogdata/dev37;
}
location /dev38 {
client_body_temp_path /var/mogdata/dev38;
}
location /dev39 {
client_body_temp_path /var/mogdata/dev39;
}
location /dev40 {
client_body_temp_path /var/mogdata/dev40;
}
location /dev41 {
client_body_temp_path /var/mogdata/dev41;
}
location /dev42 {
client_body_temp_path /var/mogdata/dev42;
}
location /dev43 {
client_body_temp_path /var/mogdata/dev43;
}
location /dev44 {
client_body_temp_path /var/mogdata/dev44;
}
location /dev45 {
client_body_temp_path /var/mogdata/dev45;
}
location /dev46 {
client_body_temp_path /var/mogdata/dev46;
}
location /dev47 {
client_body_temp_path /var/mogdata/dev47;
}
location /dev48 {
client_body_temp_path /var/mogdata/dev48;
}
location /dev49 {
client_body_temp_path /var/mogdata/dev49;
}
location /dev50 {
client_body_temp_path /var/mogdata/dev50;
}
upstream mogilefsd {
server 127.0.0.1:47075;
}
user www-data;
worker_processes 16;
error_log /var/log/nginx/error_log crit;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /usr/local/etc/mime.types;
default_type "";
access_log /var/log/nginx/access_log;
sendfile on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
# mogilefsd upstream
include /usr/local/etc/nginx-mogilefsd-upstream.conf;
# Outer MogileFS-Nginx replacement:
# The purpose of the server setting below was to replace the default front-end server that
# came with MogileFS via mogtool with a Nginx 3rd party module nginx_mogilefs_module
# ref: https://github.com/pyh/nginx-mogilefs-module
server {
listen 80;
client_max_body_size 5G;
client_body_buffer_size 25M;
access_log /var/log/nginx/front-end.log;
# error_log /var/log/nginx/front-end-error.log debug;
proxy_hide_header Content-Type;
proxy_buffering off;
proxy_intercept_errors on;
mogilefs_connect_timeout 5s;
mogilefs_send_timeout 5s;
mogilefs_read_timeout 30s;
location ~ ^/([\w._]+)/([\w._]+)/(.+)$ {
set $domain $1;
set $class $2;
set $key $3;
mogilefs_tracker mogilefsd;
mogilefs_methods GET PUT DELETE;
mogilefs_domain $domain;
mogilefs_class $class;
mogilefs_noverify on;
mogilefs_pass $key {
proxy_pass $mogilefs_path;
recursive_error_pages on;
error_page 404 502 503 504 = @try_again1;
}
}
location @try_again1 {
if ($mogilefs_path1 = "") {
return 404;
}
proxy_pass $mogilefs_path1;
error_page 404 502 503 504 = @try_again2;
}
location @try_again2 {
mogilefs_tracker mogilefsd;
mogilefs_methods GET PUT DELETE;
mogilefs_domain $domain;
mogilefs_class $class;
mogilefs_pass $key {
proxy_pass $mogilefs_path;
}
}
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
# Inner Replacement of Mogstored:
# In addition to replacing the front-end for Mogile we decided to replace this backend interface
# that utilized mogstored. What we were noticing was that larger files were not being written
# to the file system and so we opted to go with a Nginx/WebDav implementation instead.
server {
listen 8888;
client_max_body_size 5G;
client_body_buffer_size 25M;
server_name localhost;
access_log /var/log/nginx/back-end.log;
# error_log /var/log/nginx/back-end-error.log debug;
charset utf-8;
root /var/mogdata;
create_full_put_path on;
dav_methods PUT MKCOL DELETE;
dav_access user:rw group:rw all:r;
include /usr/local/etc/device-mappings.conf;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment