WEB WAS/WEB

[nginx] nginx root경로 변경방법 및 403에러

홍또~ 2020. 10. 5. 15:54

1.ROOT경로변경법

nginx를 yum 설치시 기본경로는  /usr/share/nginx/html 이다.

하지만 기본경로를 바꾸고싶다면?

nginx설치경로/conf.d 에서

vi 에디터로 defualt.conf 를 연다

 location / {
       root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

 다음 부분의 root 경로를 원하는 소스가 있는 경로로 변경해주면 된다.

여기서 location은 url뒤에 붙는 경로로 만약 abc/test 아래에 소스가있다면,

 location /test {
       root   /abc;
        index  index.html index.htm;
    }

위와같이 설정하면 url에 ip:포트/test 까지 입력해서 접속할 수 있게 할 수 있다.

2. 403에러 대처방법

nginx 403에러

CentOS7 부터는 보안이 강화되어 단순히 root경로만 바꿔주었다면 403에러가 뜰 수 도 있다.

이때 403에러는 파일을 정상적으로 찾았으나, 접근이 불가하다는 뜻이다.

이것은 권한 때문이다. 기본적으로 소스경로에 폴더는 755, 파일은 644권한을 맞춰줘야한다.

하지만 여기서 추가적으로 CentOS7부터는 보안컨텍스트가 폴더와 파일에 라벨링이 되어있다.

ls -ldZ

명령어로 파일이나 폴더 권한을 확인해보면

기존의 ROOT경로인  /usr/share/nginx/html에서는

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0  이지만

새로 생성한 소스경로에서는

drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 로

httpd_sys_content_t 에서 default_t 바뀌어있다.

CentOS7에서는 특정 보안컨텍스트에서만 접근이 가능하므로,

바꿀 소스경로의 보안컨텍스트를 httpd_sys_content_t로 바꿔야한다.

chcon -R -t httpd_sys_content_t ./폴더명

위와 같은 명령어를 입력하면 해당폴더를 포함 그 아래의 폴더및 파일은 전부 httpd_sys_content_t로 바뀌고 그 후로 생성되는 파일과 폴더들도 httpd_sys_content_t를 가지고 생성된다.

변경 후 다시 접속해보면 403에러가 더이상 뜨지 않을 것이다.

'WEB WAS > WEB' 카테고리의 다른 글

[아파치] uriworkermap.properties 설정 가이드  (1) 2020.11.03
[아파치] 보안 설정  (0) 2020.10.12
[nginx] CentOS에 nginx 설치하기  (0) 2020.10.05
[아파치] expires 설정  (0) 2020.06.15
[아파치] MPM 모듈로 튜닝하기  (0) 2020.06.07