Browse Source

Added nginx setup script for aspnet-mono

Pēteris Ņikiforovs 12 years ago
parent
commit
1e6fa34e33
4 changed files with 65 additions and 6 deletions
  1. 6 6
      aspnet-mono/benchmark_config
  2. 26 0
      aspnet-mono/nginx.conf
  3. 33 0
      aspnet-mono/setup-nginx.py
  4. 0 0
      aspnet-mono/setup-xsp.py

+ 6 - 6
aspnet-mono/benchmark_config

@@ -2,13 +2,13 @@
   "framework": "aspnet-mono",
   "framework": "aspnet-mono",
   "tests": [{
   "tests": [{
     "default": {
     "default": {
-      "setup_file": "setup",
+      "setup_file": "setup-nginx",
       "json_url": "/json",
       "json_url": "/json",
       "port": 8080,
       "port": 8080,
       "sort": 90
       "sort": 90
     },
     },
     "mysql-raw": {
     "mysql-raw": {
-      "setup_file": "setup",
+      "setup_file": "setup-nginx",
       "db_url": "/ado/mysql",
       "db_url": "/ado/mysql",
       "query_url": "/ado/mysql?queries=",
       "query_url": "/ado/mysql?queries=",
       "fortune_url": "/ado/mysql/fortunes",
       "fortune_url": "/ado/mysql/fortunes",
@@ -16,7 +16,7 @@
       "sort": 91
       "sort": 91
     },
     },
     "postgresql-raw": {
     "postgresql-raw": {
-      "setup_file": "setup",
+      "setup_file": "setup-nginx",
       "db_url": "/ado/postgresql",
       "db_url": "/ado/postgresql",
       "query_url": "/ado/postgresql?queries=",
       "query_url": "/ado/postgresql?queries=",
       "fortune_url": "/ado/postgresql/fortunes",
       "fortune_url": "/ado/postgresql/fortunes",
@@ -24,14 +24,14 @@
       "sort": 92
       "sort": 92
     },
     },
     "mongodb-raw": {
     "mongodb-raw": {
-      "setup_file": "setup",
+      "setup_file": "setup-nginx",
       "db_url": "/mongodb",
       "db_url": "/mongodb",
       "query_url": "/mongodb?queries=",
       "query_url": "/mongodb?queries=",
       "port": 8080,
       "port": 8080,
       "sort": 93
       "sort": 93
     },
     },
     "mysql-entityframework": {
     "mysql-entityframework": {
-      "setup_file": "setup",
+      "setup_file": "setup-nginx",
       "db_url": "/entityframework/mysql",
       "db_url": "/entityframework/mysql",
       "query_url": "/entityframework/mysql?queries=",
       "query_url": "/entityframework/mysql?queries=",
       "fortune_url": "/entityframework/mysql/fortunes",
       "fortune_url": "/entityframework/mysql/fortunes",
@@ -39,7 +39,7 @@
       "sort": 94
       "sort": 94
     },
     },
     "postgresql-entityframework": {
     "postgresql-entityframework": {
-      "setup_file": "setup",
+      "setup_file": "setup-nginx",
       "db_url": "/entityframework/postgresql",
       "db_url": "/entityframework/postgresql",
       "query_url": "/entityframework/postgresql?queries=",
       "query_url": "/entityframework/postgresql?queries=",
       "fortune_url": "/entityframework/postgresql/fortunes",
       "fortune_url": "/entityframework/postgresql/fortunes",

+ 26 - 0
aspnet-mono/nginx.conf

@@ -0,0 +1,26 @@
+# worker_processes n;
+pid /tmp/nginx.pid;
+error_log /dev/null crit;
+
+events {
+    worker_connections 8192;
+}
+
+http {
+    access_log off;
+
+    #upstream mono {
+    #    server 127.0.0.1:9001;
+    #}
+    include nginx.upstream.conf;
+
+    server {
+        listen 8080;
+
+        location / {
+            fastcgi_pass mono;
+            include /usr/local/nginx/conf/fastcgi_params;
+            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
+        }
+    }
+}

+ 33 - 0
aspnet-mono/setup-nginx.py

@@ -0,0 +1,33 @@
+import subprocess
+import sys
+import setup_util
+import os
+
+root = os.getcwd() + "/aspnet-mono"
+app = root + "/project/Benchmarks.Mono.AspNet"
+
+def start(args):
+  setup_util.replace_text(app + "/Web.config", "localhost", args.database_host)
+
+  try:
+    # build
+    subprocess.check_call("rm -rf bin obj", shell=True, cwd=app)
+    subprocess.check_call("xbuild", shell=True, cwd=app)
+    
+    # nginx
+    workers = 'worker_processes ' + str(args.max_threads) + ';'
+    subprocess.check_call('echo "upstream mono {\n' + ';\n'.join('\tserver 127.0.0.1:' + str(port) for port in range(9001, 9001 + args.max_threads)) + ';\n}" > ' + root + '/nginx.upstream.conf', shell=True);
+    subprocess.check_call('sudo /usr/local/nginx/sbin/nginx -c ' + root + '/nginx.conf -g "' + workers + '"', shell=True)
+    
+    # fastcgi
+    for port in range(9001, 9001 + args.max_threads):
+      subprocess.Popen("fastcgi-mono-server4 /applications=/:. /socket=tcp:127.0.0.1:" + str(port) + " &", shell=True, cwd=app)
+    return 0
+  except subprocess.CalledProcessError:
+    return 1
+
+def stop():
+  subprocess.check_call("sudo /usr/local/nginx/sbin/nginx -c " + root + "/nginx.conf -s stop", shell=True)
+  subprocess.check_call("rm -f " + root + "/nginx.upstream.conf", shell=True)
+  subprocess.check_call("pkill -9 mono", shell=True)
+  return 0

+ 0 - 0
aspnet-mono/setup.py → aspnet-mono/setup-xsp.py