보안상의 이유로 nobody 계정으로 nginx 를 시작하였다.
# 방법1
# 루트 경로나 /home 아래에 html 디렉토리를 옮기고 이쪽으로 정적 리소스를 서빙한다.
그리고 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 가 있어야 한다.
+x추가한 사례: https://gist.github.com/jhjguxin/6208474
보안상의 이유로 other 권한에 실행권한을 줄수 없다면
# 방법1
# 루트 경로나 /home 아래에 html 디렉토리를 옮기고 이쪽으로 정적 리소스를 서빙한다.
# nginx.conf 설정에서 /check.txt 의 루트 디렉토리를 다음처럼 변경한다.
location /check.txt {
location /check.txt {
allow all;
root /home/html;
}
root /home/html;
}
# /home/html other 권한에 +x 추가한다.
sudo chmod -R +x /home/html
# 방법2
# nobody 계정의 그룹에 ysoftman 그룹을 추가한다.
sudo groupadd ysoftman
# 그룹확인
groups nobody
# 방법2
# nobody 계정의 그룹에 ysoftman 그룹을 추가한다.
sudo groupadd ysoftman
# 그룹확인
groups nobody