setup_nginx.sh 944 B

123456789101112131415161718192021222324252627282930
  1. #!/bin/bash
  2. export NGINX_HOME=${IROOT}/nginx
  3. set -e
  4. # mono environment variables
  5. . ${IROOT}/mono.installed
  6. sed -i 's|localhost|'"$DBHOST"'|g' src/Web.config
  7. sed -i 's|/usr/local/nginx/|'"${IROOT}"'/nginx/|g' nginx.conf
  8. # extra cleaning
  9. rm -rf src/bin src/obj
  10. xbuild src/ServiceStackBenchmark.csproj /t:Clean
  11. xbuild src/ServiceStackBenchmark.csproj /t:Build
  12. # one fastcgi instance for each thread
  13. # load balanced by nginx
  14. port_start=9001
  15. port_end=$(($port_start+$MAX_THREADS))
  16. # nginx
  17. conf="upstream mono {\n"
  18. for port in $(seq $port_start $port_end); do
  19. conf+="\tserver 127.0.0.1:${port};\n"
  20. done
  21. conf+="}"
  22. echo -e $conf > $TROOT/nginx.upstream.conf
  23. $NGINX_HOME/sbin/nginx -c $TROOT/nginx.conf -g "worker_processes ${MAX_THREADS};"
  24. # To debug, use --printlog --verbose --loglevels=All
  25. for port in $(seq $port_start $port_end); do
  26. MONO_OPTIONS=--gc=sgen fastcgi-mono-server4 --applications=/:${TROOT}/src --socket=tcp:127.0.0.1:$port &
  27. done