debuggingGunicorn + Nginx + Django

我试图在我自己的服务器上部署一个readthedocs实例。 推荐的部署方式是使用Gunicorn + nginx和postgres。 因为基本上没有关于如何执行此操作的文档(除了他们的fabfiles,当然只能在他们的服务器上运行),我一直在尝试手动设置自己的服务器。

这是我的nginx.conf

 server { listen 80 default; server_name mysite.com; access_log /var/log/nginx/mysite.access.log; error_log /var/log/nginx/mysite.error.log; location /favicon.ico { root /home/mysite/Code/checkout/readthedocs.org/media/images; break; } location robots.txt { root /home/mysite/Code/checkout/readthedocs.org/media; break; } location /static/ { alias /home/mysite/Code/checkout/readthedocs.org/media/; expires 30d; break; } location /media/ { alias /home/mysite/Code/checkout/readthedocs.org/media/; expires 30d; break; } location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 10; proxy_read_timeout 10; proxy_pass http://127.0.0.1:8888; } } 

djangoconfiguration的settings.py可以在这里find。 我改变settings.py唯一的东西是我在INSTALLED_APPS添加gunicorn ,所以我可以用它运行gunicorn。

我用来运行gunicorn服务器的命令是:

 ./manage.py run_gunicorn -b 127.0.0.1:8888 

然后,如果我尝试从本地浏览器访问127.0.0.1 ,它将工作,但总是显示一个404页面,不pipe我input了什么URL。 运行./manage.py runserver将正确运行一切。

现在我不是一个系统pipe理员,基本上没有django,gunicorn或nginx的经验。 我一直在使用Google和Google周围的configuration,结果为0。 我的问题是:

  1. 如何知道gunicorn调用哪个django的路线? 我可以debugging吗? 所有我能find的日志文件都没有显示出来。
  2. 你看到我的configuration文件有什么问题吗? 如果是这样,你能告诉我什么是错的?

非常感谢你。

您是否曾尝试在端口8888加载该站点以确保它正确运行?

你收到的404消息是否在文本中有nginx ? 这将表明nginx正在查找资源而不是端口8888上的服务。在这种情况下,您可以排查您的configuration文件。

您正在使用nginxlogging访问,所以您可以查看日志以获取更多信息。 tail -n 10 /var/log/nginx/mysite.access.log可以让你看到那个日志的最后10行。

默认情况下,nginx使用组合的日志格式:

 log_format combined '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; 

这应该可以帮助你找出你的日志文件中每一列的含义。