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; } } --