python - 我在端口 8000 :80, 上的 apache+docker 上运行 django 应用程序需要用另一个端口运行另一个应用程序但不工作

标签 python django docker apache ubuntu

我在 ubuntu 服务器中使用 apache+docker 和 8000:80 端口运行 Django 应用程序。现在我有另一个 Django 应用程序。
我想使用具有不同端口 8006 或任何其他端口的 apache+docker 运行该应用程序。我认为我们不能为同一个端口 80 绑定(bind)两个应用程序。如果我错了,请纠正我,欢迎提出建议。
我能够构建 docker 容器并且服务已启动,但无法通过浏览器和请求访问。那么,有什么方法可以做到并能够在浏览器中访问,请建议
这是我的 docker-compose.yml

version: '3.1'
services:
  test-app:
    image: test-app
    build:
      context: ./app/
    ports:
      - "8006:8006"
  #  networks:
  #    - GST
    container_name: test-app
    environment:
      - TZ=Asia/Kolkata
    restart: on-failure
    volumes:
      - /storage/req_resp_files:/var/www/html/GSTDP_Develop/req_resp_files
      - /storage/gst_logs:/var/www/html/GSTDP_Develop/logs

这是我的 Dockerfile
FROM httpd:latest

RUN apt-get update
RUN apt-get install -y apt-utils vim curl apache2 apache2-utils
RUN apt-get -y install python3 libapache2-mod-wsgi-py3
RUN ln /usr/bin/python3 /usr/bin/python
RUN apt-get -y install python3-pip
RUN ln /usr/bin/pip3 /usr/bin/pip
RUN pip install --upgrade pip
RUN pip install django ptvsd
ADD ./demo_site.conf /etc/apache2/sites-available/000-default.conf
#ADD ./httpd-ssl.conf /usr/local/apache2/conf/extra/httpd-ssl.conf
#ADD ./server.key /usr/local/apache2/conf/server.key
#ADD ./server.crt /usr/local/apache2/conf/server.crt
#ADD ./gd_bundle-g2-g1.crt /usr/local/apache2/conf/gd_bundle-g2-g1.crt
ADD ./GSTDP_Develop /var/www/html/GSTDP_Develop
RUN chown -R www-data. /var/www/html/GSTDP_Develop
RUN chown -R www-data. /usr/local/apache2
RUN a2enmod wsgi
#RUN a2enmod ssl
#RUN a2ensite default-ssl
RUN cd /var/www/html/GSTDP_Develop/
RUN pip install -r /var/www/html/GSTDP_Develop/requirements.txt
RUN python /var/www/html/GSTDP_Develop/manage.py collectstatic --noinput
#RUN cd /var/www/html/
#RUN tar -xvzf GSTDP_Develop.tar.gz
EXPOSE 8006
#EXPOSE 443
CMD ["apache2ctl", "-D", "FOREGROUND"]

演示站点.conf 文件:
WSGIPythonPath /var/www/html/GSTDP_Develop

Listen 8006
<VirtualHost *:8006>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/GSTDP_Develop
        WSGIApplicationGroup %{GLOBAL}
        Alias /static /var/www/html/GSTDP_Develop/src/static
                <Directory /var/www/html/GSTDP_Develop/static>
                Require all granted
        </Directory>

                <Directory /var/www/html/GSTDP_Develop/static>
                Require all granted
                </Directory>

                WSGIScriptAlias / /var/www/html/GSTDP_Develop/src/wsgi.py

                <Directory /var/www/html/GSTDP_Develop/src>
                <Files wsgi.py>
                Require all granted
                </Files>
        </Directory>

                WSGIDaemonProcess GSTDP_Develop processes=2 threads=6 display-name=gst-dna

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

       
</VirtualHost>

编辑1:
它在终端中的外观407129a206fd 5ba "apache2ctl -D FOREG…" About a minute ago Up About a minute 0.0.0.0:8006->80006/tcp, :::8006->8006/tcp sharp_keldysh6ac03b56d3ab gst-app "apache2ctl -D FOREG…" 2 weeks ago Up 3 hours 0.0.0.0:8000->80/tcp, :::8000->80/tcp gst-app但无法从浏览器访问 url。
提前致谢..

最佳答案

对不起,我的坏需要激活那个端口。相应的端口启用并且它正在工作。以及关于 apache 配置的小型返工。改变了

Listen 8006
<VirtualHost *:8006>
Listen 80
<VirtualHost *:80>
因为它 apache http 请求监听默认为 80 端口

关于python - 我在端口 8000 :80, 上的 apache+docker 上运行 django 应用程序需要用另一个端口运行另一个应用程序但不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69923832/

相关文章:

python - Django runfcgi 模式超时

docker - 使用 --no-sandbox 运行 headless Chrome/Puppeteer

postgresql - Docker Postgresql远程访问

python - 是否可以在 lambda 函数被终止并冷启动之前拦截终止信号以关闭数据库连接?

python - 为什么在 Robinhood 中查找内容时我的 BeautifulSoup 代码不再起作用?

python - 这个列表理解有什么问题(SyntaxError : invalid syntax)?

jquery - Bootstrap 4 输入组附加不起作用

python - 如何使用 openpyxl 在 Excel 中使用格式为 'yyyy-mm-dd hh:mm:ss' 的日期时间对象格式化单元格

python - 无法在 Django 中调试或使用 pdb : bdb. BdbQuit

docker - 使用 ansible 部署最新的 docker 容器