学校项目的Mojolicious:我应该安装Nginx,Apache还是Lighttpd?

时间:2014-09-24 13:21:05

标签: apache perl nginx lighttpd mojolicious

对于学校项目,我可以选择任何我喜欢的框架来创建一个相当简单的网站。我选择了Mojolicious因为我喜欢Perl。

我还要求在三个网络服务器中挑选:Nginx,Apache或Lighttpd。我过去曾使用Apache进行PHP学校项目。

我对Mojolicious完全迷失了。我理解它的方式我完全不能使用任何这些网络服务器,因为我有Morbo / Hypnotoad?我仍然必须使用网络服务器,因为它是规则之一,因此配置起来更简单,并且在考虑Mojolicious时效率最高?

感谢您的帮助,

3 个答案:

答案 0 :(得分:2)

我使用apache作为hypnotoad的代理。工作正常,因为这样我可以使用hypnotoad来进行hotdeploy更改。

我在apache sites-available中的配置是:

<VirtualHost *:8080>
    ServerAdmin webmaster@example.com
    ServerName myhost.example.com
    <Proxy *>
       Order allow,deny
       Allow from all
    </Proxy>
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / http://localhost:3233/ keepalive=On
    ProxyPassReverse / http://localhost:3233/ 
    RequestHeader set X-Forwarded-Proto "http"
    ErrorLog /var/log/apache2/error.log
    # debug, info, notice, warn, error, crit, alert, emerg
    LogLevel warn 
    CustomLog /var/log/apache2/access.log combined
</VirtualHost>

您可能还会发现此链接很有用:

https://github.com/kraih/mojo/wiki/Apache-deployment

答案 1 :(得分:1)

更新

我重新阅读了你的问题,并在大约10分钟内用mojolicous :: lite构建了一个快速的lighttpd。 跟着几个快速指南。

如果你构建一个简单的mojolicious :: lite,例如:

l_myapp.pl

#!/usr/bin/env perl
use Mojolicious::Lite;

# Documentation browser under "/perldoc"
plugin 'PODRenderer';

get '/' => sub {
  my $c = shift;
  $c->render('index');
};
app->start;

__DATA__

@@ index.html.ep
% layout 'default';
% title 'Welcome';
Welcome to the Mojolicious real-time web framework!

@@ layouts/default.html.ep
<!DOCTYPE html>
<html>
  <head><title><%= title %></title></head>
  <body><%= content %></body>
</html>

然后构建一个指向您的精简应用程序的conf文件。

lightthpd.conf

#test
# 

server.modules = (
  "mod_fastcgi",
  "mod_cgi", 
)

server.document-root = "/var/www/html/" 
server.port = 8080 

mimetype.assign = (
  ".html" => "text/html", 
  ".txt" => "text/plain",
  ".jpg" => "image/jpeg",
  ".png" => "image/png" 
)

#------------------------
#for host sub in IP address
#"port" does not seem to work so use server.port

$HTTP["host"] == "xxx.xxx.xxx.xxx" {
        fastcgi.server = ("/" => (( 
            "bin-path" => "/opt/web-interface/l_myapp/l_myapp.pl fastcgi",   
            "check-local" => "disable",
            "fix-root-scriptname" => "enable",
            "port" => 3000))
        )
    }

在命令行:     lighttpd -D -f lighttpd.conf

这可以在尝试通过网页“ip address”后在命令行:8080

  • 2014-09-26 10:58:20 :( log.c.166)服务器启动
  • [2014年9月26日星期五10:58:30] [调试]你的秘密密码需要改变!!!
  • [Fri Sep 26 10:58:30 2014] [debug] GET“/".
  • [Fri Sep 26 10:58:30 2014] [debug]路由到回调。
  • [Fri Sep 26 10:58:30 2014] [debug]从DATA部分渲染模板“index.html.ep”。
  • [Fri Sep 26 10:58:30 2014] [debug]从DATA部分渲染模板“layouts / default.html.ep”。
  • [Fri Sep 26 10:58:30 2014] [debug] 200 OK(0.004694s,213.038 / s)。

希望这会有所帮助。

答案 2 :(得分:0)

与上面类似但你可以在nginx反向代理后面运行hypnotoad:

http://nginx.com/resources/admin-guide/reverse-proxy/