我已经进行了一段时间的Web编程,并且对LAMP堆栈非常熟悉。我已经决定尝试使用nginx / starman / dancer堆栈,但对于如何从高层次理解所有部分之间的相互联系,我有些困惑。设置堆栈似乎不像设置LAMP堆栈那样简单,但这可能是因为我不太了解各个部分之间的关系。
我知道nginx扮演的角色-轻量级的Web服务器/代理-但我对starman与pgsi,plack和舞者的关系感到困惑。
对于这些部分之间如何相互关联以及为什么每个部分对于获得堆栈设置是必要的(或不必要的),我将进行高层细分。谢谢!
最佳答案
我花了最后一天阅读有关各种组件的信息,我认为我有足够的理解力来回答自己的问题。我大部分的答案都可以在网上的不同地方找到,但希望将所有内容放在一个地方会有所值(value):
须藤apt-get install nginx
sudo apt-get install build-essential curl
sudo cpan App::cpanminus
须藤cpanm Starman
sudo cpanm Task::Plack
须藤apt-get install libdancer-perl
光盘
舞者-mywebapp
sudo plackup -s Starman -p 5001 -E部署--workers = 10 -a mywebapp / bin / app.pl
现在,您将拥有一个在端口5001上运行Dancer应用程序的starman服务器。要使nginx向服务器发送流量,您必须修改/etc/nginx/nginx.conf并将类似如下的规则添加到http部分:
服务器{
server_name永久投资.com
听80;
位置/ css / {
别名/ home / ubuntu / mywebapp / public / css /;
到期30天;
access_log关闭;
}
位置 / {
proxy_pass http:// localhost:5001;
proxy_set_header X-Real-IP $ remote_addr;
}
}
第一个位置规则指定nginx应该通过从/ home / ubuntu / mywebapp / public / css /获取静态内容来处理/ css目录中的静态内容。第二条位置规则说,到端口80上的Web服务器的流量应发送到Starman服务器进行处理。现在我们只需要启动nginx:
sudo服务nginx启动
关于nginx - nginx/starman/dancer Web堆栈的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12127566/