supervisorctl说gunicorn procces有一个RUNNING状态,我认为这是成功的。 但有些事情是错误的。 资源只能由IP使用 Nginxconfiguration: upstream hello_app_server { server unix:/var/www/aqe-backend/gunicorn.sock fail_timeout=0; } server { listen 80; server_name 188.166.200.51; client_max_body_size 4G; access_log /var/www/aqe-backend/logs/nginx-access.log; error_log /var/www/aqe-backend/logs/nginx-error.log; location /static/ { alias /var/www/aqe-backend/static/; } location /media/ { alias /var/www/aqe-backend/media/; } location / { # an HTTP header important enough to have its own Wikipedia entry: # http://en.wikipedia.org/wiki/X-Forwarded-For proxy_set_header X-Forwarded-For […]
我试图得到一个非常高性能的web服务器设置处理长轮询,websockets等。我有一个虚拟机运行(Rackspace)与1GB内存/ 4核心。 我已经设置了一个非常简单的gunicorn'hello world'应用程序和(asynchronous)gevent工作者。 在gunicorn之前,我把Nginx和Gunicorn简单的代理放在一起。 使用ab ,Gunicorn吐出7700个请求/秒 ,其中Nginx只有5000个请求/秒 。 预期这种性能下降了吗? 你好,世界: #!/usr/bin/env python def application(environ, start_response): start_response("200 OK", [("Content-type", "text/plain")]) return [ "Hello World!" ] Gunicorn: gunicorn -w8 -k gevent –keep-alive 60 application:application Nginx(剥离): user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 768; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; […]
更新的代码 – 这仍然不工作。 Settings.py STATIC_ROOT = '/home/ubuntu/virtualenv/mysite/homelaunch/static/' STATIC_URL = '/static/' nginx conf :: / etc / nginx / sites-enabled / mysite server { server_name ec2-xxxx.compute-1.amazonaws.com; access_log /home/ubuntu/virtualenv/mysite/error/access.log; error_log /home/ubuntu/virtualenv/mysite/error/error.log warn; connection_pool_size 2048; location /static/ { #alias /home/ubuntu/virtualenv/mysite/homelaunch/static/; #alias /static/; root /home/ubuntu/virtualenv/mysite/homelaunch/; } location / { proxy_pass http://127.0.0.1:8001; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #proxy_set_header X-Forwarded-Host […]
我有一些关于我在Ubuntu(14.10)的Gunicorn(19.0-1)和Nginx中部署Flask应用程序的基本问题。 由于这个应用程序与Web2Py一起,我遵循了一个指南来lockingWeb2Py生成的网站,并为我的Flask应用程序应用相同的策略。 在这个例子中,Gunicorn工作人员作为www-data用户运行,并且通过将www-data组作为拥有者和www-data组locking在/ var / www中的文件和源文件。 但是,有几点让我困惑: 尽pipeGunicorn工作人员以www数据运行,但Gunicorn服务器守护程序仍以root身份运行。 这会引起担忧吗? searchNginx + Gunicorn + Flask会导致推荐通过supervisord运行Gunicorn的站点,而不是init.d服务。 我应该考虑转换吗? 由于www数据帐户被locking(无shell /无密码),开发人员在哪里使用虚拟机运行其代码,以使环境与生产尽可能接近?
我得到一个502错误,这里的nginx日志: 2015/09/04 15:25:31 [error] 1563#0: *1 connect() to unix:/home/90158/test/test.sock failed (111: Connection refused) while connecting to upstream, client: 142.29.143.200, server: hackerspace.sd72.bc.ca, request: "GET / HTTP/1.1", upstream: "http://unix:/home/90158/test/test.sock:/", host: "hackerspace.sd72.bc.ca" 我是nginx / gunicorn的新手,需要知道我可以做什么旁边解决这个问题。 /home/90158/test/test.sock存在。 这里是我的nginx conf文件: server { listen 80; server_name hackerspace.sd72.bc.ca; access_log /var/log/nginx/test.access.log; error_log /var/log/nginx/test.error.log; location = /favicon.ico { access_log off; log_not_found off; } location […]
在本教程之后 ,我能够在AWS EC2实例(运行Ubuntu 16.04)上的virtualenv中设置Django,Gunicorn和nginx,然后继续创build一个Upstart文件来“守护”整个事物。 激活virtualenv后,我检查了: Django的工作 – 我能够通过运行以下端口8000访问我的Django项目: ./manage.py runserver 0.0.0.0:8000 当访问mydomain.com:8000我被默认的Django页面所欢迎。 Gunicorn工作&能够服务Django应用程序 – 我能够通过从我的项目的文件夹(用我的实际项目名称replace项目名称)运行此Django应用程序访问: gunicorn –bind 0.0.0.0:8000 projectname.wsgi:application 当这次访问mydomain.com:8000时,欢迎页面再次迎来了我的欢迎页面,当将/admin追加到URL的末尾时,我能够看到login屏幕减去 CSS(因为Gunicorn没有意识到静态CSS文件,现在可以根据教程确定)。 从这里我开始创build下面的systemd文件(当masterfolder用来显示所有动作发生的文件夹时, myuser是我的系统用户( ubuntu ,因为这是一个Ubuntu实例): [Unit] Description=gunicorn daemon After=network.target [Service] User=myuser Group=www-data WorkingDirectory=/home/myuser/masterfolder ExecStart=/home/myuser/masterfolder/myvirtualenv/bin/gunicorn –workers 3 –bind unix:/home/myuser/masterfolder/projectname.sock$ [Install] WantedBy=multi-user.target` 我遇到了两个问题: 没有任何套接字正在创build – 检查nginx日志文件之外,以及在 virtualenv(不完全确定为什么他们是相同的,顺便说一句)我看到了同样的错误: 2017/01/17 15:12:43 [crit] 12403#12403: *3 connect() to unix:/home/myuser/masterfolder/projectname.sock failed (2: […]
我使用lighttpd反向代理服务django与gunicorn。 现在这个configuration工作: proxy.server = ("" => ( "" => ( "host" => "127.0.0.1", "port" => 8000, ))) 现在我把枪炮移到一个容器里,使用: proxy.server = ("" => ( "" => ( "host" => "192.168.1.2", "port" => 8000, ))) 现在每个请求都有一个由gunicorn看到的ip 192.168.1.1 。 我会明白,如果反向代理混淆真实的IP,但为什么它与本地主机然后呢? 因为我得到 X-Forwarded-For: client-ip X-Host: the.domain X-Forwarded-Proto: http 客户端IP是公共IP空间。 请求来自 主办: nc: connect to 127.0.0.1 8000 from localhost (127.0.0.1) […]
注意 :我在StackOverflow上问了这个问题,但我意识到这可能是一个更合适的地方来问这样的问题。 我试图通过Djangopipe理应用上传一个名为“Testaråäö.txt”的文件。 我在Debian 6服务器上运行Django 1.3.1,使用Gunicorn 0.13.4和Nginx 0.7.6.7。 数据库是PostgreSQL 8.4.9。 其他的Unicode数据保存到数据库没有问题,所以我想这个问题必须以某种方式与文件系统。 我已经设定了 http { charset utf-8; } 在我的nginx.conf。 LC_ALL和LANG被设置为'sv_SE.UTF-8'。 运行“语言环境”validation这一点。 我甚至尝试在我的nginx初始化脚本中设置LC_ALL和LANG,以确保locale设置正确。 这是追溯: Traceback (most recent call last): File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/core/handlers/base.py", line 111, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/contrib/admin/options.py", line 307, in wrapper return self.admin_site.admin_view(view)(*args, **kwargs) File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/utils/decorators.py", line 93, in _wrapped_view response = […]
我有一个自动部署工作stream程,将代码推送到我的生产服务器,并触发数据库迁移,静态文件更新等。问题是,gunicorn不会自动重新加载代码更改没有开发选项 – –reload ,他们build议不使用生产。 相反,指令是发送一个HUP信号给masterpid 。 问题是,我不知道如何在自动脚本中检索masterpid ,尽pipe手动操作很简单。 如何在bash脚本中检索gunicorn systemd进程的materpid值?
我试图设置一个运行Django的Gunicorn WSGI服务器。 设置似乎运行,除了我有一个权限问题。 我已经设置了别名到/ media和一个/静态目录来提供静态内容,但是除非文件被nginx用户所有,否则会产生一个403错误。 由Gunicorn用户上传的文件显然将由该特定用户拥有,这将导致问题。 我可以将nginx用户添加到gunicorn用户组,但是我不想给这些文件赋予nginx一揽子权限。 什么是通过Gunicorn / Wsgi / Django上传或生成文件的build议方法,但允许nginx服务他们没有增加安全问题。 提前致谢,