인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

도토리님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 Nginx 입문/실전

[실습] 웹 프론트엔드 프로젝트(React + Vite) 배포하기

nginx 설정파일 root 설정 관련 문의

작성

·

83

·

수정됨

0

리액트 + 스프링부트로 개발을 진행 중에 있고, 강의를 따라서 리액프 프로젝트를 배포하고 있습니다. 그런데, 404 Not Found가 발생하여 이와 관련하여 문의드리고자 합니다.

우선 제 프로젝트의 위치는 ~프로젝트명/front/build/index.html과 같습니다. (저는 dist 대신 build가 뜨더라구요)

nginx의 설정파일에서 root에 '~/프로젝트명/front/build'로 할 때에는 404가 발생했는데, '/home/ubuntu/프로젝트명/front/build'하니까 404 오류가 없어졌습니다. 경로를 명확하게 명시해야 하는 것인가요?

 

추가로 요청 결과 403 Forbidden이 나왔는데 어떠한 이유 때문일까요... 로컬에서는 문제없이 동작합니다

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 도토리님! 질문 잘 주셨어요:D

인프런 AI 인턴이 잘 답변해준 것 같아서 AI 인턴 답변 한 번 더 차용하겠습니다!

Nginx 설정 시 root 나 alias를 사용할 때는 절대 경로를 명확히 설정해야 합니다. ~/프로젝트명/front/build와 같은 경로는 사용자 홈 디렉토리를 나타내지만, Nginx는 시스템 전역에서 접근하는 역할을 하기 때문에 절대 경로인 /home/ubuntu/프로젝트명/front/build로 지정해야 정상적으로 파일을 찾을 수 있습니다.

조금 더 덧붙이자면 ~의 어떤 사용자(ex. ubuntu, root 등)냐에 따라 경로가 달라집니다.

따라서 명확히 설정하기 위해서는 절대 경로로 설정하는 걸 추천드립니다!

 

추가로 403 Forbidden 에러는 어떤 상황에서 발생했는 지

알려주실 수 있을까요~??

그리고 403 Forbidden 에러가 발생했을 때

/var/log/nginx/error.log/var/log/nginx/access.log의 로그도 같이

확인 후에 전달 부탁드릴게요:D

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 도토리님.

Nginx 설정 파일에서 파일 경로 문제와 관련된 질문을 주셨네요. Nginx 설정 시 root 나 alias를 사용할 때는 절대 경로를 명확히 설정해야 합니다. ~/프로젝트명/front/build와 같은 경로는 사용자 홈 디렉토리를 나타내지만, Nginx는 시스템 전역에서 접근하는 역할을 하기 때문에 절대 경로인 /home/ubuntu/프로젝트명/front/build로 지정해야 정상적으로 파일을 찾을 수 있습니다.

403 Forbidden 오류에 대해서는 여러 가지 원인이 있을 수 있습니다. 일반적으로 다음 사항들을 확인해보세요:

  1. 파일 및 디렉터리 권한: 웹 서버 사용자(nobody, www-data 등)가 해당 디렉토리와 파일에 접근할 권한이 있는지 확인하세요. Unix/Linux 환경에서는 chmod, chown 명령어를 통해 권한을 설정할 수 있습니다.

  2. Nginx 설정: Nginx 설정 파일에서 allowdeny 옵션을 확인해 보세요. 특정 IP만 접근을 허용했거나 특정 경로에 대해 접근 제한이 설정되어 있을 수 있습니다.

  3. SELinux 설정: 만약 사용 중인 환경이 SELinux를 활성화하고 있다면, 접근이 제한될 수 있습니다. SELinux 설정을 확인하거나 임시적으로 비활성화하여 문제가 해결되는지 확인할 수 있습니다.

  4. Access Token: Access token 관련 문제일 가능성도 있습니다. 배포 환경에서 추가적인 인증이나 권한 검사가 설정되어 있을 수 있습니다. 이 경우, 서버 코드에서 토큰 검사를 어떻게 처리하는지, 환경에 따라 다른 설정이 필요한지 확인하는 것이 좋습니다.

이 외에도 해결책이 필요하시다면 아래 링크를 통해 추가적인 답변을 확인하시기 바랍니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.