100 lines
3.6 KiB
Nginx Configuration File
Executable File
100 lines
3.6 KiB
Nginx Configuration File
Executable File
load_module /usr/lib/nginx/modules/ngx_http_geoip2_module.so;
|
|
worker_processes 1;
|
|
events { worker_connections 1024; }
|
|
|
|
http {
|
|
|
|
sendfile on;
|
|
client_max_body_size 1500M;
|
|
server_names_hash_bucket_size 1024;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header X-Forwarded-Scheme $scheme;
|
|
proxy_set_header Accept-Encoding "";
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Host $server_name;
|
|
|
|
#compression settings
|
|
gzip on;
|
|
gzip_types text/plain application/xml application/json image/svg+xml text/css;
|
|
gzip_min_length 1000;
|
|
|
|
#custom log format to display the webiste visited and the IP used
|
|
log_format my_custom_format '$http_host \t $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
|
|
log_format ip_audit '$remote_addr [$time_local]';
|
|
log_format backend_debug '$remote_addr - $remote_user [$time_local] '
|
|
'"$request" $status $body_bytes_sent '
|
|
'"$http_referer" "$http_user_agent" '
|
|
'upstream_status=$upstream_status';
|
|
log_format localization '$remote_addr - $remote_user [$time_local] '
|
|
'"$request" $status $body_bytes_sent '
|
|
'"$http_referer" "$http_user_agent" '
|
|
'$geoip2_data_city_name $geoip2_data_country_name';
|
|
log_format blocked_fmt '$http_host \t $remote_addr - [$time_local] '
|
|
'Blocked Country: $geoip2_data_country_iso_code '
|
|
'"$request" $status';
|
|
|
|
log_format deny_style 'deny $remote_addr; #$geoip2_data_city_name $geoip2_data_country_name';
|
|
|
|
server {
|
|
listen 80;
|
|
listen 443 default ssl;
|
|
ssl_certificate /etc/nginx/ssl/live/default.tryton.geeraert.eu/fullchain.pem; # managed by$
|
|
ssl_certificate_key /etc/nginx/ssl/live/default.tryton.geeraert.eu/privkey.pem; # managed $
|
|
location / {
|
|
proxy_pass http://1.1.1.1;
|
|
proxy_redirect off;
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Host $server_name;
|
|
}
|
|
}
|
|
|
|
# Connection header for WebSocket reverse proxy
|
|
map $http_upgrade $connection_upgrade {
|
|
default upgrade;
|
|
'' close;
|
|
}
|
|
|
|
geoip2 /data/dbip-country-lite-2026-01.mmdb{
|
|
$geoip2_data_country_iso_code country iso_code;
|
|
$geoip2_data_city_name city names en;
|
|
$geoip2_data_country_name country names en;
|
|
}
|
|
|
|
map $geoip2_data_country_iso_code:$ssl_client_verify $allowed_country {
|
|
default no;
|
|
FR yes; # Allow France
|
|
GB yes; # Allow UK
|
|
#NL yes; # Allow netherland
|
|
#IN yes; # Allow India
|
|
}
|
|
# Full list of country codes: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
|
|
|
|
map $allowed_country $should_log_blocked {
|
|
no 1;
|
|
default 0;
|
|
}
|
|
|
|
include /etc/nginx/deny.d/*.conf;
|
|
include /etc/nginx/conf.d/*.conf;
|
|
include /etc/nginx/blacklisted.d/*.conf;
|
|
|
|
# adding this line for the fial2ban settings
|
|
#map $cookie_session_id $blck_lst_ses { include /etc/nginx/blacklisted.d/blacklisted-sessions.map; }
|
|
#add extra file for any extra work
|
|
include /etc/nginx/extra.conf.d/*.conf;
|
|
|
|
|
|
resolver 127.0.0.1 ipv6=off valid=40s; # The DNS IP server
|
|
|
|
#https://www.tweaked.io/guide/nginx-proxying/
|
|
proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache:60m max_size=1G;
|
|
|
|
|
|
}
|
|
|
|
|