maddig
Goto Top

Reverse Proxy mit IIS 8

Hallo,

ich habe vor ca. einer Woche schon mal einen Thread erstellt der ist aber leider komplett untergegangen.
Aus dem letzten Thread ist ein gutes Stichwort gefallen: Reverse Proxy.
Überall wo ein (???) ist, bin ich mir nicht sicher ob das so passt.

Zum Szenario: Ich habe eine Domain bei Strato (domain.de) die als DynDNS fungiert und immer up-to-date ist.

Jetzt habe ich zwei Subdomains erstellt webmon.domain.de und cloud.domain.de und bei diesen auch DynDNS aktiviert(???). Das funktioniert auch grundsätzlich.

Im Anhang sieht man ein Visio von dem momentanen Aufbau.

Das Wunschzenario:

Wenn ich im Browser domain.de eingebe, komme ich auf der einfachen HTML Seite Port 80 raus. Das funktioniert auch soweit.
Wenn ich auf webmon.domain.de gehe, will ich mit SSL auf dem PRTG Web Ui landen.
Wenn ich auf cloud.domain.de gehe, will ich mit SSL auf dem anderen Webserver mit SSL auf Owncloud landen.

Ich habe die zwei Sites für die Subdomain auf ein leeres Verzeichnis gesetzt und als Port bei beiden 443. Als Regel hab ich dann "Reverse Proxy" ausgewählt.
Beim erstellen vom Reverse Proxy hab ich mich an diese Anleitung gehalten.
blogs.iis.net/owscott/creating-a-reverse-proxy-with-url-rewrite-for-iis

Wenn ich jetzt versuche auf eine Subdomain zu gehen bekomme ich folgende Fehlermeldung:

502 - Webserver hat als Gateway oder Proxyserver eine ungültige Antwort erhalten.
Problem mit der gesuchten Seite. Sie kann nicht angezeigt werden. Beim Kontaktieren des Upstream-Inhaltsservers hat der Webserver (als Gateway oder Proxy) eine ungültige Antwort vom Inhaltsserver erhalten.

Ich hoffe ihr könnt mir helfen.


Mit freundlichen Grüßen
web

Content-Key: 313428

Url: https://administrator.de/contentid/313428

Printed on: April 19, 2024 at 08:04 o'clock

Mitglied: 129813
129813 Aug 24, 2016 updated at 11:48:09 (UTC)
Goto Top
IIS as Reverse-Proxy with SSL doesn't work (buggy).

Regards
Member: Dani
Dani Aug 24, 2016 at 12:10:14 (UTC)
Goto Top
Moin,
da wirst du wohl auf Nginx o.ä. unter Linux ausweichen müssen. Anleitungen dazu findest du hier im Forum u.a. von mir.


Gruß,
Dani
Member: catachan
catachan Aug 24, 2016 at 12:24:25 (UTC)
Goto Top
Works with ARR 3.0. We have at a customers site a wildcard SSl certificate and multiple SSL and non SSL hosts in the inside network. Works without any problems.
Member: maddig
maddig Aug 24, 2016 updated at 12:47:02 (UTC)
Goto Top
Ok gut. Danke für das Tutorial Dani. Aber vom Grundgedanken her müsste es so funktionieren wie ich das will oder ?
Und das Tutorial ist für Outlook, geht aber bestimmt für andere Anwendungen genauso oder ?
Member: Dani
Dani Aug 24, 2016 at 13:35:41 (UTC)
Goto Top
Ok gut. Danke für das Tutorial Dani. Aber vom Grundgedanken her müsste es so funktionieren wie ich das will oder ?
Ja.

Und das Tutorial ist für Outlook, geht aber bestimmt für andere Anwendungen genauso oder ?
Ja. Natürlich müssen die Pfade entsprechend an deine Umgebung angepasst werden.


Gruß,
Dani
Member: maddig
maddig Aug 25, 2016 at 09:08:37 (UTC)
Goto Top
Ok funktioniert soweit bestens.

Jedoch ist nginx ziemlich langsam. Nicht nur bei PHP sondern auch bei normalen html Files..

Hast du dazu noch einen Tipp?
Member: Dani
Dani Aug 25, 2016 at 11:13:52 (UTC)
Goto Top
Moin,
Hast du dazu noch einen Tipp?
Wwelche Betriebssystem und welche Nginxversion setzt du ein?
Lass mal die Konfiguration sehen...


Gruß,
Dani
Member: maddig
maddig Aug 25, 2016 at 11:20:16 (UTC)
Goto Top
Debian 8.5 mit nginx 1.10.1

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
	worker_connections 768;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 2;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# SSL Settings
	##

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;
	gzip_disable "msie6";  

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

Die Config ist fast original. Ich habe nur das von deiner Anleitung geändert.
Member: Dani
Dani Aug 25, 2016 at 11:52:30 (UTC)
Goto Top
Die restlichen Konfigurationen (sites-enabled/) bitte auch posten...
Member: maddig
maddig Aug 25, 2016 at 11:56:07 (UTC)
Goto Top
cloud.domain.de

server {
        listen       80;
        server_name cloud.domain.de;

        # Redirect any HTTP request to HTTPS
        rewrite ^(.*) https://cloud.domain.de$1 permanent;
}


server {
	listen 443;
	#listen [::]:80;

	server_name cloud.domain.de;

	ssl on;
        ssl_certificate /root/1_domain.de_bundle.crt;
        ssl_certificate_key /root/domain.de.key;

        ssl_session_timeout 5m;

        ssl_protocols TLSv1;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
        ssl_prefer_server_ciphers on;

	root /var/www/cloud.domain.de/owncloud;
	index index.php;





	location / {
		try_files $uri $uri/ /index.php;
	}

	location ~ \.php$ {
                include snippets/fastcgi-php.conf;

                # With php5-cgi alone:
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
        }
}

domain.de

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	# SSL configuration
	#
	# listen 443 ssl default_server;
	# listen [::]:443 ssl default_server;
	#
	# Self signed certs generated by the ssl-cert package
	# Don't use them in a production server!  
	#
	# include snippets/snakeoil.conf;

	root /var/www/domain.de;

	# Add index.php to the list if you are using PHP
	index index.html index.php;

	server_name www.domain.de domain.de;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}

	# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	#
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
	
		# With php5-cgi alone:
		#fastcgi_pass 127.0.0.1:9000;
		# With php5-fpm:
		fastcgi_pass unix:/var/run/php5-fpm.sock;
	}

	# deny access to .htaccess files, if Apache's document root  
	# concurs with nginx's one  
	#
	#location ~ /\.ht {
	#	deny all;
	#}
}
Member: Dani
Dani Aug 25, 2016 at 12:52:35 (UTC)
Goto Top
Hi,
das hat aber meinen ReverseProxy wenig bis gar nichts zu tun. Wie sieht denn das Design im Vergleich zum Bild in der Eigangsfrage nun aus? Ich dachte eigentlich du installierst eine weitere VM bzw. legst den Apache auf Port 8080 bzw. 8443 und den RP auf Port 80 bzw. 443.


Gruß,
Dani
Member: maddig
maddig Aug 25, 2016 at 13:29:08 (UTC)
Goto Top
Der RP funktioniert einwandfrei. Ich habe eig die normalen Sites mit Inhalt gemeint. Und die zwei Configs sind von den zwei sites die direkt auf dem nginx laufen.
Member: Dani
Dani Aug 25, 2016 at 14:15:01 (UTC)
Goto Top
Also ein Performanceproblem welches aber nichts mit dem RP zu tun hat? Am Besten eine separate Frage mit allen Infos dazu schreiben.
Diesen Beitrag, wenn alle Punkte geklärt sind, auf gelöst setzen.

Gruß,
Dani