【发布时间】:2015-04-16 10:58:07
【问题描述】:
我一直在想办法让我的网站上线,我真的需要一些帮助。我确定这是对某些内容的转贴,但我已经阅读了我能找到的所有内容。
我使用 django 编写了我的网站。有用。让我们将我的网站称为myproject。我正在尝试将我的网站与我购买的域名链接起来,我将其称为example.com。
当我键入 whois mysite.com 时,所有内容都会出现,包括三个名称服务器:A.DNS.GANDI.NET、B.DNS.GANDI.NET C.DNS.GANDI.NET。我不知道该怎么处理这些,如果有的话。我通过 Gandi.net 购买了我的域名。
我在我的树莓派上创建了一个虚拟环境,我认为我现在可以将其用作主机。这可能是一个糟糕的主意,但我并不完全理解托管的想法,特别是因为我的网站使用 rabbitmq 连接到我在本地网络上的数据库,所以我知道我需要以某种方式连接到该数据库。我的网站进行了大量计算,或者更确切地说,它发出一个 rabbitmq 请求在我的家庭服务器上进行大量计算,然后在 myproject 上处理结果。
在我在树莓派上创建的虚拟环境中,我按照一些指南安装了 gunicorn 和 nginx。我可以运行 gunicorn 并通过http://127.0.0.1:8001 访问myproject。
我不知道如何将myproject 转到example.com。
我通过 Gandi “购买”了免费的 Simple Hosting 网站,我可以通过我已经在 djago 和 html 中完成的一系列自定义来“编辑我的网站”,所以我不想这样做。
这是我的 virtualenv/django 设置:
gunicorn.config.py:
command = '/usr/local/virtualenvs/django_virtualenv/bin/gunicorn'
pythonpath = '/usr/local/virtualenvs/leagueofanalysis'
bind = '0.0.0.0:8001'
workers = 1
ngnix 配置文件:
server {
server_name example.com;
access_log off;
location /static/ {
alias /usr/local/virtualenvs/myproject/static/;
}
location / {
proxy_pass http://www.example.com:8001;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}
我的项目 django settings.py:
...
ALLOWED_HOSTS = '*' # I need to change this, but what to???
...
显然我是新手,但我是一名研究生,精通计算机,而且我已经使用 linux 10 年了,所以我对编程或类似的东西并不陌生。我只是不明白这个网站的爵士乐!
请解释我如何配置 djano、gunicorn、nginx 和 gandi.net 来发布我的网站,以及其他任何你能说我不理解的内容。如果您也有关于托管的建议,那将不胜感激,因为我知道我无法在我的树莓派上托管,但我不明白其他服务如何允许您托管。例如,您是否真的只是 ssh 进入,安装 gunicorn、nginx、rabbitmq 等,然后将您的 django 项目复制过来并点击“运行”?
在过去的 10 天里,我阅读了大量指南和文档,但我显然遗漏了一些东西。如果您发布指向指南的链接,请用您自己的知识对其进行大量补充。谢谢!
另外,如果需要,请告诉我您还需要什么其他信息。
【问题讨论】:
-
如果 Gunicorn 监听 127.0.0.1:8001,为什么你的 nginx 配置 proxy_pass 到 example.com:8001?或者我会添加听 80;到 nginx 服务器块。我想知道 nginx 在到达 example.com 时是否不会自动使用端口 80,因为不存在监听指令。
标签: django nginx deployment gunicorn