Commit bb721d16 authored by Christian's avatar Christian 💬

Update src/_posts/2019/2019-09-12-nginx-reverseproxy-through-forward-proxy-socat.md

parent 8bb9a97d
......@@ -5,12 +5,14 @@ language: german
tags: [http, nginx]
---
Wie bereits in [einem früheren Beitrag]({{ site.baseurl }}{% post_url 2019/2019-08-12-nginx-reverseproxy-through-forward-proxy %})
Wie bereits in [einem früheren Beitrag][nginx-forwardproxy]
beschrieben, kann man mit `proxy_pass` Anfragen durch einen
Forward Proxy leiten, in dem man als Proxy URL einfach den
Forward Proxy verwendet und via `proxy_set_header` den `HOST` header
auf das eigentliche Ziel einstellt.
[nginx-forwardproxy]: {{ site.baseurl }}{% post_url 2019/2019-08-12-nginx-reverseproxy-through-forward-proxy %}
Im Testbetrieb hat sich nun aber heraus gestellt, dass dies nur mit HTTP
Traffic funktioniert. Soll eine TLS Verbindung aufgebaut werden, schlägt
dies fehl, da NGINX nicht in der Lage ist den PROXY CONNECT Prozess korrekt
......@@ -20,10 +22,27 @@ Zur Rettung kommt hier das Tool [socat](http://www.dest-unreach.org/socat/),
welches ganz offiziell und ohne Tricks einen Proxy Connect beherrscht:
```sh
socat TCP4-LISTEN:8443,reuseaddr,bind=127.0.0.1 \
socat TCP4-LISTEN:8443,reuseaddr,fork,bind=127.0.0.1 \
PROXY:corporate-proxy.serverless.industries:webservice.example.com:443,proxyport=8080
```
Das ganze als systemd unit:
```ini
[Unit]
Description=Socat API Proxy
After=network.target
[Service]
ExecStart=/usr/bin/socat TCP4-LISTEN:8443,reuseaddr,fork,bind=127.0.0.1 PROXY:corporate-proxy.serverless.industries:webservice.example.com:443,proxyport=8080
Restart=on-failure
Type=simple
[Install]
WantedBy=multi-user.target
Alias=socat-api-proxy.service
```
In der NGINX Konfiguration wird dann der socat Port verwendet:
```
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment