Skip to content

Commit 432b07c

Browse files
committed
feat: add switch to enable real-ip forwarding
1 parent f16987b commit 432b07c

4 files changed

Lines changed: 50 additions & 0 deletions

File tree

deployment/helm/datamate/values.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,8 @@ frontend:
183183
secretKeyRef:
184184
name: datamate-conf
185185
key: DOMAIN
186+
- name: REAL_IP_MODE
187+
value: "off"
186188
volumes:
187189
- *logVolume
188190
- name: cert-volume

scripts/images/frontend/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,15 @@ COPY --from=builder /app/dist /opt/frontend/statics
2222
COPY scripts/images/frontend/routes.inc /opt/frontend/routes.inc
2323
COPY scripts/images/frontend/http_backend.conf /opt/frontend/http_backend.conf
2424
COPY scripts/images/frontend/https_backend.conf /opt/frontend/https_backend.conf
25+
COPY scripts/images/frontend/nginx.conf /opt/frontend/nginx.conf
2526

2627
COPY scripts/images/frontend/start.sh /opt/frontend/start.sh
2728

2829
RUN dos2unix /opt/frontend/start.sh \
2930
&& chmod +x /opt/frontend/start.sh \
3031
&& mkdir -p /etc/nginx/cert \
3132
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
33+
&& rm -f /etc/nginx/nginx.conf \
3234
&& rm -f /etc/nginx/conf.d/default.conf
3335

3436
EXPOSE 3000

scripts/images/frontend/nginx.conf

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
2+
user nginx;
3+
worker_processes auto;
4+
5+
error_log /var/log/nginx/error.log notice;
6+
pid /run/nginx.pid;
7+
8+
9+
events {
10+
worker_connections 1024;
11+
}
12+
13+
14+
http {
15+
include /etc/nginx/mime.types;
16+
default_type application/octet-stream;
17+
18+
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
19+
'$status $body_bytes_sent "$http_referer" '
20+
'"$http_user_agent" "$http_x_forwarded_for"';
21+
22+
access_log /var/log/nginx/access.log main;
23+
24+
sendfile on;
25+
#tcp_nopush on;
26+
27+
keepalive_timeout 65;
28+
29+
#gzip on;
30+
31+
include /etc/nginx/conf.d/*.conf;
32+
}

scripts/images/frontend/start.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
#!/bin/bash
22

3+
function set_proxy_protocol() {
4+
if [ "${REAL_IP_MODE}" != "proxy_protocol" ]; then
5+
echo "REAL_IP_MODE is ${REAL_IP_MODE}, no need to update nginx configuration file."
6+
return 0
7+
fi
8+
sed -i 's/listen 3000;/listen 3000 proxy_protocol;/' /opt/frontend/http_backend.conf
9+
sed -i 's/listen 3000;/listen 3000 proxy_protocol;/' /opt/frontend/https_backend.conf
10+
sed -i '/access_log.*main/a\ set_real_ip_from 0.0.0.0/0;' /opt/frontend/nginx.conf
11+
sed -i '/access_log.*main/a\ real_ip_header proxy_protocol;' /opt/frontend/nginx.conf
12+
echo "ginx configuration file updated."
13+
}
14+
315
if [ -f "/cert/server.pem" ]; then
416
cp /cert/server.pem /etc/nginx/cert/server.pem
517
chown nginx:nginx /etc/nginx/cert/server.pem
@@ -18,6 +30,8 @@ if [ -f "/cert/server.key" ]; then
1830
chown nginx:nginx /etc/nginx/cert/server.key
1931
fi
2032

33+
set_proxy_protocol
34+
cp /opt/frontend/nginx.conf /etc/nginx/nginx.conf
2135
if [ -f "/etc/nginx/cert/server.pem" ]; then
2236
cp /opt/frontend/https_backend.conf /etc/nginx/conf.d/default.conf
2337
cp /opt/frontend/routes.inc /etc/nginx/conf.d/routes.inc

0 commit comments

Comments
 (0)