[Nginx] 배포시 403 forbidden 주의

hyozkim·2020년 12월 10일
2

Nginx Server 배포

Nginx서버 설치 후 프로젝트 파일.html파일에 접근하는 방법 기술

Nginx Path 설정

sudo find / -name nginx.conf
/etc/nginx/nginx.conf

nginx.conf를 보면 아래의 default.conf 파일은 include 되어있는 것을 알 수 있습니다.

sudo vi /etc/nginx/conf.d/default.conf

기본 설정을 확인하고 수정할 것

server {
   listen       80;
   server_name  localhost;

   #charset koi8-r;
   #access_log  /var/log/nginx/log/host.access.log  main;

   location / {
       root   /usr/share/nginx/html; // 변경할 경로, 컨테이너 프로젝트 경로를 넣어줍니다.
       index  index.html index.htm;
   }

   #error_page  404              /404.html;

   # redirect server error pages to the static page /50x.html
   #
   error_page   500 502 503 504  /50x.html;
   location = /50x.html {
       root   /usr/share/nginx/html;
   }

   # proxy the PHP scripts to Apache listening on 127.0.0.1:80
   #
   #location ~ \.php$ {
   #    proxy_pass   http://127.0.0.1;
   #}

   # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
   #
   #location ~ \.php$ {
   #    root           html;
   #    fastcgi_pass   127.0.0.1:9000;
   #    fastcgi_index  index.php;
   #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
   #    include        fastcgi_params;
   #}

   # deny access to .htaccess files, if Apache's document root
   # concurs with nginx's one
   #
   #location ~ /\.ht {
   #    deny  all;
   #}
}

여기서 만약 403 forbidden가 뜨면 해당 경로 접근에 대한 권한이 막혀있다는 것이므로 AWS 서버 경로에 권한을 준다.

/home/ec2-user

명령어 namei -vl /home/ec2-user

[ec2-user@ip-172-31-13-5 home]$ namei -vl ec2-user

f: ec2-user/
drwx------ ec2-user ec2-user ec2-user

부모 폴더까지 권한 정보를 다 보고 부모 폴더에도 권한을 주어야 한다. (chmod 755 /home/ec2-user)

/home/ec2-user/app/git/test-project 프로젝트 경로라 했을때 EC2로 생성된 계정의 홈 디렉토리 권한이 700으로 되어 있으면 자식 디렉토리 권한이 755라도 forbidden이 된다.

profile
차근차근 develog

1개의 댓글

comment-user-thumbnail
2021년 12월 13일

감사합니다 덕분에 많은 도움이 되었어요!!

답글 달기