{"id":1879,"date":"2013-01-12T14:12:50","date_gmt":"2013-01-12T13:12:50","guid":{"rendered":"https:\/\/sgaul.de\/?p=1879"},"modified":"2014-03-13T21:34:45","modified_gmt":"2014-03-13T20:34:45","slug":"heterogene-webserver-umgebung-mit-nginx-zusammenfassen","status":"publish","type":"post","link":"https:\/\/sgaul.de\/2013\/01\/12\/heterogene-webserver-umgebung-mit-nginx-zusammenfassen\/","title":{"rendered":"Heterogene Webserver-Umgebung mit Nginx zusammenfassen"},"content":{"rendered":"

Nginx ist ein recht schmaler Webserver, der dank seiner Forward-Proxy-Eigenschaften sehr gut dazu geeignet ist, verschiedene Webserver unter einem Host zusammenzufassen.<\/p>\n

\u201eF\u00fcr jeden Job das passende Werkzeug\u201c f\u00fchrt gern zu folgenden Strukturen auf Server und Entwicklungsumgebung:<\/p>\n

http:\/\/localhost:8080\/tomcat-project\r\nhttp:\/\/localhost:8081\/node-project\r\nhttp:\/\/localhost:8082\/php-project<\/pre>\n

Ein Albtraum f\u00fcr jeden Ajax-Entwickler. Mit Nginx lassen sich verschiedene Hosts und Ports zusammenfassen.<\/p>\n

<\/p>\n

Nginx unter Ubuntu installieren und konfigurieren<\/h2>\n
sudo apt-get install nginx<\/pre>\n

\u00c4hm… Fertig. Linux eben. Nun die Konfigurationdatei<\/p>\n

\/etc\/nginx\/sites-available\/default<\/pre>\n

etwa folgenderma\u00dfen anpassen:<\/p>\n

server {\r\n    listen   80;\r\n    server_name localhost;\r\n\r\n    location \/tomcat-project\/ {\r\n        proxy_pass http:\/\/127.0.0.1:8080\/tomcat-project\/;\r\n    }\r\n\r\n    location \/node-project\/ {\r\n        proxy_pass http:\/\/127.0.0.1:8081\/node-project\/;\r\n    }\r\n\r\n    location \/php-project\/ {\r\n        proxy_pass http:\/\/127.0.0.1:8082\/php-project\/;\r\n    }\r\n}<\/pre>\n

Standardport des Apache \u00e4ndern<\/h3>\n

Wird PHP mittels Apache ausgeliefert, muss der standardm\u00e4\u00dfig verwendete Port 80 ge\u00e4ndert werden. Hierf\u00fcr die 80 in den folgenden Dateien auf den Wunschport (im Beispiel oben etwa 8082) umstellen:<\/p>\n

\/etc\/apache2\/ports.conf\r\n\/etc\/apache2\/sites-available\/default\r\n\/etc\/apache2\/sites-available\/*<\/pre>\n

Abschlie\u00dfend Apache und Nginx neustarten:<\/p>\n

sudo \/etc\/init.d\/apache2 restart\r\nsudo \/etc\/init.d\/nginx restart<\/pre>\n

Selber Host, selber Port<\/h2>\n

Nun lassen sich verschiedene Webserver (technologisch oder gar physisch getrennt) \u00fcber die selbe Adresse erreichen:<\/p>\n

http:\/\/localhost\/tomcat-project\r\nhttp:\/\/localhost\/node-project\r\nhttp:\/\/localhost\/php-project<\/pre>\n

Das Beispiel bezieht sich lediglich auf HTTP, kann aber analog f\u00fcr beispielsweise HTTPS (Port 443 statt 80) konfiguriert werden.<\/p>\n

\"http:\/\/nginx.org\/\"<\/a>
http:\/\/nginx.org\/<\/figcaption><\/figure>\n

Um hier keinen falschen Eindruck aufkommen zu lassen: Nginx kann noch weitaus mehr. So ist ein Apache unter Umst\u00e4nden gar nicht notwendig und PHP kann als CGI<\/a> direkt ausgef\u00fchrt werden. Die offizielle Dokumentation<\/a> sollte einen etwas umfangreicheren \u00dcberblick liefern.<\/p>\n","protected":false},"excerpt":{"rendered":"

Nginx ist ein recht schmaler Webserver, der dank seiner Forward-Proxy-Eigenschaften sehr gut dazu geeignet ist, verschiedene Webserver unter einem Host zusammenzufassen. \u201eF\u00fcr jeden Job das passende Werkzeug\u201c f\u00fchrt gern zu folgenden Strukturen auf Server und Entwicklungsumgebung: http:\/\/localhost:8080\/tomcat-project http:\/\/localhost:8081\/node-project http:\/\/localhost:8082\/php-project Ein Albtraum f\u00fcr jeden Ajax-Entwickler. Mit Nginx lassen sich verschiedene Hosts und Ports zusammenfassen.<\/p>\n","protected":false},"author":1,"featured_media":1888,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[91],"tags":[537,536,532,527,539,134],"_links":{"self":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1879"}],"collection":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/comments?post=1879"}],"version-history":[{"count":13,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1879\/revisions"}],"predecessor-version":[{"id":1925,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1879\/revisions\/1925"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/media\/1888"}],"wp:attachment":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/media?parent=1879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/categories?post=1879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/tags?post=1879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}