NGINX を使用して /admin で Webmin をプロキシする

NGINX を使用して /admin で Webmin をプロキシする

NGINX を WAF (Web アプリケーション ファイアウォール) として設定しています。

NGINXリバースプロキシは正常に動作していますhttps://ホスト名/、しかし私はhttps://ホスト名/adminWebmin インターフェースにプロキシされます。

シナリオは次のとおりです: インターネット NET = 0.0.0.0/32 ネットワーク LAN = 6.0.0.0/8 ネットワーク DMZ = 11.0.0.0/8

NET=(ルーター)=LAN=(nginx)=DMZ=(いくつかの仮想マシン) |--->dmz>---|

これまでのところすべて正常に動作していますが、今度は各仮想マシンにWebminを作成し、ホスト名の末尾に/adminを追加してアクセスできるようにしたいと思います。

のようなhttps://nas/admin

/etc/nginx/sites-enabled にある設定ファイルの例は次のとおりです。

server {
    listen 443 ssl; # managed by Certbot
    server_name nas;
    location /.well-known {
            alias /var/www/nas/.well-known;
    }
    location / {
        proxy_buffers 16 4k;
        proxy_buffer_size 2k;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_pass          https://11.0.0.12:443;
        proxy_read_timeout  90;
    }
    location /admin {
        proxy_pass          https://11.0.0.12:10000;
    }
    client_max_body_size 10G;
    ssl_certificate /etc/letsencrypt/live/nas/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/nas/privkey.pem;
}

server {
    listen 80;
    server_name nas;
        return 301 https://$host$request_uri;
}

何が間違っているのでしょうか?

答え1

画像/スタイルが失われる問題について:

Webmin インターフェースは、おそらく相対パスと絶対パスを組み合わせて使用​​します。そのため、画像を取得できません。サブモジュールが必要です:--with-http_sub_module

次のようなものが役に立つかもしれません:

location /admin {
    sub_filter 'https://11.0.0.12:10000/' '/';
    sub_filter_once off;
    proxy_pass          https://11.0.0.12:10000;
}

リダイレクトの問題については、これが役立つ可能性があります:

proxy_redirect https://11.0.0.12:10000/  /;

または

proxy_redirect /  /admin/;

答え2

これを試して:

location /admin/ { 
    rewrite ^/admin/?(.*)$ /$1 break;
    proxy_pass          https://11.0.0.12:10000; 
}

答え3

追加のモジュールは必要ありません。いくつかの webmin 設定が必要です。

sudo nano /etc/nginx/sites-available/FQDN.conf

location /admin/ {
      # proxy_buffering       off;
        proxy_pass            http://127.0.0.1:10000/;
        proxy_set_header      Host $host;
        proxy_set_header      X-Forwarded-For $http_x_forwarded_for;
        proxy_redirect        http://$host:10000/ http://$host/admin/;
}

保存して閉じます。

sudo nginx -t
sudo systemctl reload nginx

Webmin設定を更新する

sudo nano /etc/webmin/config

EOFに追加

relative_redir=0
referers=www.FQDN.com FQDN.com
webprefix=/admin
webprefixnoredir=1

保存して閉じます。
ミニサーブを更新します

sudo nano /etc/webmin/miniserv.conf

変更ssl=1> ssl=0 (これは、nginx が最初に SSL を処理する必要があるためです)

EOFに追加

ssl_redirect=0

コマンドを実行:

sudo systemctl restart webmin

FQDN.com/adminにアクセスするか、管理者

関連情報