
도움을 받을 수 있을지 궁금합니다. 맞춤 403 페이지를 제공할 수 없습니다. 저는 geoip 모듈을 사용하여 몇 개의 IP 주소를 차단하고 있습니다. 사용자 정의 XML 파일을 403으로 제공해야 합니다. 내 문제는 지침에 따라 모든 것을 설정했음에도 불구하고 여전히 기본 nginx 403 페이지가 표시된다는 것입니다. 내 /etc/nginx/sites-enabled/default를 살펴보고 잘못된 부분이 무엇인지 알려주세요.
.....
###redirect IP_1
geo $bad_user {
default 0;
bad.ip.1/32 1;
bad.ip.2/32 1;
}
server {
....
####custom 403 error page for ip block
error_page 403 /error.xml;
location = /error.xml {
root /var/www/static;
allow all;
}
####redirect IP_2
if ($bad_user) {
return 403;
}
디렉터리와 xml 파일에 올바른 권한이 있는지 확인했습니다. geoip 블록을 비활성화하면 error.xml 파일에 액세스할 수 있습니다. 생각이나 아이디어가 있거나 제가 제공할 수 있는 다른 정보가 있으면 알려주시기 바랍니다.
당신의 도움을 주셔서 감사합니다
답변1
우리는 문제를 해결할 수 있었습니다. 오류 페이지와 "잘못된 사용자인 경우"는 서버 블록에 있어야 합니다. 이것이 다른 누군가에게 도움이 되기를 바랍니다. 도움을 주셔서 감사합니다.
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www;
index index.html index.htm;
allow all;
error_page 403 /error.xml;
if ($bad_user) {
return 403;
}
}
...
}