ポート10000([サイトドメイン]:10000)の代わりに[サイトドメイン]/webminでwebminを実行するために、nginxを介してwebminのリバースプロキシを作成しました。
[サイトドメイン]/webminにアクセスすると、期待どおりにログインページが表示されますが、ログインしようとすると、ログインページがリロードされるだけです(エラーメッセージも成功もありません)。ログインページには、すべてのアセット(画像、jsなど)が適切にロードされています。
/var/webmin/miniserv.logを見て、私は見ています:105.23.149.76 - - [26/Jul/2015:14:07:13 -0400] "POST //session_login.cgi HTTP/1.0" 401 2892
401(認証されていない)エラーステータスに注意してください。
リバースプロキシを設定する前に、成功したログインは次のようになりました。145.23.98.124 - - [26/Jul/2015:13:34:38 -0400] "GET /admin/config/session_login.cgi HTTP/1.1" 401 2840 145.23.98.124 - root [26/Jul/2015:13:34:44 -0400] "POST /session_login.cgi HTTP/1.1" 200 871
私のシステム認証ログはログイン試行によってpingされないため、webminはPEMを介してログイン呼び出しさえしません(その前に停止されます)。
私のログでこの401エラーを説明できるもの、またはより一般的には、webminログインが機能しない原因を知っている人はいますか?
どうもありがとう!
nginx config:
server {
listen 443 ssl;
server_name site.example.com;
ssl on;
ssl_certificate [ssl cert].crt;
ssl_certificate_key [ssl key].key;
ssl_protocols [ssl protocols];
ssl_ciphers [ssl ciphers];
location /webmin {
proxy_redirect http://127.0.0.1:10000/ https://site.example.com/webmin/;
proxy_pass http://127.0.0.1:10000/;
proxy_set_header Host $Host:$server_port;
}
}
この解決策を試してください、それは私のためにうまく機能します:
/etc/webmin/config
:
webprefix=/webmin
webprefixnoredir=1
relative_redir=0 # pay attention on this
referer=www.examle.com
/etc/webmin/miniserv.conf
:
cookiepath=/webmin
nginx config:
location /webmin/ {
proxy_pass http://localhost:10000/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
追加しないproxy_set_header Host $Host;
を追加すると、動作しません。
Webminは http://www.examle.com/webmin/ で利用できるはずです
お使いのWebブラウザーが問題のあるログインページを自然にキャッシュしている、および/またはログインページに返されるヘッダーが正しくないようです。
ページの読み込み速度を確認してください。ログインしてログインボタンを押したときに、ログイン画面が最初にロードされたときと比べてロード時間がとてつもなく速い場合、前のページがキャッシュされてからリロードされていることがわかります。
この問題を一時的に回避するには、すべての形式のキャッシュを無効にし、Cookieを有効にするようにWebブラウザーを構成します。
また、ログインが成功した後にページが要求されたときに、Cookie値が使用されなかった可能性もあります。これにより、すべてのユーザーがゲストと同じコンテンツを見ることになります。
より技術的になりたい場合は、CURLなどの高度なコマンドラインツールを使用して各リクエストでHTTPヘッダーを検索するか、webpagetest.orgが特にページタイミングで役立つ場合があります。検索する最も重要なヘッダーは次のとおりです。
Set-Cookie
ログインボタンが選択され、正しい資格情報が使用されると、ブラウザに返されるレスポンスには、ユーザーがログインしていることを示すSet-Cookie
を含むHTTPヘッダーが含まれている必要があります。同じブラウザに同じサイトが読み込まれると、Cookieがサーバーに送信され、ユーザーが以前に既にログインしたことが示されます。
また、サーバーリクエストがログに記録される可能性を高めたい場合は、しばらくキャッシュをオフにしてテストを行ってください。特にページに常に同じ画像が含まれている場合は、いくつかのエントリが繰り返し表示されることがあります。