From 216bc0dd1be3791143a8a1cc95ce6dcfb70efab6 Mon Sep 17 00:00:00 2001 From: Joe Oblivian <0blivian@insiberia.net> Date: Tue, 1 Nov 2011 09:57:13 +0100 Subject: [PATCH] added the mapping file --- wp-nginx-map.php | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 wp-nginx-map.php diff --git a/wp-nginx-map.php b/wp-nginx-map.php new file mode 100644 index 000000000..f8edaa29a --- /dev/null +++ b/wp-nginx-map.php @@ -0,0 +1,53 @@ +<?php + +// wp-nginx-map.php +// +// Stampa una mappa delle assegnazioni blog -> backend, per NGINX. + + +// Load wordpress api. +define('WP_CACHE',false); +require_once('/opt/noblogs/www/wp-load.php'); + +// Return all blogs. +function get_blogs() { + global $wpdb; + $sql = "SELECT blog_id, domain FROM $wpdb->blogs WHERE deleted = 0 AND archived = '0' ORDER BY domain ASC"; + $result = $wpdb->get_results($sql); + return ($result); +} + +function printline($s) { + echo $s . "\n"; +} + +function backend_to_http_endpoint($backend) { + if (substr($backend, 0, 8) != 'backend_') { + error_log('diamine, di questo backend non so che farmene: ' . $backend); + return 'localhost:82'; + } + $id = substr($backend, 8); + return '172.16.1.' . $id . ':82'; +} + +// Print the blog -> backend map. +function generate_map() { + global $wpdb; + $wpdb_hash = &$wpdb->hash_map; + + $blogs = get_blogs(); + + printline('map $http_host $backend_noblogs {'); + printline(' default http://localhost:82;'); + foreach ($blogs as $blog) { + $blog_id = $blog->blog_id; + $backend_id = $wpdb_hash->lookup($blog_id); + $backend_http = backend_to_http_endpoint($backend_id); + printline(' ' . $blog->domain . ' http://' . $backend_http . ';'); + } + printline('}'); +} + + +generate_map(); + -- GitLab