added nginx+gunicorn+gevent support

This commit is contained in:
Tarek Ziadé 2011-02-25 16:13:52 +01:00
Родитель 824d3b84bf
Коммит 9d2e997ebf
2 изменённых файлов: 194 добавлений и 0 удалений

25
f1-nginx.conf Normal file
Просмотреть файл

@ -0,0 +1,25 @@
user nginx;
worker_processes 5;
worker_rlimit_nofile 30000;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 10000;
}
http {
server {
listen 80 default;
keepalive_timeout 120;
tcp_nodelay on;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://localhost:5000;
break;
}
}
}

169
gunicorn-gevent.ini Normal file
Просмотреть файл

@ -0,0 +1,169 @@
#
# linkdrop - Pylons development environment configuration
#
# The %(here)s variable will be replaced with the parent directory of this file
#
[DEFAULT]
debug = true
# Uncomment and replace with the address which should receive any error reports
#email_to = you@yourdomain.com
smtp_server = localhost
error_email_from = paste@localhost
test_shortener = no
bitly.userid = linkdrop
bitly.key = R_9d8dc7f30887c45eb7b3719d71251006
oauth_failure = /auth.html#oauth_failure
oauth_success = /auth.html#oauth_success
oauth.twitter.com.consumer_key = Z2EEt5NCkwkfPCMhUq5Ew
oauth.twitter.com.consumer_secret = EWQhLT1l4vn4ezehtKwcHPUF4XLaVs1zZrqMY5YjtE
oauth.twitter.com.request = https://twitter.com/oauth/request_token
oauth.twitter.com.access = https://twitter.com/oauth/access_token
oauth.twitter.com.authorize = https://twitter.com/oauth/authenticate
# This is a 'raindrop' app currently owned by markh. By necessity it is
# configured to use a redirect URL back to the default host and port specified
# below for this server.
oauth.facebook.com.app_id = 163981616966631
oauth.facebook.com.app_secret = 78e3bd4ab991ccf50fb9220452eb30b4
oauth.facebook.com.scope = publish_stream,offline_access,user_groups
oauth.facebook.com.authorize = https://graph.facebook.com/oauth/authorize
oauth.facebook.com.access = https://graph.facebook.com/oauth/access_token
# XXX This will not work without registering a domain! See README
oauth.google.com.consumer_key = linkdrop.caraveo.com
oauth.google.com.consumer_secret = 8qsv6nqw6KPbrFFPRyK9fvOw
oauth.google.com.scope = https://mail.google.com/ http://www.google.com/m8/feeds/
# Register with Yahoo! at https://developer.apps.yahoo.com/projects
# Yahoo scope is embeded in the consumer_key and is selected at registration time
# You will need to setup an application with Yahoo on a domain where you can
# upload an html file in order to verify the application. once verified,
# also set verified = 1
oauth.yahoo.com.consumer_key = dj0yJmk9TjFpSlVBcmY2Q2pnJmQ9WVdrOWQwUjVVVFJKTkdVbWNHbzlNVEF6TnpZME1ERTJNZy0tJnM9Y29uc3VtZXJzZWNyZXQmeD1hZg--
oauth.yahoo.com.consumer_secret = a47367578f07e3ea1ddb045b3003a9c7d95a5f69
oauth.yahoo.com.app_id = wDyQ4I4e
# set to true if you have completed domain verification with Yahoo
oauth.yahoo.com.verified = 1
oauth.linkedin.com.consumer_key = sz-cmZ24vIXHAK_3NCsNTsF57F3wrgi0uT0vr5NC6hmXWAdmVSFrGcKUNBqDgjP5
oauth.linkedin.com.consumer_secret = RfvZProhTuRAjuOA8EBm7PVfhZO31W2QdLHGd12nfh7hpAwc7VuZiG15pEwFhRRh
oauth.linkedin.com.request = https://api.linkedin.com/uas/oauth/requestToken
oauth.linkedin.com.access = https://api.linkedin.com/uas/oauth/accessToken
oauth.linkedin.com.authorize = https://api.linkedin.com/uas/oauth/authorize
[server:main]
use = egg:gunicorn#main
host = 127.0.0.1
port = 5000
workers = 5
worker_class = gevent
[filter-app:main]
use = egg:Beaker#beaker_session
next = csrf
beaker.session.key = linkdrop
beaker.session.secret = secret
beaker.session.timeout = 600
# XXX file sessions are slow, should change to memcached or database. be sure
# to set lock_dir below if using memcached
beaker.session.type = memory
#beaker.session.type = ext:memcached
#beaker.session.url = 127.0.0.1:11211
#beaker.session.type = ext:database
#beaker.session.url = mysql+mysqldb://linkdrop:linkdrop@localhost/linkdrop
# If you'd like to fine-tune the individual locations of the cache data dirs
# for the Cache data, or the Session saves, un-comment the desired settings
# here:
beaker.cache.data_dir = %(here)s/data/cache
beaker.session.data_dir = %(here)s/data/sessions
beaker.session.lock_dir = %(here)s/data/sessions/lock
[filter-app:csrf]
use = egg:linkdrop#csrf
# allow access to account api's for oauth, which will not have csrf token
# be sure to use the FULL path
csrf.unprotected_path = /api/account
next = sessioned
[composite:sessioned]
use = egg:Paste#urlmap
/ = home
/api = api
[app:home]
use = egg:linkdrop#static
document_root = %(here)s/web
[app:api]
use = egg:linkdrop
full_stack = true
static_files = false
# if we've configured beaker as a filter-app then don't enable it
# in the pylons middleware, it will just be a duplication.
session_middleware = false
cache_dir = %(here)s/data
# SQLAlchemy database URL
sqlalchemy.url = sqlite:///%(here)s/development.db
#sqlalchemy.url = mysql+mysqldb://linkdrop:linkdrop@localhost/linkdrop
# SQLAlchemy migration
# if managed, the migration repository is here
migrate.repository = %(here)s/changes
# automatically do database upgrades
migrate.auto = 1
# WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT*
# Debug mode will enable the interactive debugging tool, allowing ANYONE to
# execute malicious code after an exception is raised.
#set debug = false
# Logging configuration
[loggers]
keys = root, routes, linkdrop, sqlalchemy
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = INFO
handlers = console
[logger_routes]
level = INFO
handlers =
qualname = routes.middleware
# "level = DEBUG" logs the route matched and routing variables.
[logger_linkdrop]
level = DEBUG
handlers =
qualname = linkdrop
[logger_sqlalchemy]
level = INFO
handlers =
qualname = sqlalchemy.engine
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARN" logs neither. (Recommended for production systems.)
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] [%(threadName)s] %(message)s
datefmt = %H:%M:%S