我试图在我自己的服务器上部署一个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。 我的问题是:
非常感谢你。
您是否曾尝试在端口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"';
这应该可以帮助你找出你的日志文件中每一列的含义。