inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

222

도토리

작성한 질문수 92

0

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

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

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

 

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

aws nginx reverse-proxy infrastructure

답변 2

0

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

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

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

iam 권한

0

10

1

수강기간 연장 가능하실까요?

0

15

2

강의 듣는 중인데,

0

22

1

혹시 아파치 서버 관련 책이나 사이트도 추천해주실수 있으신가요..?

0

63

2

스프링부트 서버에 proxy_pass 할 때 질문 있습니다

0

71

2

꼭 conf.d에 default 파일이 있는상태에서 시작해야하나요 ??

0

72

2

HTTPS 관련 코드 해석하기

0

78

2

default.conf 파일이 없습니다.

0

80

2

로드밸런싱 Server ID 출력에 관한 질문

0

54

2

default.conf

0

68

2

도메인 구매 시, AWS 결제 이력이 없으면 실패하니 참고바랍니다.

0

60

2

https는 백엔드에도 적용해야하나요?

0

125

2

Nginx의 성능을 알고 싶으면 리눅스 위에서 실행 시켜야 하잖아요..

0

96

2

챕터 22에대한 질문드립니다.

0

106

2

AWS EC2 인스턴스 생성하기 - 키페어 필요

0

137

2

https 적용 과정질문

0

185

2

프론트엔드 배포 역할 의미

1

141

2

도메인 네임 EC2에 연결하기

0

144

2

Vite 없이 React만 배포할 시

1

118

2

location = /50.x.html 블럭

0

120

2

NextJS 15버전의 경우 build 후 폴더가 다른 것 같습니다

0

358

2

상대경로 관련 질문드립니다!

0

156

2

nginx, DNS 순서 관련 질문

0

136

2

/etc/nginx/conf.d 디렉토리 내 default.conf가 없습니다

1

190

1