Added correct resolving for source IP addresses in case of HTTP proxies

This commit is contained in:
Alexey Pustovalov
2025-07-04 17:54:57 +03:00
parent 9860d2a88d
commit e0f77c4380
67 changed files with 475 additions and 0 deletions

View File

@ -258,6 +258,10 @@ PHP_FPM_PM_START_SERVERS=5
PHP_FPM_PM_MIN_SPARE_SERVERS=5 PHP_FPM_PM_MIN_SPARE_SERVERS=5
PHP_FPM_PM_MAX_SPARE_SERVERS=35 PHP_FPM_PM_MAX_SPARE_SERVERS=35
PHP_FPM_PM_MAX_REQUESTS=0 PHP_FPM_PM_MAX_REQUESTS=0
Allowed Apache configuration options:
WEB_REAL_IP_FROM=
WEB_REAL_IP_HEADER=
``` ```
## Allowed volumes for the Zabbix web interface container ## Allowed volumes for the Zabbix web interface container

View File

@ -15,3 +15,4 @@ LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule expires_module modules/mod_expires.so LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so LoadModule headers_module modules/mod_headers.so
LoadModule remoteip_module modules/mod_remoteip.so

View File

@ -1,6 +1,9 @@
Listen 8080 Listen 8080
<VirtualHost *:8080> <VirtualHost *:8080>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
<LocationMatch "/(ping|status)"> <LocationMatch "/(ping|status)">
Require all granted Require all granted

View File

@ -14,6 +14,9 @@ SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCacheTimeout 300 SSLSessionCacheTimeout 300
<VirtualHost *:8443> <VirtualHost *:8443>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
# Enable/Disable SSL for this virtual host. # Enable/Disable SSL for this virtual host.
SSLEngine on SSLEngine on

View File

@ -202,6 +202,11 @@ prepare_web_server() {
export APACHE_SERVER_SIGNATURE="Off" export APACHE_SERVER_SIGNATURE="Off"
fi fi
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
mkdir -p "${APACHE_RUN_DIR}" mkdir -p "${APACHE_RUN_DIR}"
} }

View File

@ -15,3 +15,4 @@ LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule expires_module modules/mod_expires.so LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so LoadModule headers_module modules/mod_headers.so
LoadModule remoteip_module modules/mod_remoteip.so

View File

@ -1,6 +1,9 @@
Listen 8080 Listen 8080
<VirtualHost *:8080> <VirtualHost *:8080>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
<LocationMatch "/(ping|status)"> <LocationMatch "/(ping|status)">
Require all granted Require all granted

View File

@ -14,6 +14,9 @@ SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCacheTimeout 300 SSLSessionCacheTimeout 300
<VirtualHost *:8443> <VirtualHost *:8443>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
# Enable/Disable SSL for this virtual host. # Enable/Disable SSL for this virtual host.
SSLEngine on SSLEngine on

View File

@ -202,6 +202,11 @@ prepare_web_server() {
export APACHE_SERVER_SIGNATURE="Off" export APACHE_SERVER_SIGNATURE="Off"
fi fi
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
mkdir -p "${APACHE_RUN_DIR}" mkdir -p "${APACHE_RUN_DIR}"
} }

View File

@ -15,3 +15,4 @@ LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule expires_module modules/mod_expires.so LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so LoadModule headers_module modules/mod_headers.so
LoadModule remoteip_module modules/mod_remoteip.so

View File

@ -1,6 +1,9 @@
Listen 8080 Listen 8080
<VirtualHost *:8080> <VirtualHost *:8080>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
<LocationMatch "/(ping|status)"> <LocationMatch "/(ping|status)">
Require all granted Require all granted

View File

@ -14,6 +14,9 @@ SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCacheTimeout 300 SSLSessionCacheTimeout 300
<VirtualHost *:8443> <VirtualHost *:8443>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
# Enable/Disable SSL for this virtual host. # Enable/Disable SSL for this virtual host.
SSLEngine on SSLEngine on

View File

@ -202,6 +202,11 @@ prepare_web_server() {
export APACHE_SERVER_SIGNATURE="Off" export APACHE_SERVER_SIGNATURE="Off"
fi fi
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
mkdir -p "${APACHE_RUN_DIR}" mkdir -p "${APACHE_RUN_DIR}"
} }

View File

@ -12,3 +12,4 @@ LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so
LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so

View File

@ -1,6 +1,9 @@
Listen 8080 Listen 8080
<VirtualHost *:8080> <VirtualHost *:8080>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
<LocationMatch "/(ping|status)"> <LocationMatch "/(ping|status)">
Require all granted Require all granted

View File

@ -14,6 +14,9 @@ SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCacheTimeout 300 SSLSessionCacheTimeout 300
<VirtualHost *:8443> <VirtualHost *:8443>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
# Enable/Disable SSL for this virtual host. # Enable/Disable SSL for this virtual host.
SSLEngine on SSLEngine on

View File

@ -202,6 +202,11 @@ prepare_web_server() {
export APACHE_SERVER_SIGNATURE="Off" export APACHE_SERVER_SIGNATURE="Off"
fi fi
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
mkdir -p "${APACHE_RUN_DIR}" mkdir -p "${APACHE_RUN_DIR}"
} }

View File

@ -258,6 +258,10 @@ PHP_FPM_PM_START_SERVERS=5
PHP_FPM_PM_MIN_SPARE_SERVERS=5 PHP_FPM_PM_MIN_SPARE_SERVERS=5
PHP_FPM_PM_MAX_SPARE_SERVERS=35 PHP_FPM_PM_MAX_SPARE_SERVERS=35
PHP_FPM_PM_MAX_REQUESTS=0 PHP_FPM_PM_MAX_REQUESTS=0
Allowed Apache configuration options:
WEB_REAL_IP_FROM=
WEB_REAL_IP_HEADER=
``` ```
## Allowed volumes for the Zabbix web interface container ## Allowed volumes for the Zabbix web interface container

View File

@ -15,3 +15,4 @@ LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule expires_module modules/mod_expires.so LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so LoadModule headers_module modules/mod_headers.so
LoadModule remoteip_module modules/mod_remoteip.so

View File

@ -1,6 +1,9 @@
Listen 8080 Listen 8080
<VirtualHost *:8080> <VirtualHost *:8080>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
<LocationMatch "/(ping|status)"> <LocationMatch "/(ping|status)">
Require all granted Require all granted

View File

@ -14,6 +14,9 @@ SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCacheTimeout 300 SSLSessionCacheTimeout 300
<VirtualHost *:8443> <VirtualHost *:8443>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
# Enable/Disable SSL for this virtual host. # Enable/Disable SSL for this virtual host.
SSLEngine on SSLEngine on

View File

@ -201,6 +201,11 @@ prepare_web_server() {
export APACHE_SERVER_SIGNATURE="Off" export APACHE_SERVER_SIGNATURE="Off"
fi fi
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
mkdir -p "${APACHE_RUN_DIR}" mkdir -p "${APACHE_RUN_DIR}"
} }

View File

@ -15,3 +15,4 @@ LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule expires_module modules/mod_expires.so LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so LoadModule headers_module modules/mod_headers.so
LoadModule remoteip_module modules/mod_remoteip.so

View File

@ -1,6 +1,9 @@
Listen 8080 Listen 8080
<VirtualHost *:8080> <VirtualHost *:8080>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
<LocationMatch "/(ping|status)"> <LocationMatch "/(ping|status)">
Require all granted Require all granted

View File

@ -14,6 +14,9 @@ SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCacheTimeout 300 SSLSessionCacheTimeout 300
<VirtualHost *:8443> <VirtualHost *:8443>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
# Enable/Disable SSL for this virtual host. # Enable/Disable SSL for this virtual host.
SSLEngine on SSLEngine on

View File

@ -201,6 +201,11 @@ prepare_web_server() {
export APACHE_SERVER_SIGNATURE="Off" export APACHE_SERVER_SIGNATURE="Off"
fi fi
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
mkdir -p "${APACHE_RUN_DIR}" mkdir -p "${APACHE_RUN_DIR}"
} }

View File

@ -15,3 +15,4 @@ LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule expires_module modules/mod_expires.so LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so LoadModule headers_module modules/mod_headers.so
LoadModule remoteip_module modules/mod_remoteip.so

View File

@ -1,6 +1,9 @@
Listen 8080 Listen 8080
<VirtualHost *:8080> <VirtualHost *:8080>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
<LocationMatch "/(ping|status)"> <LocationMatch "/(ping|status)">
Require all granted Require all granted

View File

@ -14,6 +14,9 @@ SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCacheTimeout 300 SSLSessionCacheTimeout 300
<VirtualHost *:8443> <VirtualHost *:8443>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
# Enable/Disable SSL for this virtual host. # Enable/Disable SSL for this virtual host.
SSLEngine on SSLEngine on

View File

@ -201,6 +201,11 @@ prepare_web_server() {
export APACHE_SERVER_SIGNATURE="Off" export APACHE_SERVER_SIGNATURE="Off"
fi fi
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
mkdir -p "${APACHE_RUN_DIR}" mkdir -p "${APACHE_RUN_DIR}"
} }

View File

@ -12,3 +12,4 @@ LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so
LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so

View File

@ -1,6 +1,9 @@
Listen 8080 Listen 8080
<VirtualHost *:8080> <VirtualHost *:8080>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
<LocationMatch "/(ping|status)"> <LocationMatch "/(ping|status)">
Require all granted Require all granted

View File

@ -14,6 +14,9 @@ SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCacheTimeout 300 SSLSessionCacheTimeout 300
<VirtualHost *:8443> <VirtualHost *:8443>
RemoteIPInternalProxy ${WEB_REAL_IP_FROM}
RemoteIPHeader ${WEB_REAL_IP_HEADER}
# Enable/Disable SSL for this virtual host. # Enable/Disable SSL for this virtual host.
SSLEngine on SSLEngine on

View File

@ -201,6 +201,11 @@ prepare_web_server() {
export APACHE_SERVER_SIGNATURE="Off" export APACHE_SERVER_SIGNATURE="Off"
fi fi
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_FROM}" ] && sed -i '/WEB_REAL_IP_FROM/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache.conf"
[ -z "${WEB_REAL_IP_HEADER}" ] && sed -i '/WEB_REAL_IP_HEADER/d' "$ZABBIX_CONF_DIR/apache_ssl.conf"
mkdir -p "${APACHE_RUN_DIR}" mkdir -p "${APACHE_RUN_DIR}"
} }

View File

@ -259,6 +259,10 @@ PHP_FPM_PM_START_SERVERS=5
PHP_FPM_PM_MIN_SPARE_SERVERS=5 PHP_FPM_PM_MIN_SPARE_SERVERS=5
PHP_FPM_PM_MAX_SPARE_SERVERS=35 PHP_FPM_PM_MAX_SPARE_SERVERS=35
PHP_FPM_PM_MAX_REQUESTS=0 PHP_FPM_PM_MAX_REQUESTS=0
Allowed Nginx configuration options:
WEB_REAL_IP_FROM=
WEB_REAL_IP_HEADER=
``` ```
## Allowed volumes for the Zabbix web interface container ## Allowed volumes for the Zabbix web interface container

View File

@ -2,6 +2,9 @@ server {
listen 8080; listen 8080;
listen [::]:8080; listen [::]:8080;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
index {HTTP_INDEX_FILE}; index {HTTP_INDEX_FILE};

View File

@ -4,6 +4,9 @@ server {
http2 on; http2 on;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
server_name_in_redirect off; server_name_in_redirect off;

View File

@ -35,6 +35,15 @@ NGINX_SSL_CONFIG_DIR="/etc/ssl/nginx"
# PHP-FPM configuration file # PHP-FPM configuration file
PHP_CONFIG_FILE="/etc/php84/php-fpm.d/zabbix.conf" PHP_CONFIG_FILE="/etc/php84/php-fpm.d/zabbix.conf"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//./\\.}"
echo "$var_value"
}
# usage: file_env VAR [DEFAULT] # usage: file_env VAR [DEFAULT]
# as example: file_env 'MYSQL_PASSWORD' 'zabbix' # as example: file_env 'MYSQL_PASSWORD' 'zabbix'
# (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file) # (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file)
@ -229,6 +238,27 @@ prepare_web_server() {
sed -i \ sed -i \
-e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \ -e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \
"$NGINX_CONF_FILE" "$NGINX_CONF_FILE"
[ ! -z "${WEB_REAL_IP_FROM}" ] && WEB_REAL_IP_FROM="set_real_ip_from ${WEB_REAL_IP_FROM};"
WEB_REAL_IP_FROM=$(escape_spec_char "$WEB_REAL_IP_FROM")
[ ! -z "${WEB_REAL_IP_HEADER}" ] && WEB_REAL_IP_HEADER="real_ip_header ${WEB_REAL_IP_HEADER};"
WEB_REAL_IP_HEADER=$(escape_spec_char "$WEB_REAL_IP_HEADER")
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
} }
prepare_zbx_php_config() { prepare_zbx_php_config() {

View File

@ -2,6 +2,9 @@ server {
listen 8080; listen 8080;
listen [::]:8080; listen [::]:8080;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
index {HTTP_INDEX_FILE}; index {HTTP_INDEX_FILE};

View File

@ -2,6 +2,9 @@ server {
listen 8443 ssl http2; listen 8443 ssl http2;
listen [::]:8443 ssl http2; listen [::]:8443 ssl http2;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
server_name_in_redirect off; server_name_in_redirect off;

View File

@ -35,6 +35,15 @@ NGINX_SSL_CONFIG_DIR="/etc/ssl/nginx"
# PHP-FPM configuration file # PHP-FPM configuration file
PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf" PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//./\\.}"
echo "$var_value"
}
# usage: file_env VAR [DEFAULT] # usage: file_env VAR [DEFAULT]
# as example: file_env 'MYSQL_PASSWORD' 'zabbix' # as example: file_env 'MYSQL_PASSWORD' 'zabbix'
# (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file) # (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file)
@ -229,6 +238,27 @@ prepare_web_server() {
sed -i \ sed -i \
-e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \ -e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \
"$NGINX_CONF_FILE" "$NGINX_CONF_FILE"
[ ! -z "${WEB_REAL_IP_FROM}" ] && WEB_REAL_IP_FROM="set_real_ip_from ${WEB_REAL_IP_FROM};"
WEB_REAL_IP_FROM=$(escape_spec_char "$WEB_REAL_IP_FROM")
[ ! -z "${WEB_REAL_IP_HEADER}" ] && WEB_REAL_IP_HEADER="real_ip_header ${WEB_REAL_IP_HEADER};"
WEB_REAL_IP_HEADER=$(escape_spec_char "$WEB_REAL_IP_HEADER")
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
} }
prepare_zbx_php_config() { prepare_zbx_php_config() {

View File

@ -2,6 +2,9 @@ server {
listen 8080; listen 8080;
listen [::]:8080; listen [::]:8080;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
index {HTTP_INDEX_FILE}; index {HTTP_INDEX_FILE};

View File

@ -2,6 +2,9 @@ server {
listen 8443 ssl http2; listen 8443 ssl http2;
listen [::]:8443 ssl http2; listen [::]:8443 ssl http2;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
server_name_in_redirect off; server_name_in_redirect off;

View File

@ -35,6 +35,15 @@ NGINX_SSL_CONFIG_DIR="/etc/ssl/nginx"
# PHP-FPM configuration file # PHP-FPM configuration file
PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf" PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//./\\.}"
echo "$var_value"
}
# usage: file_env VAR [DEFAULT] # usage: file_env VAR [DEFAULT]
# as example: file_env 'MYSQL_PASSWORD' 'zabbix' # as example: file_env 'MYSQL_PASSWORD' 'zabbix'
# (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file) # (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file)
@ -229,6 +238,27 @@ prepare_web_server() {
sed -i \ sed -i \
-e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \ -e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \
"$NGINX_CONF_FILE" "$NGINX_CONF_FILE"
[ ! -z "${WEB_REAL_IP_FROM}" ] && WEB_REAL_IP_FROM="set_real_ip_from ${WEB_REAL_IP_FROM};"
WEB_REAL_IP_FROM=$(escape_spec_char "$WEB_REAL_IP_FROM")
[ ! -z "${WEB_REAL_IP_HEADER}" ] && WEB_REAL_IP_HEADER="real_ip_header ${WEB_REAL_IP_HEADER};"
WEB_REAL_IP_HEADER=$(escape_spec_char "$WEB_REAL_IP_HEADER")
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
} }
prepare_zbx_php_config() { prepare_zbx_php_config() {

View File

@ -2,6 +2,9 @@ server {
listen 8080; listen 8080;
listen [::]:8080; listen [::]:8080;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
index {HTTP_INDEX_FILE}; index {HTTP_INDEX_FILE};

View File

@ -2,6 +2,9 @@ server {
listen 8443 ssl http2; listen 8443 ssl http2;
listen [::]:8443 ssl http2; listen [::]:8443 ssl http2;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
server_name_in_redirect off; server_name_in_redirect off;

View File

@ -35,6 +35,15 @@ NGINX_SSL_CONFIG_DIR="/etc/ssl/nginx"
# PHP-FPM configuration file # PHP-FPM configuration file
PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf" PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//./\\.}"
echo "$var_value"
}
# usage: file_env VAR [DEFAULT] # usage: file_env VAR [DEFAULT]
# as example: file_env 'MYSQL_PASSWORD' 'zabbix' # as example: file_env 'MYSQL_PASSWORD' 'zabbix'
# (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file) # (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file)
@ -229,6 +238,27 @@ prepare_web_server() {
sed -i \ sed -i \
-e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \ -e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \
"$NGINX_CONF_FILE" "$NGINX_CONF_FILE"
[ ! -z "${WEB_REAL_IP_FROM}" ] && WEB_REAL_IP_FROM="set_real_ip_from ${WEB_REAL_IP_FROM};"
WEB_REAL_IP_FROM=$(escape_spec_char "$WEB_REAL_IP_FROM")
[ ! -z "${WEB_REAL_IP_HEADER}" ] && WEB_REAL_IP_HEADER="real_ip_header ${WEB_REAL_IP_HEADER};"
WEB_REAL_IP_HEADER=$(escape_spec_char "$WEB_REAL_IP_HEADER")
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
} }
prepare_zbx_php_config() { prepare_zbx_php_config() {

View File

@ -2,6 +2,9 @@ server {
listen 8080; listen 8080;
listen [::]:8080; listen [::]:8080;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
index {HTTP_INDEX_FILE}; index {HTTP_INDEX_FILE};

View File

@ -2,6 +2,9 @@ server {
listen 8443 ssl http2; listen 8443 ssl http2;
listen [::]:8443 ssl http2; listen [::]:8443 ssl http2;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
server_name_in_redirect off; server_name_in_redirect off;

View File

@ -35,6 +35,15 @@ NGINX_SSL_CONFIG_DIR="/etc/ssl/nginx"
# PHP-FPM configuration file # PHP-FPM configuration file
PHP_CONFIG_FILE="/etc/php/8.3/fpm/pool.d/zabbix.conf" PHP_CONFIG_FILE="/etc/php/8.3/fpm/pool.d/zabbix.conf"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//./\\.}"
echo "$var_value"
}
# usage: file_env VAR [DEFAULT] # usage: file_env VAR [DEFAULT]
# as example: file_env 'MYSQL_PASSWORD' 'zabbix' # as example: file_env 'MYSQL_PASSWORD' 'zabbix'
# (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file) # (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file)
@ -229,6 +238,27 @@ prepare_web_server() {
sed -i \ sed -i \
-e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \ -e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \
"$NGINX_CONF_FILE" "$NGINX_CONF_FILE"
[ ! -z "${WEB_REAL_IP_FROM}" ] && WEB_REAL_IP_FROM="set_real_ip_from ${WEB_REAL_IP_FROM};"
WEB_REAL_IP_FROM=$(escape_spec_char "$WEB_REAL_IP_FROM")
[ ! -z "${WEB_REAL_IP_HEADER}" ] && WEB_REAL_IP_HEADER="real_ip_header ${WEB_REAL_IP_HEADER};"
WEB_REAL_IP_HEADER=$(escape_spec_char "$WEB_REAL_IP_HEADER")
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
} }
prepare_zbx_php_config() { prepare_zbx_php_config() {

View File

@ -258,6 +258,10 @@ PHP_FPM_PM_START_SERVERS=5
PHP_FPM_PM_MIN_SPARE_SERVERS=5 PHP_FPM_PM_MIN_SPARE_SERVERS=5
PHP_FPM_PM_MAX_SPARE_SERVERS=35 PHP_FPM_PM_MAX_SPARE_SERVERS=35
PHP_FPM_PM_MAX_REQUESTS=0 PHP_FPM_PM_MAX_REQUESTS=0
Allowed Nginx configuration options:
WEB_REAL_IP_FROM=
WEB_REAL_IP_HEADER=
``` ```
## Allowed volumes for the Zabbix web interface container ## Allowed volumes for the Zabbix web interface container

View File

@ -2,6 +2,9 @@ server {
listen 8080; listen 8080;
listen [::]:8080; listen [::]:8080;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
index {HTTP_INDEX_FILE}; index {HTTP_INDEX_FILE};

View File

@ -4,6 +4,9 @@ server {
http2 on; http2 on;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
server_name_in_redirect off; server_name_in_redirect off;

View File

@ -35,6 +35,15 @@ NGINX_SSL_CONFIG_DIR="/etc/ssl/nginx"
# PHP-FPM configuration file # PHP-FPM configuration file
PHP_CONFIG_FILE="/etc/php84/php-fpm.d/zabbix.conf" PHP_CONFIG_FILE="/etc/php84/php-fpm.d/zabbix.conf"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//./\\.}"
echo "$var_value"
}
# usage: file_env VAR [DEFAULT] # usage: file_env VAR [DEFAULT]
# as example: file_env 'MYSQL_PASSWORD' 'zabbix' # as example: file_env 'MYSQL_PASSWORD' 'zabbix'
# (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file) # (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file)
@ -228,6 +237,27 @@ prepare_web_server() {
sed -i \ sed -i \
-e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \ -e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \
"$NGINX_CONF_FILE" "$NGINX_CONF_FILE"
[ ! -z "${WEB_REAL_IP_FROM}" ] && WEB_REAL_IP_FROM="set_real_ip_from ${WEB_REAL_IP_FROM};"
WEB_REAL_IP_FROM=$(escape_spec_char "$WEB_REAL_IP_FROM")
[ ! -z "${WEB_REAL_IP_HEADER}" ] && WEB_REAL_IP_HEADER="real_ip_header ${WEB_REAL_IP_HEADER};"
WEB_REAL_IP_HEADER=$(escape_spec_char "$WEB_REAL_IP_HEADER")
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
} }
prepare_zbx_php_config() { prepare_zbx_php_config() {

View File

@ -2,6 +2,9 @@ server {
listen 8080; listen 8080;
listen [::]:8080; listen [::]:8080;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
index {HTTP_INDEX_FILE}; index {HTTP_INDEX_FILE};

View File

@ -2,6 +2,9 @@ server {
listen 8443 ssl http2; listen 8443 ssl http2;
listen [::]:8443 ssl http2; listen [::]:8443 ssl http2;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
server_name_in_redirect off; server_name_in_redirect off;

View File

@ -35,6 +35,15 @@ NGINX_SSL_CONFIG_DIR="/etc/ssl/nginx"
# PHP-FPM configuration file # PHP-FPM configuration file
PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf" PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//./\\.}"
echo "$var_value"
}
# usage: file_env VAR [DEFAULT] # usage: file_env VAR [DEFAULT]
# as example: file_env 'MYSQL_PASSWORD' 'zabbix' # as example: file_env 'MYSQL_PASSWORD' 'zabbix'
# (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file) # (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file)
@ -228,6 +237,27 @@ prepare_web_server() {
sed -i \ sed -i \
-e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \ -e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \
"$NGINX_CONF_FILE" "$NGINX_CONF_FILE"
[ ! -z "${WEB_REAL_IP_FROM}" ] && WEB_REAL_IP_FROM="set_real_ip_from ${WEB_REAL_IP_FROM};"
WEB_REAL_IP_FROM=$(escape_spec_char "$WEB_REAL_IP_FROM")
[ ! -z "${WEB_REAL_IP_HEADER}" ] && WEB_REAL_IP_HEADER="real_ip_header ${WEB_REAL_IP_HEADER};"
WEB_REAL_IP_HEADER=$(escape_spec_char "$WEB_REAL_IP_HEADER")
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
} }
prepare_zbx_php_config() { prepare_zbx_php_config() {

View File

@ -2,6 +2,9 @@ server {
listen 8080; listen 8080;
listen [::]:8080; listen [::]:8080;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
index {HTTP_INDEX_FILE}; index {HTTP_INDEX_FILE};

View File

@ -2,6 +2,9 @@ server {
listen 8443 ssl http2; listen 8443 ssl http2;
listen [::]:8443 ssl http2; listen [::]:8443 ssl http2;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
server_name_in_redirect off; server_name_in_redirect off;

View File

@ -35,6 +35,15 @@ NGINX_SSL_CONFIG_DIR="/etc/ssl/nginx"
# PHP-FPM configuration file # PHP-FPM configuration file
PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf" PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//./\\.}"
echo "$var_value"
}
# usage: file_env VAR [DEFAULT] # usage: file_env VAR [DEFAULT]
# as example: file_env 'MYSQL_PASSWORD' 'zabbix' # as example: file_env 'MYSQL_PASSWORD' 'zabbix'
# (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file) # (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file)
@ -228,6 +237,27 @@ prepare_web_server() {
sed -i \ sed -i \
-e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \ -e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \
"$NGINX_CONF_FILE" "$NGINX_CONF_FILE"
[ ! -z "${WEB_REAL_IP_FROM}" ] && WEB_REAL_IP_FROM="set_real_ip_from ${WEB_REAL_IP_FROM};"
WEB_REAL_IP_FROM=$(escape_spec_char "$WEB_REAL_IP_FROM")
[ ! -z "${WEB_REAL_IP_HEADER}" ] && WEB_REAL_IP_HEADER="real_ip_header ${WEB_REAL_IP_HEADER};"
WEB_REAL_IP_HEADER=$(escape_spec_char "$WEB_REAL_IP_HEADER")
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
} }
prepare_zbx_php_config() { prepare_zbx_php_config() {

View File

@ -2,6 +2,9 @@ server {
listen 8080; listen 8080;
listen [::]:8080; listen [::]:8080;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
index {HTTP_INDEX_FILE}; index {HTTP_INDEX_FILE};

View File

@ -2,6 +2,9 @@ server {
listen 8443 ssl http2; listen 8443 ssl http2;
listen [::]:8443 ssl http2; listen [::]:8443 ssl http2;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
server_name_in_redirect off; server_name_in_redirect off;

View File

@ -35,6 +35,15 @@ NGINX_SSL_CONFIG_DIR="/etc/ssl/nginx"
# PHP-FPM configuration file # PHP-FPM configuration file
PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf" PHP_CONFIG_FILE="/etc/php-fpm.d/zabbix.conf"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//./\\.}"
echo "$var_value"
}
# usage: file_env VAR [DEFAULT] # usage: file_env VAR [DEFAULT]
# as example: file_env 'MYSQL_PASSWORD' 'zabbix' # as example: file_env 'MYSQL_PASSWORD' 'zabbix'
# (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file) # (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file)
@ -228,6 +237,27 @@ prepare_web_server() {
sed -i \ sed -i \
-e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \ -e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \
"$NGINX_CONF_FILE" "$NGINX_CONF_FILE"
[ ! -z "${WEB_REAL_IP_FROM}" ] && WEB_REAL_IP_FROM="set_real_ip_from ${WEB_REAL_IP_FROM};"
WEB_REAL_IP_FROM=$(escape_spec_char "$WEB_REAL_IP_FROM")
[ ! -z "${WEB_REAL_IP_HEADER}" ] && WEB_REAL_IP_HEADER="real_ip_header ${WEB_REAL_IP_HEADER};"
WEB_REAL_IP_HEADER=$(escape_spec_char "$WEB_REAL_IP_HEADER")
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
} }
prepare_zbx_php_config() { prepare_zbx_php_config() {

View File

@ -2,6 +2,9 @@ server {
listen 8080; listen 8080;
listen [::]:8080; listen [::]:8080;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
index {HTTP_INDEX_FILE}; index {HTTP_INDEX_FILE};

View File

@ -2,6 +2,9 @@ server {
listen 8443 ssl http2; listen 8443 ssl http2;
listen [::]:8443 ssl http2; listen [::]:8443 ssl http2;
{WEB_REAL_IP_FROM}
{WEB_REAL_IP_HEADER}
server_name zabbix; server_name zabbix;
server_name_in_redirect off; server_name_in_redirect off;

View File

@ -35,6 +35,15 @@ NGINX_SSL_CONFIG_DIR="/etc/ssl/nginx"
# PHP-FPM configuration file # PHP-FPM configuration file
PHP_CONFIG_FILE="/etc/php/8.3/fpm/pool.d/zabbix.conf" PHP_CONFIG_FILE="/etc/php/8.3/fpm/pool.d/zabbix.conf"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//./\\.}"
echo "$var_value"
}
# usage: file_env VAR [DEFAULT] # usage: file_env VAR [DEFAULT]
# as example: file_env 'MYSQL_PASSWORD' 'zabbix' # as example: file_env 'MYSQL_PASSWORD' 'zabbix'
# (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file) # (will allow for "$MYSQL_PASSWORD_FILE" to fill in the value of "$MYSQL_PASSWORD" from a file)
@ -228,6 +237,27 @@ prepare_web_server() {
sed -i \ sed -i \
-e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \ -e "s/{EXPOSE_WEB_SERVER_INFO}/${EXPOSE_WEB_SERVER_INFO}/g" \
"$NGINX_CONF_FILE" "$NGINX_CONF_FILE"
[ ! -z "${WEB_REAL_IP_FROM}" ] && WEB_REAL_IP_FROM="set_real_ip_from ${WEB_REAL_IP_FROM};"
WEB_REAL_IP_FROM=$(escape_spec_char "$WEB_REAL_IP_FROM")
[ ! -z "${WEB_REAL_IP_HEADER}" ] && WEB_REAL_IP_HEADER="real_ip_header ${WEB_REAL_IP_HEADER};"
WEB_REAL_IP_HEADER=$(escape_spec_char "$WEB_REAL_IP_HEADER")
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_FROM}/${WEB_REAL_IP_FROM}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx.conf"
sed -i \
-e "s/{WEB_REAL_IP_HEADER}/${WEB_REAL_IP_HEADER}/g" \
"$ZABBIX_CONF_DIR/nginx_ssl.conf"
} }
prepare_zbx_php_config() { prepare_zbx_php_config() {

View File

@ -48,3 +48,6 @@ ZBX_SERVER_NAME=Composed installation
# PHP_FPM_PM_MIN_SPARE_SERVERS=5 # PHP_FPM_PM_MIN_SPARE_SERVERS=5
# PHP_FPM_PM_MAX_SPARE_SERVERS=35 # PHP_FPM_PM_MAX_SPARE_SERVERS=35
# PHP_FPM_PM_MAX_REQUESTS=0 # PHP_FPM_PM_MAX_REQUESTS=0
#WEB_REAL_IP_FROM=
#WEB_REAL_IP_HEADER=