
我试图实现一个Catalyst应用程序使用Nginx作为静态文件的前端Web代理,并使用starman作为我的后端Web服务器。 (我可以使用Apache和FastCGI,它工作得很好,但我真的希望得到整个Psgi / Plack和starman的东西)
starman启动好了,可以在http://localhost:5000上处理我的请求。 当我启动Nginx作为我的前端代理时,无论何时何地使用$c->uri_for方法,我的url都会变得丑陋,并随着端口号(5000)而$c->uri_for 。
例如:
$ C-> uri_for( “/login”)
变
http://myapp.example.com:5000/login
而不是
http://myapp.example.com/login
我有一些日志正在创build,所以我可以看到什么X-Forwarded-Host和X-Forwarded-For被设置为。 对于普通的请求,有一些值(来自Nginx),但是每当使用$c->uri_for方法时,这些值都不存在。
我在哪里可以find使用Nginx,starman,Plack和Catalyst的应用程序运行时错误?
如果删除了日志文件,则uWsgi日志logging不能正常工作
为什么在Catalyst / Plack / starman上使用Nginx?
如何为使用fastcgi和perlbrew在Nginx上运行的Perl催化剂应用程序创buildinit脚本
perl催化剂www到非wwwredirect
有没有其他人有这个问题?
我是否在configurationNginx或Catalystconfiguration文件时丢失了其他的东西?
谢谢!
Nginxconfiguration:
服务器{
听80;
server_name myapp.example.com;
位置/静态{
root / data / users / MyApp / root;
到期30天;
}
位置 / {
proxy_set_header主机$主机;
proxy_set_header X-Forwarded-Host $ host;
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
proxy_pass http:// localhost:5000 /;
}
}
事件虽然这将运行在相同的物理服务器上,在MyAppconfiguration我已经设置:
MyApp-> config(using_frontend_proxy => 1)
版本:
催化剂:5.80024
Nginx:0.7.67
Plack:0.9942
starman:0.2006
我的问题是在我的myapp.psgi文件。
从Catalyst :: Engine :: Psgi看看Plack::MIDdleware::ReverseProxy :
... use Plack::Builder; use MyApp; MyApp->setup_engine('Psgi'); my $app = sub { MyApp->run(@_) }; builder { enable_if { $_[0]->{REMOTE_ADDR} eq '127.0.0.1' } "Plack::MIDdleware::ReverseProxy"; $app; };
在我的情况下,前端是在一个不同的主机,并添加
MyApp->config(using_frontend_proxy => 1)
确实有所作为并解决了这个问题。
总结以上是内存溢出为你收集整理的uri_for包含redirect上的端口号全部内容,希望文章能够帮你解决uri_for包含redirect上的端口号所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)