Skip to content

Commit 5b98ddc

Browse files
authored
Merge pull request #1 from noahisdai/feature/host-header
Feature/host header
2 parents 848fed2 + 76671ff commit 5b98ddc

3 files changed

Lines changed: 29 additions & 1 deletion

File tree

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ RUN chmod +x /usr/local/bin/entrypoint.sh
1414
USER 1001
1515
# Environment variables for proxy configuration
1616
#ENV PROXY_TARGET=
17+
#ENV PROXY_HOST_HEADER=
1718
#ENV MTLS_KEY_PATH=
1819
#ENV MTLS_CERT_PATH=
1920
#ENV MTLS_CA_CERT_PATH=

entrypoint.sh

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,33 @@
11
#!/bin/sh
22

33
# Set default values for optional configuration
4-
MTLS_VERIFY_CERT=${MTLS_VERIFY_CERT:-"off"}
4+
if [ -z "$MTLS_VERIFY_CERT" ]; then
5+
if [ -z "$MTLS_CA_CERT_PATH" ]; then
6+
MTLS_VERIFY_CERT="off"
7+
else
8+
MTLS_VERIFY_CERT="on"
9+
fi
10+
fi
511

612
# Generate conditional configuration strings
713
MTLS_CA_CONFIG=""
814
MTLS_VERIFY_CONFIG=""
915
MTLS_CERTIFICATES=""
16+
HOST_HEADER_CONFIG=""
1017

1118
if [ -z "$PROXY_TARGET" ]; then
1219
echo "[ERROR] PROXY_TARGET is a required env variable" >&2
1320
exit 1
1421
fi
1522

23+
if [ -z "$PROXY_HOST_HEADER" ]; then
24+
PROXY_HOST_HEADER='$host'
25+
else
26+
echo "[INFO] Configuring Host override for ${PROXY_HOST_HEADER}"
27+
fi
28+
29+
HOST_HEADER_CONFIG="proxy_set_header Host ${PROXY_HOST_HEADER};"
30+
1631
# Only add CA certificate configuration if MTLS_CA_CERT_PATH is set and file exists
1732
if [ -n "$MTLS_CA_CERT_PATH" ] && [ -f "$MTLS_CA_CERT_PATH" ]; then
1833
echo "[INFO] Using CA certificate: $MTLS_CA_CERT_PATH"
@@ -22,6 +37,9 @@ if [ -n "$MTLS_CA_CERT_PATH" ] && [ -f "$MTLS_CA_CERT_PATH" ]; then
2237
if [ "$MTLS_VERIFY_CERT" != "off" ]; then
2338
echo "[INFO] Enabling certificate verification: $MTLS_VERIFY_CERT"
2439
MTLS_VERIFY_CONFIG="proxy_ssl_verify $MTLS_VERIFY_CERT;"
40+
if [ -n "$MTLS_VERIFY_DEPTH" ]; then
41+
MTLS_VERIFY_CONFIG="$MTLS_VERIFY_CONFIG\nproxy_ssl_verify_depth $MTLS_VERIFY_DEPTH;"
42+
fi
2543
fi
2644
else
2745
echo "[WARNING] No CA certificate configured or file not found. SSL verification disabled."
@@ -41,6 +59,7 @@ fi
4159
export MTLS_CA_CONFIG
4260
export MTLS_VERIFY_CONFIG
4361
export MTLS_CERTIFICATES
62+
export HOST_HEADER_CONFIG
4463

4564
# Start nginx with the original Docker entrypoint
4665
exec /docker-entrypoint.sh "$@"

proxy.conf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,17 @@ server {
77

88
location / {
99
proxy_pass ${PROXY_TARGET};
10+
# proxy_ssl_session_reuse off;
11+
${HOST_HEADER_CONFIG}
1012
${MTLS_CERTIFICATES}
1113
${MTLS_CA_CONFIG}
1214
${MTLS_VERIFY_CONFIG}
15+
16+
proxy_set_header X-Real-IP $remote_addr;
17+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
18+
proxy_set_header X-Forwarded-Proto $scheme;
19+
20+
proxy_ssl_server_name on;
1321
}
1422

1523
error_page 500 502 503 504 /50x.html;

0 commit comments

Comments
 (0)