所以我有一个全部使用Apache和uWSGI和代理系统设置的Django应用程序服务器。一个小问题...有些事情一直在改变我的主机名!!!
它几乎类似于重写规则,但是我搜索了httpd.conf,但找不到适合的帐单。每当我发送HTTP URL时:
http://www.example.com/polls
Django从代理接收以下网址:
http://www.example.com/kpolls
真烦人!东西不断地把该死的k
添加到我的主机名中,我也不知道该怎么办!请帮忙!
到目前为止,我的代理非常简单:
ProxyPass "/" "uwsgi://127.0.0.1:49152/var/run/app_name.sock"
ProxyPassReverse "/" "uwsgi://127.0.0.1:49152/var/run/app_name.sock"
(请确保尝试localhost
和www.example.com
。无效,因此主机名可以正确解析。)
在我看来,代理是在将请求交给Django之前对其进行了更改?
答案 0 :(得分:0)
想通了!
原来是我在代理和.ini配置文件中使用UNIX套接字表示法。简而言之,我有以下内容:
ProxyPass "/" "uwsgi://127.0.0.1:49152/var/run/app_name.sock"
ProxyPassReverse "/" "uwsgi://127.0.0.1:49152/var/run/app_name.sock"
我需要摆脱其中的一部分,使其看起来像这样:
ProxyPass "/" "uwsgi://127.0.0.1:49152"
ProxyPassReverse "/" "uwsgi://127.0.0.1:49152"
因为我通过我的Apache uwsgi
安装程序使用了mod_proxy_uwsgi
协议,该协议自动将其链接到正在运行的uWSGI实例,但是完整的请求/路径通常映射到.sock
文件在UNIX套接字方法中使用(哦,原来我的apache版本还不能处理unix://
请求)。基本上,我使用的是UNIX套接字和uWSGI代理协议的某种奇怪的混合体,它混淆了服务器,并向每个GET
请求中添加了错误的字母