개발 Q&A

제목 같은 도메인 주소에 php프로젝트와 노드 프로젝트 연동관련
카테고리 서버
글쓴이 주말생각 작성시각 2023/07/06 09:47:01
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 6044   RSS

현재 개발환경

서버 os : 센트os7버전

웹서버 : 아파치

 

유저 네임 등은 예시로 하겠습니다.

기존에 /home/abc/www에 php프로젝트가 있었습니다. 이번에 해당 서버에서 노드js 프로젝트를 만들어서 연동을 하려고 하는데, ssl부분에 관련해서 여러 시도를 해보았지만 제대로 되지가 않더군요.

httpd.conf에는

다음과 같은 내용으로 노드와의 연결을 했습니다.

<VirtualHost *:80>
    ServerName api.abc.com

    DocumentRoot /home/abc/www
    <Directory /home/abc/www>
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>

    ProxyPreserveHost On
    ProxyPass /xyz https://localhost:3000/
    ProxyPassReverse /xyz https://localhost:3000/

</VirtualHost>

 

웹브라우저 입력창에서 api.abc.com/xyz라고 하면 노드쪽으로 연결이 되게하였습니다. 이 부분이 설정에서 https가 아닌 http로 수정하면, http 접속은 잘되는데, https는 되지 않습니다. 노드 프로젝트에서 ssl키를 불러오게 하니, 노드 프로젝트가 실행이 되지 않더군요.

https를 사용하기 위해서는 별도의 설정이 필요할 까요?

 

추가적으로 현재는 api.abc.com/xyz는 노드 프로젝트의 인덱스 페이지를 타게 되지만, xyz를 기점으로

xyz/member, xyz/login 등으로 페이지를 구분하고 싶습니다. 현재 노드 프로젝트를 만들 때, 제너레이터로 만들어서 구조가 bin/www에서 접속 관련을 제어하고

최상위의 app.js에서 라우팅을 제어하여 routs폴더에 있는 파일들로 이동하게 하여 routs/member, routs/login 등을 하려고 하는데 지금 설정에서는 routs/index.js에서 나누어야 하더라고요. 이렇게 나누는 것도 위에 httpd.conf파일에서 다르게 설정을 해줘야 할까요?

 

 

 다음글 ci4) 환경별, 다중DB를 구성하고싶은데 어떻게 진행... (2)
 이전글 파이어베이스에 관한여 (2)

댓글

cilove / 2023/07/07 10:56:57 / 추천 0
1. 프록시 패스는 http로합니다.
2. VirtualHost *:80 를 443으로 합니다.
3. api.abc.com 에 대한 인증서를 발급 받고 인증서 설정을 합니다 (와일드 카드로 발급 받았으면 인증서발급 동작은 제외)

실제 https처리는 프록시패스 설정 프로토콜이 아니라 버추얼 호스트의 포트와 내용중 인증서파일 설정입니다


설정없이 간단한 방법은 모두 http로 설정 후 도메인을 클라우드 플레이 dns로 전환 하는게 있겠네요.