<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Lassi's homepage</provider_name><provider_url>https://lassinsivut.eu/en</provider_url><title>Nginx Proxy Manager GeoBlocking - Lassin kotisivut</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="OKCDRFp4XR"&gt;&lt;a href="https://lassinsivut.eu/en/nginx-proxy-manager-geoblocking/"&gt;Nginx Proxy Manager GeoBlocking&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://lassinsivut.eu/en/nginx-proxy-manager-geoblocking/embed/#?secret=OKCDRFp4XR" width="600" height="338" title="&#x201C;Nginx Proxy Manager GeoBlocking&#x201D; &#x2014; Lassin kotisivut" data-secret="OKCDRFp4XR" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script&gt;
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://lassinsivut.eu/wp-includes/js/wp-embed.min.js
&lt;/script&gt;</html><thumbnail_url>https://lassinsivut.eu/wp-content/uploads/2026/03/geolocation.png</thumbnail_url><thumbnail_width>1280</thumbnail_width><thumbnail_height>640</thumbnail_height><description>GeoBlocking Nginx Proxy Managerilla Geoblokki tarkoittaa tiettyjen maiden tai alueiden IP-osoitteiden est&#xE4;mist&#xE4; p&#xE4;&#xE4;sem&#xE4;st&#xE4; palveluun. Sen tarkoituksena on parantaa tietoturvaa ja v&#xE4;hent&#xE4;&#xE4; turhaa liikennett&#xE4; esimerkiksi silloin, kun palvelua k&#xE4;ytet&#xE4;&#xE4;n vain tietyss&#xE4; maassa. N&#xE4;in voidaan est&#xE4;&#xE4; haitallisia kirjautumisyrityksi&#xE4; ja pienent&#xE4;&#xE4; palvelimen kuormitusta. Dockerin asennus Asennetaan Docker ensin k&#xE4;tev&#xE4;sti heid&#xE4;n valmiilla bash scriptill&#xE4;. curl -fsSL https://get.docker.com | sudo sh Tehd&#xE4;&#xE4;n kansio Nginxille. mkdir -p /docker/npm cd /docker/npm Luodaan Docker compose tiedosto johon kaikki konfiguraatiot tulevat. nano compose.yaml &#x1F433; compose.yaml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: # These ports are in format &lt;host-port&gt;:&lt;container-port&gt; - '80:80' # Public HTTP Port - '443:443' # Public HTTPS Port - '81:81' # Admin Web Port # Add any other Stream port you want to expose # - '21:21' # FTP environment: # Mysql/Maria connection parameters: DB_MYSQL_HOST: "db" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" DB_MYSQL_PASSWORD: "npm" DB_MYSQL_NAME: "npm" # Uncomment this if IPv6 is not enabled on your host # DISABLE_IPV6: 'true' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt - ./data/nginx/custom:/etc/nginx/conf.d/custom depends_on: - db db: image: 'jc21/mariadb-aria:latest' restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' volumes: - ./mysql:/var/lib/mysql geoip-upd: container_name: geoip-upd image: maxmindinc/geoipupdate:latest restart: unless-stopped volumes: - ./data/geoip2:/usr/share/GeoIP environment: TZ: "Europe/Helsinki" GEOIPUPDATE_ACCOUNT_ID: 1234567 GEOIPUPDATE_LICENSE_KEY: "keykeykeykeykeykeykeykey" GEOIPUPDATE_EDITION_IDS: "GeoLite2-City GeoLite2-Country GeoLite2-ASN" #Databaset joita tarvimme GEOIPUPDATE_FREQUENCY: 12 #Kuinka usein database p&#xE4;ivittyy GEOIPUPDATE_PRESERVE_FILE_TIMES: 1 #Todellinen aika tiedostolle Seuraavaksi ladataan tarvittavat moduulit. nano /docker/npm/data/nginx/custom/root_top.conf root_top.conf load_module /usr/lib/nginx/modules/ngx_http_geoip2_module.so; load_module /usr/lib/nginx/modules/ngx_stream_geoip2_module.so; Uudelleen k&#xE4;ynnistet&#xE4;&#xE4;n containeri jotta muutokset tulevat voimaan. docker exec -it docker-npm nginx -s reload Tarkista kuitenkin oman containerin nimi seuraavalla komennolla. docker ps Tietokannan lataaminen Mene osoitteeseen https://www.maxmind.com/en/geolite2/signup K&#xE4;yt&#xE4;mme maxmindin tarjoavaa geoip datasettej&#xE4;, ne p&#xE4;ivittyv&#xE4;t yll&#xE4;tt&#xE4;v&#xE4;n nopeasti. Luo uusi license key ja ota talteen account ID, License Key sek&#xE4; n&#xE4;m&#xE4;: GeoLite2-ASN, GeoLite2-Country ja GeoLite2-City Lis&#xE4;tty&#xE4;si tarvittavat tunnukset Docker Compose tiedostoon ja k&#xE4;ynnist&#xE4;m&#xE4;ll&#xE4; Containerin n&#xE4;emme tiedostot. docker compose up -d ls -l /docker/npm/data/geoip2 Tietokannan konfigurointi Nginx Proxy Managerille Luodaan uusi tiedosto joka k&#xE4;sittelee tietokannan sis&#xE4;ll&#xF6;n ja parsii sielt&#xE4; mm.country coden, nimen, cityn sek&#xE4; regionin. T&#xE4;ss&#xE4; ohjeessa p&#xE4;&#xE4;st&#xE4;mme vain Saksasta liikenteen. nano /docker/npm/data/nginx/custom/http_top.conf http_top.conf charset utf-8; geoip2 /data/geoip2/GeoLite2-City.mmdb { auto_reload 3h; $geoip2_metadata_country_build metadata build_epoch; $geoip2_data_country_code default=XX source=$remote_addr country iso_code; $geoip2_data_country_name default=- country names de; $geoip2_data_city_name default=- city names de; $geoip2_data_region_name default=- subdivisions 0 names de; } geo $allowed_ip { default no; # Blockaa oletuksena 10.10.1.0/24 yes; # Whitelistaa locaali verkko } map $geoip2_data_country_code $allowed_country { default $allowed_ip; DE yes; # Vain Saksa voit lis&#xE4;t&#xE4; lis&#xE4;&#xE4; maita } #Formaatti logille, my&#xF6;hemmin my&#xF6;s Grafanaa varten log_format json_analytics escape=json '{' '"time_local": "$time_local", ' '"remote_addr": "$remote_addr", ' '"request_uri": "$request_uri", ' '"status": "$status", ' '"server_name": "$server_name", ' '"request_time": "$request_time", ' '"request_method": "$request_method", ' '"bytes_sent": "$bytes_sent", ' '"http_host": "$http_host", ' '"http_x_forwarded_for": "$http_x_forwarded_for", ' '"http_cookie": "$http_cookie", ' '"server_protocol": "$server_protocol", ' '"upstream_addr": "$upstream_addr", ' '"upstream_response_time": "$upstream_response_time", ' '"ssl_protocol": "$ssl_protocol", ' '"ssl_cipher": "$ssl_cipher", ' '"http_user_agent": "$http_user_agent", ' '"remote_user": "$remote_user" ' '}'; Login n&#xE4;et t&#xE4;ll&#xE4; komennolla. tail -f /dockers/nginx-proxym/data/logs/proxy-host-%HOSTID%_access-geo.log Lis&#xE4;t&#xE4;&#xE4;n viel&#xE4; Proxy Manageriin. Avaa Nginx Proxy manager WebUI ja paina Proxy Hosts, sen j&#xE4;lkeen Add proxy Host. Kirjoita haluamasi domain, paikallinen osoite sek&#xE4; portti. Lis&#xE4;&#xE4; viel&#xE4; asetukset&#xA0;Block Common Exploits sek&#xE4;&#xA0;Websocket Support. Seuraavaksi paina oikealta ylh&#xE4;&#xE4;lt&#xE4; asetus kuvaketta ja lis&#xE4;&#xE4; seuraava koodi. if ($allowed_country = no) { return 444; } Nyt on kaikki valmista, ett&#xE4; geoblokki on yksinkertainen mutta tehokas keino parantaa palvelun turvallisuutta ja hallittavuutta. Toteuttamalla sen Nginx Proxy Managerin avulla saamme helposti yll&#xE4;pidett&#xE4;v&#xE4;n ratkaisun, jota voidaan tarvittaessa muokata nopeasti. N&#xE4;in varmistamme, ett&#xE4; palvelu pysyy suojattuna ja toimii optimaalisesti vain halutuille k&#xE4;ytt&#xE4;jille.</description></oembed>
