python - django 应用程序监听 localhost:8000 与 0.0.0.0:8000
问题描述
我有一个在 Google Kubernetes Engine 上运行的 Django 应用程序。如果我运行 enter the pod ,然后运行 netstat -l 命令。它表明该服务正在监听 localhost:8000
我在 AWS 上的 Elastic Kubernetes 服务上运行了相同的服务。当容器在 localhost:8000 上侦听时,服务没有响应外部请求。我必须运行python manage.py runserver 0.0.0.0:8000
,以便容器侦听所有网络接口。在 AWS 上, netstat -l 的输出如下所示
我想明白,那
- 为什么同一个应用程序在 google Kubernetes 引擎上运行,但不在 EKS 上,我必须专门定义在 0.0.0.0:8000 上监听。
- 当 netstat -l 显示它正在侦听 localhost:8000 时,为什么 google Kubernetes 引擎会侦听外部流量
码头工人文件:
FROM python:3.7.4
# Set environment variables
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /
# Upgrade pip
RUN pip install --upgrade pip
# Install dependencies.
RUN pip install --no-cache-dir -r /requirements.txt
# Set work directory.
RUN mkdir /code
WORKDIR /code
# Copy project code.
COPY . /code/
# RUN python manage.py makemigrations && python manage.py migrate
# CMD export ENV_Setting=development && python manage.py makemigrations && python manage.py migrate && python manage.py runserver
我们在部署文件中启动应用程序:
command: ["bash", "-c", "export ENV_Setting=devs && python manage.py makemigrations && python manage.py migrate && python manage.py runscript custom_permissions_script && python manage.py runserver 0.0.0.0:8000"]
解决方案
推荐阅读
- javascript - 随着窗口大小的改变,缩放全屏画布以适应内容
- parceljs - 如何在 parceljs 中使用 env 构建
- python - 将python字节列表转换为字典
- java - 等到布尔值更改而不阻塞JavaFX主线程?
- javascript - 动态添加日期选择器
- python - 使用多个条件在数据框中创建列
- php - 不使用 Laravel 本地用户数据,如何使用 Prestashop 客户数据登录 Laravel
- mysql - 有没有办法包括所有案例的总和?
- dart - Flutter:是否有可能在另一个下拉按钮满足一定要求后显示另一个下拉按钮
- node.js - 我如何获得所有属性的总和?