以外の場所から admin インターフェースと appadmin インターフェースにアクセスできるように web2py サーバーをセットアップするのに大変な時間を費やしていますlocalhost
。ブラウザまたは X サーバー。localhost
外部から web2py の admin または appadmin インターフェイスにアクセスするには、SSL/HTTPS を使用する必要があることを理解しています。
web2py のドキュメントでは、これを行う 2 つの異なる方法が宣言されているようです。まず、一般的な web2py スタートアップ チュートリアルから:
mod_proxy を使用して Apache の背後で web2py を実行しない限り、管理インターフェース admin は localhost からのみアクセスできます。管理者がプロキシを検出すると、セッション cookie はセキュアに設定され、クライアントとプロキシ間の通信が HTTPS 経由でない限り、管理者ログインは機能しません。
これにより、web2py の背後にある web2py と apache をセットアップする方法を Web で検索し、web2py 展開レシピ ページに移動しました。このページでは、 mod_proxy の代わりに mod_wsgi を使用して apache の背後に web2py をセットアップする方法について説明しています。/etc/apache2/sites-available/web2py
これらは、ファイルをapache2.4構文に更新し、ServerNameディレクティブの値を「foo.bar.com」に変更することを除いて、私が現在正確に従っている指示です(省略:サーバーを含むクラウドボックスのドメイン名、これは、この質問全体で foo.bar.com に置き換えられます)。
しかし、私が
Apache を再起動すると、すべてのリクエストが Rocket wsgiserver を経由せずに web2py に渡されます。
その web2py+apache+mod_wsgi チュートリアルの一部ですが、Apache は web2py に何も渡していないようです。チュートリアルの次のステップで説明されているように、先に進み、wsgihandler.py
ファイルを移動しました。現在の状態は次のとおりです。
foo.bar.com:80
別のマシンからブラウズすると、Apache2 Ubuntu デフォルト ページ ("It works!" ページ) が表示されます。- (web2py ポート)をブラウズする
foo.bar.com:8000
と、web2py サーバーのデフォルト インターフェースになりますが、チャネルが安全でないため、admin または appadmin にアクセスできません。 - をブラウズしようとすると
foo.bar.com:443
、汎用の「Index of /」Apache サーバー ページが表示されます。このページの "/" には 1 つのディレクトリ リンク "html" が含まれており、これは Apache2 Ubuntu デフォルト ページ ("It works!" ページ) へのリンクです。
その他の情報:
- に移動した
/home/www-data/web2py
ことを除いて、web2py の未変更のインスタンスがインストールされています。/home/www-data/web2py/handlers/wsgihandler.py
/home/www-data/web2py/wsgihandler.py
/etc/apache2/site-available/
私のディレクトリ の内容は次のとおりです。000-default.conf
(私には触れていません)default-ssl.conf
(私には触れていません)web2py
(私が作成しました)
- 手動でweb2pyを起動しました
python ~/web2py/web2py.py --ip 10.7.166.27
(これはfoo.bar.comのIPです(実際のドメイン名は省略されています)) - apache2 はユーザーとして実行されています
www-data
- サーバーOSはUbuntu Server 14.04 x64
これは私の /etc/apache2/sites-available/web2py ファイルです:
<VirtualHost *:80>
ServerName foo.bar.com
WSGIDaemonProcess web2py user=www-data group=www-data display-name=%{GROUP}
WSGIProcessGroup web2py
WSGIScriptAlias / /home/www-data/web2py/wsgihandler.py
<Directory /home/www-data/web2py>
AllowOverride None
Require all denied
<Files wsgihandler.py>
Require all granted
</Files>
</Directory>
AliasMatch ^/([^/]+)/static/(.*) /users/www-data/web2py/applications/$1/static/$2
<Directory /users/www-data/web2py/applications/*/static/>
Order Allow,Deny
Allow from all
</Directory>
<Location /admin>
Require all denied
</Location>
<LocationMatch ^/([^/]+)/appadmin>
Require all denied
</LocationMatch>
CustomLog /private/var/log/apache2/access.log common
ErrorLog /private/var/log/apache2/error.log
</VirtualHost>
<VirtualHost *:443>
ServerName foo.bar.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
WSGIProcessGroup web2py
WSGIScriptAlias / /users/www-data/web2py/wsgihandler.py
<Directory /users/www-data/web2py>
AllowOverride None
Require all denied
<Files wsgihandler.py>
Require all granted
</Files>
</Directory>
AliasMatch ^/([^/]+)/static/(.*) /users/www-data/web2py/applications/$1/static/$2
<Directory /users/www-data/web2py/applications/*/static/>
Require all granted
</Directory>
CustomLog /private/var/log/apache2/access.log common
ErrorLog /private/var/log/apache2/error.log
</VirtualHost>