【问题标题】:CentOS Server Name does not workCentOS 服务器名称不起作用
【发布时间】:2014-04-03 03:13:34
【问题描述】:

我正在使用 CentOS 6.5,主机名 NAFD 仅与 IP 地址 192.9.200.69 一起使用。我使用这个tutorial成功地安装了带有Supervisor的Django-NginX-Gunicorn。

django 在127.0.0.1:8000 中运行成功,没有错误。我在 root 用户或 CentOS 中的其他用户中访问网络服务器 django admin 没有问题。假设 django webserver 应该可以在网络中访问,我现在可以进入下一个阶段,从客户端计算机测试应用程序。

问题从这里开始。

当我尝试使用http://nafd:8000/admin 从网络中的客户端计算机进行连接时,它给了我page not found。但是当我使用http://192.9.200.69/admin 时,我得到了 Nginx Welcome Powered Page。

我已经将 CentOS 防火墙设置为接受来自 80 和 8000 的端口。我可以使用它的 ip 地址 ping 网络服务器。

这是我第一次使用 Nginx-Gunicorn 和 Supervisor。我只在 Win7 中使用 Django,而从客户端访问网络服务器没有问题。

通过阅读其他相关问题和可能的解决方案,我现在的方向是在我的 CentOS 6.5 中安装 DNS 服务器。

如果这是正确的做法,我需要帮助吗?或者有没有其他可能的方法来解决这个问题。

感谢您抽出宝贵时间阅读。

追踪路线结果:

C:\Windows\System32>tracert -4 192.9.200.69

Tracing route to 192.9.200.69 over a maximum of 30 hops

1     1 ms    <1 ms    <1 ms  192.9.200.69

Trace complete.

NGINX 配置

server {
  server_name nafd;
  access_log off;

  location /static/ {
       alias /opt/nafd/nafd_proj/nafd_proj/static;

  }

  location / {
       proxy_pass http://127.0.0.1:80;
       proxy_set_header X-Forward-Host $server_name;
       proxy_set_header X-Real-IP $remote_addr;
       add_header P3P 'CP="ALL DSP COR PSAa OUR NOR ONL UNI COM NAV"';
  }

}

Gunicorn 配置

command = '/opt/nafd/bin/gunicorn'
pythonpath = '/opt/nafd/nafd_proj'
bind = '127.0.0.1:80'
workers = 3
#user = 'nafdit'

更新

当我在 python manage.py runserver 0.0.0.0:8001 中运行 django 时,我可以使用 url 中的 192.9.200.69:8001/admin 从网络中的任何计算机访问该应用程序,但 nafd:8001/admin 不能远程工作。

【问题讨论】:

  • Ping 不足以测试 dns 是否正常工作。运行跟踪路由。并与您分享 nginx 和 gunicorn 配置。
  • “127.0.0.0:8000”应该是什么?我猜它应该是所有 ip 地址的 0.0.0.0 或仅本地访问的 127.0.0.1。
  • @Danack,我的立场是正确的..它应该是 0.0.0.0..@Anup,我的配置与教程几乎相同。我稍后会发布我的完整配置以及跟踪路由结果
  • 我完全禁用了我的防火墙和 SELINUX..但问题仍然存在
  • 您是否遵循教程并使用bin/gunicorn_start 脚本启动您的应用程序?

标签: django networking nginx gunicorn centos6


【解决方案1】:

看起来像是 DNS 问题,您的远程计算机无法将 nafd 解析为 192.9.200.69。你可以通过运行nslookup 192.9.200.69 来检查这个,你可能不会得到nafd。作为快速检查,您可以更改远程计算机的 hosts file 并在末尾添加 192.9.200.69 nafd,这会将主机名硬编码到该 IP 地址。然后重新启动浏览器并尝试访问nafd:8001/admin

这只会让它在特定的计算机上工作,它可以在你网络中的所有计算机上工作,你需要为你的网络设置一个 DNS 服务器(试试these@ 987654323@)

希望对您有所帮助。

【讨论】:

  • 这就是在开发模式和生产模式下工作的区别..通过设置DNS服务器吗?
  • 不,您只是遇到了网络问题,即使您的生产服务器在不同的端口上运行,您的远程计算机也无法访问它。话虽如此,您还是应该强烈考虑迁移到生产服务器:来自runserver doc请勿在生产环境中使用此服务器。它没有经过安全审计或性能测试。
  • 检查绑定 DNS 到 CentOS,主机名 NAFD 是否足以作为服务器名称的名称,或者我需要创建一个虚拟域名可能就像一个词 local。最终主机名如NAFD.local?
  • 我正在尝试在没有虚拟化的情况下设置我的网络服务器的计算机上安装 DNS SERVER。但我仍然无法访问 url nafd.local:8000/admin。我将在下周一尝试在另一台计算机上安装 DNS SERVER。
【解决方案2】:

从它的声音来看,这里有 3 种可能的解决方案。

DNS 或域名服务(或有人称之为域名服务器)。 DNS 系统通常只是将域名/主机名转换为 IP 地址,并且根据您的网络设置,这可能有点矫枉过正。大多数情况下,如果您没有专用的 DNS 服务器并且正在使用 ISR 或类似的东西,而您无法手动添加 DNS,则需要进行大量的网络重新配置。

Netbios/WINS 名称。默认情况下,Windows 将尝试使用 WINS/netbios 名称进行通信,但是 WINS 作为“Windows Internet 名称服务”并不是大多数 Linux 发行版通常附带的功能。要进行此设置,您需要安装 Samba 并进行设置并打开所需的端口。 http://wiki.centos.org/HowTos/SetUpSamba 可以帮助你解决这个问题。

主机文件配置。也可以通过手动编辑每台计算机的主机文件来获得所需的功能。这就像在每台计算机中放置一个手动 DNS 条目,并且还需要您对您希望添加到网络的每台计算机进行此配置更改(如果您希望能够通过 PC 名称进行浏览)。在 Windows 7 中,hosts 文件位于 C:\Windows\System32\drivers\etc\hosts 中,您可以将“192.9.200.69 NAFD”行添加到文件底部。您应该可以使用记事本,但您可能需要注意,记事本必须以管理员权限打开,因为它是系统文件。

在这三个选项中,听起来最像您想要的最省力的一个选项是在 CentOS 机器上设置 samba 服务 (Netbios/WINS)。

【讨论】:

  • Linx,非常有用的链接..我会试试你的方法。桑巴风格..听起来像尊巴舞:)
  • Linx,如果我安装 Samba..这是否意味着我不需要在单独的计算机上安装 DNS 服务器,因为我在同一台计算机上使用 Web 服务器和 DNS 服务器...只是一个想法
  • @Charlesliam 如果您安装了 samba,那么您将不需要设置花哨的 DNS。
猜你喜欢
  • 2017-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 2021-06-18
  • 2020-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多