
NGINX를 WAF(웹 애플리케이션 방화벽)로 설정하고 있습니다.
NGINX 역방향 프록시가 제대로 작동합니다.https://호스트 이름/, 하지만 만들고 싶습니다https://호스트 이름/관리자Webmin 인터페이스로 프록시됩니다.
시나리오는 다음과 같습니다. 인터넷 NET = 0.0.0.0/32 네트워크 LAN = 6.0.0.0/8 네트워크 DMZ = 11.0.0.0/8
NET=(라우터)=LAN=(nginx)=DMZ=(몇몇 가상 머신) |--->dmz>---|
지금까지는 모두 잘 작동하지만 이제는 호스트 이름 끝에 /admin을 추가하여 액세스할 각 가상 머신에 Webmin을 만들고 싶습니다.
~와 같은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으로 이동하거나www.FQDN.com/admin