mod_wsgi を介して Apache で web2py アプリケーションを実行しています。 ソース IP に基づいて管理ページ (www.myapp.com/admin) へのアクセスを制限するにはどうすればよいですか?
理想的には、Apache 内で直接行うのが 2 つの理由です: 1) Apache はソース IP へのより効果的なアクセスを持っていると思います [要出典] 2) 特定の IP をブロックするために web2py のストック管理ページを変更したくありません。 .
私の(要約された)構成は次のようになります。
<VirtualHost *:80>
WSGIDaemonProcess web2py user=myapp group=myapp
WSGIProcessGroup web2py
WSGIScriptAlias / /home/myapp/myapp/wsgihandler.py
TimeOut 45
ServerName myapp.com
ServerAlias www.myapp.com
<Directory /home/myapp/myapp>
AllowOverride None
Order Allow,Deny
Deny from all
<Files wsgihandler.py>
Allow from all
</Files>
</Directory>
#======================================
# THIS IS WHAT I TRIED THAT DIDN'T WORK
<Directory /home/myapp/myapp/admin>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
#======================================
AliasMatch ^/static/(.*) \
/home/myapp/myapp/applications/myapp/static/$1
<Directory /home/myapp/myapp/applications/myapp/static/>
Options -Indexes
Order Allow,Deny
Allow from all
</Directory>
# HTTPS enforcement
# Out of convenience, forward /a* to https, covers /admin /appadmin and /a (front facing admin)
RedirectMatch ^/a(.*) https://myapp.com/a$1
RedirectMatch ^/c/(.*) https://myapp.com/c/$1
RedirectMatch ^/w/user/login(?:/(.*)|$) https://myapp.com/w/user/login/$1
RedirectMatch ^/w/user/register(?:/(.*)|$) https://myapp.com/w/user/register/$1
CustomLog /var/log/apache2/access.log common
ErrorLog /var/log/apache2/error.log
</VirtualHost>
ポート 443 に同様の VirtualHost があることに注意してください。冗長性のために含めていません。
通常、ディレクトリ表記のようなものを使用して特定のディレクトリへのアクセスを拒否できることを理解しています。ただし、上記は機能しませんでした。WSGIScriptAlias ディレクティブと関係があるのでしょうか。