{"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>\nEin 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>\netwa 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>\nStandardport 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>\nAbschlie\u00dfend Apache und Nginx neustarten:<\/p>\n
sudo \/etc\/init.d\/apache2 restart\r\nsudo \/etc\/init.d\/nginx restart<\/pre>\nSelber 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>\nDas Beispiel bezieht sich lediglich auf HTTP, kann aber analog f\u00fcr beispielsweise HTTPS (Port 443 statt 80) konfiguriert werden.<\/p>\n