Drogo

 view release on metacpan or  search on metacpan

bin/drogo  view on Meta::CPAN

        listen       $ssl_listen ssl;
        set          \$is_ssl   1;
        set          \$ssl_port $ssl_port;
        $set_package
        server_name  $host;

        error_page   404              /404.html;
        error_page   500 502 503 504  /50x.html;

        ssl_certificate      $base_path/ssl/cert.pem;
        ssl_certificate_key  $base_path/ssl/cert.key;
        ssl_session_timeout  5m;
        #ssl_protocols  SSLv2 SSLv3 TLSv1;
        #ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_protocols   TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
        ssl_prefer_server_ciphers   on;
        gzip on;

        $locations
    }
|;
    }

    my $access_log_path = $self->config_option('access_log_path');
    my $error_log_path = $self->config_option('error_log_path');

    my $access_log = $self->config_option('access_log') eq 'off'
        ? 'access_log  /dev/null  main;' : "access_log  $access_log_path  main;";

    my $error_log = $self->config_option('error_log') eq 'off'
        ? 'error_log  /dev/null;' : "error_log  $error_log_path;";

    my $set_ssl_port = $ssl_port ? " set  \$ssl_port $ssl_port; " : '';

    my $bootstrap_cfg = $self->config_option('bootstrap') ? "env DISABLE_APP_LOAD=1;" : '';

    my $template = qq|
worker_processes  $worker_processes;

pid        $tmp_path/server.pid;

$error_log

events {
    worker_connections  $worker_connections;
}                            

$bootstrap_cfg

http {
    include       $tmp_path/mime.types;
    default_type  application/octet-stream;

    log_format  main  '[\$time_local] \$remote_addr - \$request '
                      '"\$status" \$body_bytes_sent';              

    $access_log

    sendfile           on;
    keepalive_timeout  65;

    perl_modules $base_path/lib;
    
    $perl_requires

    server {                                                                    
        listen       $listen;
        server_name  $host;
        $set_ssl_port
        $set_package
        gzip on;

        # 640kb ought to be enough for anybody.
        # - Bill Gates
        client_max_body_size 100M;

        error_page   404              /404.html;
        error_page   500 502 503 504  /50x.html;

        $locations
    }

    $ssl
}
|;

    if ($params{dump})
    {
        print $template;
    }
    else
    {
        open(CT, ">$tmp_path/nginx.conf");
        print CT $template;
        close(CT);
    }
}

sub write_apache2_config
{
    my ($self, %params)    = @_;
    my $base_path          = $self->base_path;
    my $worker_processes   = $self->config_option('worker_processes');
    my $worker_connections = $self->config_option('worker_connections');
    my $require_module     = $self->config_option('require_module');
    my $handler            = $self->config_option('handler');
    my $app_path           = $self->config_option('app_path');

    my @lj = grep { $_ } (
        $self->config_option('bind'), $self->config_option('port')
    );

    $self->{options}{ssl_port} = $self->config_option('port') + 1000
        if $self->config_option('ssl') and not $self->config_option('ssl_port');

    # remove when bind is 'all'
    shift @lj if $self->config_option('bind') eq 'all';

    my $listen = join(':', @lj);
    my $host   = $self->config_option('host');



( run in 1.922 second using v1.01-cache-2.11-cpan-99c4e6809bf )