nginx 홈디렉토리의 정적 리소스 접속 403 에러

nginx 를 사용자 홈디렉토리(/home/ysoftman/nginx) 에 설치하였다.
보안상의 이유로 nobody 계정으로 nginx 를 시작하였다.
그리고 index.html favicon.ico  check.txt(헬스체크를 위한)등의 정적 리소스도 /home/ysoftman/nginx/html/으로 서비스를 할때

http://localhost/check.txt 접속을하면 403 에러가 발생한다.

원인은 /home/ysoftman 의 other 권한에 x(실행)권한이 없어서다.
실행 권한을 주면 된다.
r(읽기) 권한만 줘면 안된다.
/home 의 other 에도 x권한이 있어야 한다.
즉 nginx static 절대 경로의 모든 other +x 가 있어야 한다.


보안상의 이유로 other 권한에 실행권한을 줄수 없다면

# 방법1
# 루트 경로나 /home 아래에 html 디렉토리를 옮기고 이쪽으로 정적 리소스를 서빙한다.
# nginx.conf 설정에서 /check.txt 의 루트 디렉토리를 다음처럼 변경한다.
location /check.txt {
    allow all;
    root   /home/html;
}

# /home/html other 권한에 +x 추가한다.
sudo chmod -R +x /home/html

# 방법2
# nobody 계정의 그룹에 ysoftman 그룹을 추가한다.
sudo groupadd ysoftman

# 그룹확인
groups nobody

comments:

댓글 쓰기