Apache2(反向代理)+ Django + Gunicorn

马库斯

我的Apache2 Web服务器作为反向代理服务器有问题。我的域为“ example.com”的简化服务器设置如下所示:

服务器设置

如果现在客户转到该页面https://example.com/guacamole,那么Apache2 Web服务器应将请求转发到Tomcat服务器(https://127.0.0.1:8080/guacamole)。这部分有效。

如果客户转到https://example.com/mydjangoproject,则Apache2 Web服务器应使用Gunicorn和Django项目(https://192.168.30.5:8000将请求转发到Web服务器但是,此配置仅部分起作用。该页面https://example.com/mydjangoproject显示Django项目的主页,但是在调用管理页面时https://example.com/mydjangoproject/admin,django应用程序给出该页面http://192.168.30.5:8000//admin不存在的错误调用管理页面时,似乎已删除了子URL“ / mydjangoproject /”。那会是什么呢?

这是我的配置:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

    JKMount /* ajp13_worker

    SSLProxyEngine on
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    ProxyPreserveHost On

    ProxyPass /static/ !
    ProxyPass /mydjangoproject https://192.168.30.5:8000/
    ProxyPassReverse /mydjangoproject https://192.168.30.5:8000/
</VirtualHost>
</IfModule>

谢谢你的帮助!

编辑:当我尝试通过进入管理员页面https://example.com/mydjangoproject/admin时,会发生此错误:

错误截图

Anaksunaman

您可能需要更改您的ProxyPassProxyPassReverse指令才能使其正常工作。

您应该尝试替换以下行:

ProxyPass /static/ !
ProxyPass /mydjangoproject https://192.168.30.5:8000/
ProxyPassReverse /mydjangoproject https://192.168.30.5:8000/

与例如:

# "Convenience" URL
ProxyPass /mydjangoproject https://192.168.30.5:8000
ProxyPassReverse /mydjangoproject https://192.168.30.5:8000

# --- The lines below are what actually allow access to /admin ---

# Proxy /admin for login
ProxyPass /admin http://192.168.30.5:8000/admin
ProxyPassReverse /admin http://192.168.30.5:8000/admin

# Proxy /static for CSS, etc.
ProxyPass /static http://192.168.30.5:8000/static
ProxyPassReverse /static http://192.168.30.5:8000/static

然后,您应该能够使用例如https://example.com/admin访问您的Django/admin页面并获得正确的登录对话框:

前任。Django管理员登录

Django管理员登录-屏幕截图

当我尝试通过https://example.com/mydjangoproject/admin错误进入管理页面时发生。

您应该能够添加以下行(除了上面推荐的行之外),以使(某些)工作正常进行:

ProxyPass /mydjangoproject/admin http://192.168.30.5:8000
ProxyPassReverse /mydjangoproject/admin http://192.168.30.5:8000

请注意,Django似乎重定向了ex。https://example.com/mydjangoproject/adminhttps://example.com/admin自动,这会破坏事物,除非您已经有ex。ProxyPass /admin http://192.168.30.5:8000/admin作为现有条目(包括在上面)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Nginx无法通过gunicorn代理django应用

来自分类Dev

防止DDOS攻击,适用于使用nginx反向代理+ gunicorn的Django应用

来自分类Dev

使用Nginx作为Gunicorn前面的反向代理时,Django应用程序中的REMOTE_ADDR值为空

来自分类Dev

使用Postgres和Gunicorn + Nginx作为反向代理的Django应用程序中'类型inet的输入语法无效'db错误

来自分类Dev

登录Django和Gunicorn

来自分类Dev

Gunicorn Django线程

来自分类Dev

Gunicorn Django线程

来自分类Dev

Django,Gunicorn设置

来自分类Dev

Django Gunicorn错误

来自分类Dev

Django Nginx Gunicorn = 504超时

来自分类Dev

nginx,gunicorn和django超时

来自分类Dev

同一URL上的Apache2 WebSockets反向代理

来自分类Dev

获取以nginx作为反向代理运行的Apache2

来自分类Dev

Docker容器的Apache2反向代理配置

来自分类Dev

Gunicorn`无法连接到('ind',8000)`-Django,EC2,Nginx

来自分类Dev

使用Nginx和Gunicorn将Django应用程序部署到AWS EC2

来自分类Dev

如何修复 Django AWS EC2 Gunicorn ExecStart ExecStop 结束错误?

来自分类Dev

在Django + Gunicorn + Heroku上记录请求超时

来自分类Dev

找不到静态文件Django 1.9 Gunicorn

来自分类Dev

无法使用Systemd Django启动Gunicorn

来自分类Dev

Django Gunicorn:无法找到应用程序

来自分类Dev

在Nginx + Gunicorn + Supervisor + Django中记录错误

来自分类Dev

Gunicorn,Django,Gevent:生成的线程正在阻塞

来自分类Dev

使用Gunicorn> = 19从virtualenv运行Django项目

来自分类Dev

在虚拟环境上运行django的gunicorn

来自分类Dev

在Django和Gunicorn中记录错误

来自分类Dev

部署Django与Nginx Gunicorn对digitalocean做出反应

来自分类Dev

Django Gunicorn不同类型的超时

来自分类Dev

Nginx和Gunicorn用于Django项目

Related 相关文章

热门标签

归档