nginx 로 프록시 서버 구축 후 웹 애플리케이션에서 path 설정 문제.

조회수 2841회

안녕하세요. node.js 웹 애플리케이션을 공부 및 개발 중입니다.

EC2 서버를 한 10번은 갈아 엎어서 드디어 프록시 서버를 구축하였습니다.

nginx -> node.js

그리고 로컬에서 개발 중이던 웹 애플리케이션을 서버에 적용하였더니 경로가 완전 씹어 먹히네요.

파일 구조는

nodejs_app 
 - config
 - mysql
 - node_modules
 - public
   - stylesheets
     - index.css
 - routes
 - views
   - index.ejs
 - app.js
 - package.json
 - README.md

이고, css 파일 index.css 을 불러오기 위해

app.js 에서

app.use(express.static(path.join(__dirname, 'public')));

하고

index.ejs 파일에서

<link rel='stylesheet' href='./stylesheets/index.css' />

로 하였더니, 컴파일된 링크가 http://example.com/stylesheets/index.css 로 되었습니다.

그래서 혹시나 해서, node.js 웹 포트가 8080로 되어 있어 http://example.com:8080/stylesheets/index.css 로 접속하였더니 해당 css 파일이 보입니다.

nginx로 프록시 된 node.js 에서 path를 어떻게 잡아줘야 할까요?

nginx 에서 conf 설정은 다음과 같습니다.

 server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ =404;
                proxy_pass                      http://example.com:8080;
                proxy_http_version              1.1;
                proxy_set_header  Connection    "";
                proxy_set_header  Host          $host;
                proxy_set_header  X-Forwarded   $proxy_add_x_forwarded_for;
                proxy_set_header  X-Real-IP     $remote_addr;
        }

ps. 뿐만 아니라 index.ejs 에서 다른 메뉴로 이동하는 링크 모두 path 가 깨졌습니다. 결국 프록시 경로 문제인데 어떻게 해결해야할지 엄두가 안납니다. ㅠㅠ

  • try_files 구문(해당라인)을 제외하고 한번 해보세요. 허대영(소프트웨어융합대학) 2016.5.1 09:48
  • 헐... 됐습니다... 허무하네요... ㅎㅎㅎㅎㅎ 정말 감사합니다 nginx 문법 모르고 구축했더니 이런 일이 생기는군요 상남자 2016.5.1 12:07

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)