【问题标题】:nginx on raspberry pi树莓派上的 nginx
【发布时间】:2015-06-19 04:35:56
【问题描述】:

我跟着http://chimera.labs.oreilly.com/books/1234000000754/ch08.html#_simple_nginx_configuration 在我的树莓派上安装了一个 nginx 服务器来处理我的 django 项目。我添加了一个文件 /etc/nginx/sites-available/pi:

server {
    listen 80;
    server_name pi;

    location /static {
        alias /home/pi/sites/pi;
    }

    location / {
        proxy_pass http://localhost:8000;
    }
}

但是,我的浏览器中的“pi”不起作用,我仍然必须使用 raspberrypi ip 地址。在我更改了 django 项目中的 settings.py 文件后,

DEBUG = False

TEMPLATE_DEBUG = DEBUG

ALLOWED_HOSTS = ['pi']
[...]

树莓派的 IP 地址不再起作用。请帮忙。

【问题讨论】:

    标签: python linux nginx


    【解决方案1】:

    完成安德烈·雷尼奥的回答。

    您正确配置了 django 并将其公开给您的网络。

    问题是,这不是你所需要的。互联网的主要支柱之一是域名解析,即将域名转换为互联网地址的系统。看看它的维基百科页面:https://en.wikipedia.org/wiki/Domain_Name_System

    好的,那现在呢?好吧,您有多种选择:

    编辑等/主机

    在您的客户端机器上编辑您的 /etc/hosts 文件(在 linux 上,在 Windows 上为 %SYSTEMDIR%/drivers/etc/hosts)并添加以下行:

    " pi"

    配置本地 DNS 服务器

    您可以在 PI 上安装 DNS 服务器(例如,参见this post),然后添加到您的 pi /etc/hosts:

    " pi"

    最后配置您的路由器以发送 pi 的 IP 作为 DNS 服务器或您的计算机使用 pi 的 IP 作为 DNS 服务器,由您决定。

    ZeroConf

    我真的不喜欢 ZeroConf 方法,但是,嘿,它就在那里。 ZeroConf 是一个“零配置”系统,它广播运行它的机器提供的服务。

    因此,在 pi 中安装 ZeroConf 并在您的 PC 上安装 ZeroConf 客户端会自动使您能够看到该服务。

    结论

    恕我直言,如果您只有几台机器并且您不介意客人看不到您的 django 服务,我会使用 /etc/hosts 解决方案。试试看,别忘了给 pi 配置静态 IP。

    【讨论】:

      【解决方案2】:

      您可以使用 pi.local 而不是 pi,为此您需要在 Raspberry Pi 和笔记本电脑上使用 Zeroconf。

      在树莓派安装avahi 上,您可以在elinux.org wesite 上找到有关如何执行此操作的详细信息

      在笔记本电脑上,如果是 Windows,则需要 Bonjour Print Services,如果是 Mac OS X,则默认安装 Bonjour,如果是 Linux,则需要安装 Avahi / Zeroconf。

      最后,您需要将 Django 设置上的allowed hosts 更新为此

      ALLOWED_HOSTS = ['pi.local']
      

      【讨论】:

        猜你喜欢
        • 2012-12-04
        • 2014-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多