I have a single server, ubuntu 12.04 running 3 web2py instances + 2 php
wordpress websites

Php runs with fcgi - web2py runs with uwsgi, because of that I have 12
nginx workers running

I am not an expert on this, but this solution is working well for me.


That is what I have in top


*TOP*
top - 22:54:55 up 78 days,  4:24,  1 user,  load average: 0.05, 0.13, 0.13
Tasks: 111 total,   1 running, 110 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.2%sy,  0.0%ni, 98.2%id,  1.5%wa,  0.0%hi,  0.1%si,
0.0%st
Mem:   1012860k total,   934292k used,    78568k free,    27148k buffers
Swap:   524284k total,   343908k used,   180376k free,   258680k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+
COMMAND
 1123 www-data  20   0  396m  41m  14m S    0  4.2   7:40.82
php5-fpm
 3738 www-data  20   0  160m 1512 1472 S    0  0.1   5:00.87
uwsgi-core
 3901 www-data  20   0  160m 1512 1472 S    0  0.1   5:04.47
uwsgi-core
 4730 www-data  20   0  397m  43m  15m S    0  4.4   9:45.87
php5-fpm
 4731 www-data  20   0  397m  42m  15m S    0  4.3   9:41.48
php5-fpm
 4732 www-data  20   0  392m  37m  14m S    0  3.8   9:32.35
php5-fpm
 4734 www-data  20   0  393m  38m  15m S    0  3.9   9:58.31
php5-fpm
 5113 www-data  20   0  208m  36m 3824 S    0  3.7   0:56.18
uwsgi
 8993 www-data  20   0  240m  94m 4504 S    0  9.5   0:20.76
uwsgi
 9409 www-data  20   0  217m 2188 2184 S    0  0.2   1:34.40
uwsgi-core
 9410 www-data  20   0  217m 4388 2180 S    0  0.4   0:51.60
uwsgi-core
 9457 www-data  20   0  214m  65m 4840 S    0  6.7   0:08.62
uwsgi
15463 www-data  20   0 79460 3356 1664 S    0  0.3   5:56.76
nginx
15464 www-data  20   0 79108 3476 1712 S    0  0.3   5:56.79
nginx
15465 www-data  20   0 79632 3480 1656 S    0  0.3   5:59.49
nginx
15466 www-data  20   0 79468 3392 1652 S    0  0.3   5:54.69
nginx
15467 www-data  20   0 79184 3244 1660 S    0  0.3   5:49.36
nginx
15468 www-data  20   0 79460 3380 1668 S    0  0.3   5:39.78
nginx
15469 www-data  20   0 79604 3860 1672 S    0  0.4   5:46.62
nginx
15470 www-data  20   0 79488 3368 1680 S    0  0.3   5:55.42
nginx
15471 www-data  20   0 79604 3280 1656 S    0  0.3   5:52.24
nginx
15472 www-data  20   0 79444 3468 1688 S    0  0.3   5:59.96
nginx
15473 www-data  20   0 79440 3452 1684 S    0  0.3   5:54.13
nginx
15474 www-data  20   0 79476 3516 1692 S    0  0.3   5:49.28
nginx
16040 www-data  20   0  193m  47m 3884 S    0  4.8   2:49.74
uwsgi
22482 www-data  20   0  153m 2384 2144 S    0  0.2   2:41.56
uwsgi
22651 www-data  20   0  160m 4864 2208 S    0  0.5   2:42.54
uwsgi
22818 www-data  20   0  160m 5532 2220 S    0  0.5   3:01.67
uwsgi
28847 www-data  20   0  192m  46m 3588 S    0  4.7   2:18.97
uwsgi
29885 www-data  20   0  208m  37m 4052 S    0  3.8   0:34.50
uwsgi
29914 www-data  20   0  222m 2192 2188 S    0  0.2   0:11.24
uwsgi-core
30403 www-data  20   0  205m 2208 2176 S    0  0.2   0:05.77
uwsgi-core


*uwsgitop*

uwsgi-1.0.3-debian - Tue Jan  8 23:01:58 2013 - req: 1110940 - lq: 0 - tx:
22786619414
node: li284-252 - cwd: /home/www-data/web2py - uid: 33 - gid: 33 -
masterpid: 22818
 WID    %       PID     REQ     EXC     SIG     STATUS  AVG     RSS
VSZ     TX      RunT
 1      71.03   10199   789111  0       0       idle    162ms   76M
222M    15494M  3912m
 2      28.97   10171   321829  0       0       idle    246ms   60M
205M    6236M   1776m



*UWSGI FILE* ( Ihave the same file for other 2 apps, but other apps have no
<master> tag )

<uwsgi>
    <plugin>python</plugin>
    <socket>/run/uwsgi/app/web2py/web2py.socket</socket>
    <pythonpath>/home/www-data/web2py/</pythonpath>
    <app mountpoint="/">
        <script>wsgihandler</script>
    </app>
    <master/>
    <processes>4</processes>
    <harakiri>60</harakiri>
    <reload-mercy>8</reload-mercy>
    <cpu-affinity>1</cpu-affinity>
    <stats>/tmp/stats.socket</stats>
    <max-requests>2000</max-requests>
    <limit-as>512</limit-as>
    <reload-on-as>256</reload-on-as>
    <reload-on-rss>192</reload-on-rss>
    <no-orphans/>
    <vacuum/>
</uwsgi>


*NGINX FILE*

server {
        server_name xxxxxxxxxxxxx.com.br;

        rewrite ^/(.*) http://www.xxxxxxxxxxxxxx.com.br/$1 permanent;
       }


server {
        client_max_body_size 10M;
        listen          80;
        server_name     wwwxxxxxxxxxxxxcom.br;


        if ( $http_referer ~*
(babes|forsale|girl|jewelry|love|nudit|poker|porn|sex|teen) )
        {
         # return 404;
         return 403;
        }

        if ($request_method !~ ^(GET|HEAD|POST)$ ) {
         return 444;
        }

        location ~ \.(aspx|php|jsp|asp|cgi)$ {
           return 410;
        }

        if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
            return 403;
        }

        if ($http_user_agent ~*
msnbot|scrapbot|WebCopier|AhrefsBot|Baidu|Yandex|baiduspider|yandexspider )
{
            return 403;
        }

        location ~* /(\w+)/static/ {
           root /home/www-data/web2py/applications/;
        }

       location ~ ^/download/(.*)$ {
           alias /home/www-data/web2py/applications/init/uploads/$1;
       }

        location / {
                uwsgi_pass      unix:///run/uwsgi/app/web2py/web2py.socket;
                include         uwsgi_params;
                uwsgi_param     UWSGI_SCHEME $scheme;
                uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;
        }
}

server {
        client_max_body_size 10M;
        listen          443;
        server_name     xxxxxxxxxxx.com.br;
        ssl                     on;
        ssl_certificate         /etc/nginx/ssl/web2py.crt;
        ssl_certificate_key     /etc/nginx/ssl/web2py.key;
        location / {
                uwsgi_pass      unix:///run/uwsgi/app/web2py/web2py.socket;
                include         uwsgi_params;
                include         uwsgi_params;
                uwsgi_param     UWSGI_SCHEME $scheme;
                uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;
        }

}

-- 



Reply via email to