[nginx] autoindex로 디렉토리 리스팅 하였을 때 cors 에러

2023. 4. 10. 15:22·Server/Linux
728x90
반응형
server {
        server_name *;

        location / {
                root /;
                autoindex on;
        }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/*/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/*/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    #if ($host = *) {
    #    return 301 https://$host$request_uri;
    #} # managed by Certbot

        listen 80;
        server_name *;
        #return 404; # managed by Certbot

        location / {
                root /;
                autoindex on;
        }


}

보안적인 이슈 사항의 정보가 있기에, 유도리 있게 위와 같이 변경하였다.

 

위 내용은 nginx의 conf 파일이다. ssl 적용이 되어있는 모습인데,

ssl을 적용하고 안뜨던 cors에러가 뜬 경우이다.

 

이 경우 spring으로 컨테이너가 돌거나 햇다면, 소스 단에서 cors 에러를 처리해주었으면 좋았을려만,

nginx에서 디렉토리 리스팅을 하여서, nginx에서 처리해야하였다.

 

이 경우에는 간단하게 header를 추가하면 된다.

 

필자의 경우에는 

add_header 'Cache-Control' 'public';
add_header 'X-Frame-Options' 'ALLOW-FROM *';
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';

 

' location / ' 안에 위 코드의 내용을 집어넣어서 전역에 허용하였다.

필자의 경우 root가 ' / ' 로 되었지만, 실 경로가 아니다.

 

 

전체 conf 파일의 내용은 아래와 같다.

server {
        server_name *;

        location / {
                add_header 'Cache-Control' 'public';
                add_header 'X-Frame-Options' 'ALLOW-FROM *';
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Allow-Credentials' 'true';
                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
                root /;
                autoindex on;
        }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/*/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/*/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    #if ($host = *) {
    #    return 301 https://$host$request_uri;
    #} # managed by Certbot

        listen 80;
        server_name *;
        #return 404; # managed by Certbot

        location / {
                add_header 'Cache-Control' 'public';
                add_header 'X-Frame-Options' 'ALLOW-FROM *';
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Allow-Credentials' 'true';
                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
                root /;
                autoindex on;
        }


}
728x90
반응형

'Server > Linux' 카테고리의 다른 글

[Linux] Shell Script(쉘 스크립트) 프로그램 및 패키지 설치 여부 확인  (0) 2022.12.08
[Linux] expect를 이용하여 쉘스크립트를 실행시켜 다른 서버 원격 접속하여 명령어 날리기  (0) 2022.11.30
[Linux] 리눅스 타임존(TimeZone, TZ) 한국 표준시(KST)로 변경하기  (0) 2022.11.29
[SSL] Oracle linux server에서 let's encrypt로 nginx에 SSL 적용하기 (인증서 자동 갱신 포함)  (0) 2022.06.14
[linux] nginx 사용시 proxy_pass 연결 안되는 경우 해결법  (0) 2022.03.30
'Server/Linux' 카테고리의 다른 글
  • [Linux] Shell Script(쉘 스크립트) 프로그램 및 패키지 설치 여부 확인
  • [Linux] expect를 이용하여 쉘스크립트를 실행시켜 다른 서버 원격 접속하여 명령어 날리기
  • [Linux] 리눅스 타임존(TimeZone, TZ) 한국 표준시(KST)로 변경하기
  • [SSL] Oracle linux server에서 let's encrypt로 nginx에 SSL 적용하기 (인증서 자동 갱신 포함)
밍글링글링
밍글링글링
mingling - 밍글링, 밍글밍글링. 코드와 어우러지다. IT/ 프로그래밍/소스
    반응형
    250x250
  • 밍글링글링
    mingling
    밍글링글링
  • 전체
    오늘
    어제
    • 밍글링글링 (463)
      • Flutter (2)
      • 일상생활 (8)
        • 리뷰 (1)
        • 생활정보 (4)
        • 맛집 (0)
        • 여행 (0)
        • 모든정보 (3)
      • JAVA (126)
        • 개념 (6)
        • 예제 (115)
        • Exception (2)
      • C (1)
        • C (1)
        • C++ (0)
        • C# (0)
      • JS (29)
        • JavaScript (18)
        • JQuery (5)
        • AJax (0)
        • NODE.JS (6)
        • Angular.JS 2.0 (0)
      • WEB (87)
        • HTML (6)
        • CSS (61)
        • JSP (20)
        • JSTL (0)
      • FrameWork (8)
        • Spring (8)
        • BootStrap (0)
        • MyBATIS (0)
        • JUnit (0)
      • 외부 라이브러리 (5)
      • 공유 소스 관리 (5)
        • Git (5)
        • SVN (0)
      • 빅데이터 프로그래밍 (37)
        • Python (37)
        • R Programming (0)
      • DB (7)
        • ORACLE (0)
        • MySql (6)
      • Development Tools (7)
        • StarUML (0)
        • eXERD (0)
        • Eclipse (4)
      • SKILL (6)
        • Migration (0)
        • Security (6)
      • MicroSoft (0)
        • Excel (0)
        • Word (0)
      • Android (0)
      • Server (21)
        • Ubuntu (5)
        • Linux (15)
      • IOS (0)
      • XML (0)
      • 미디어 (0)
      • 공지사항 (3)
      • NETWORK (1)
      • 게임 (4)
        • 피파 (1)
        • 리니지M (0)
        • 배틀그라운드 (1)
        • 듀랑고 (2)
      • 세상 이슈 (6)
      • 일렉트론 (0)
      • 대회 소식 (4)
      • 업무 (2)
      • Express, Vue (6)
      • docker (11)
      • svelte (3)
      • 블록체인 (1)
      • IT (66)
      • Rust (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    러스트
    자바 for문
    자바 생성자
    css table
    gitlab 설치
    css float
    nginx ssl 적용
    ssl 인증서 발급
    nginx
    mysql db
    클론코딩
    리눅스 설치
    제미나이
    브라우저 자동화
    rust linux
    Extension Bisect
    티스토리 자동화
    AI 반도체
    자바 exception
    vscode
    proxy pass
    lang rust
    docker
    SSL 인증서
    vue 설치
    자바 배열
    자바 객체 지향
    Node
    오류
    VS Code 팁
    css perspective
    nginx ssl 설정
    java casting
    spring java
    jsp include
    ubuntu
    servlet class
    vue cli
    svelte
    css tb
    Rust lang
    API 설계
    프런트엔드
    jsp parameter
    React Compiler
    Java Array
    에디터 팁
    css transition
    AI 코딩 에이전트
    자바 클래스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
밍글링글링
[nginx] autoindex로 디렉토리 리스팅 하였을 때 cors 에러
상단으로

티스토리툴바