Я использую Apache 2.4 при тестировании Debian. У меня есть vhost под сайтами, и все в этом домене работает нормально, кроме ограничения IP-доступа. Я хочу, чтобы только указанные ниже IP-адреса имели доступ к сайту и больше ничего.
Я редактирую конфигурацию, как показано ниже, и перезапускаю Apache (используя systemd ). Сайты работают так же, как и я, но через некоторое время кажется, что Apache начинает забывать приведенные ниже правила и применяет ограничения ко всему домену. В основном доступ к локальным IP-адресам ниже не работает. Я заблокирован независимо от того, из Китая я или дома.
DOMAIN/somepage
доступен через локальные соединения, которые у меня есть здесь, в течение нескольких минут. Затем (не уверен, может быть, 10-15 минут) я больше не могу получить к ним доступ, как будто Apache думает, что у меня есть какой-то удаленный IP.
Попытка подключиться с нелокального IP-адреса заблокирована, поэтому кажется, что это работает, но я не знаю, почему Apache считает, что мой IP-адрес внезапно становится внешним.
Server version: Apache/2.4.43 (Debian)
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName DOMAIN
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/DOMAIN/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/DOMAIN/chain.pem
RequestHeader set X-Forwarded-Proto "https"
ErrorLog /var/log/apache2/DOMAIN.log
CustomLog /var/log/apache2/DOMAIN.log combined
RewriteEngine On
RewriteEngine on
RedirectMatch 404 ^/site$
RewriteRule ^/site /nonexistent [L]
Redirect permanent /site/ https://DOMAIN/.nonexisting/
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php7.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
<Location /somepage>
<RequireAny>
Require ip 192.168.1
Require ip 10.3.0 #VPN
Require local
</RequireAny>
</Location>
<Directory />
Options FollowSymLinks
AllowOverride All
#Allow from all
</Directory>
</VirtualHost>