Apache를 통해 Express에 연결하는 방법

환경


  • CentOS 7.7
  • Apache 2.4.6
  • node v12.13.1
  • express-generator 4.16.1

  • 이미지





    설정 절차



    1. httpd 설정 파일 편집



    서버에 httpd가 설치되어 있지 않으면 다음 명령을 사용하여 설치하고 활성화합니다.
    $ sudo yum update
    $ sudo yum install httpd
    
    $ sudo systemctl enable httpd
    $ sudo systemctl start httpd
    
    /etc/httpd/conf.d/ 바로 아래에 hoge.conf라는 파일을 만듭니다. ( hoge 변경 가능)

    이번에는 Apache를 프록시와 같은 중계 서버로 사용하기 때문에 proxy.conf 라고 붙였습니다.

    /etc/httpd/conf.d/proxy.conf
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
    
    3000는 Express가 사용하는 기본 포트 번호입니다.

    httpd를 다시 시작하고 설정을 반영합니다.
    $ sudo systemctl restart httpd
    

    2. Express 서버 시작


    node가 설치되어 있지 않으면 다음과 같이 설치하십시오.

    (2019년 12월 현재 LTS의 v12계를 사용합니다.)
    $ curl -sL https://rpm.nodesource.com/setup_12.x | bash -
    $ sudo yum install nodejs
    

    작업이 끝나면 버전을 확인하여 성공적으로 설치되었는지 확인합니다.
    $ node --version
    v12.13.1
    
    express-generator가 설치되어 있지 않으면 다음과 같이 설치하십시오.
    $ npm install express-generator -g
    
    express 의 새 프로젝트를 만듭니다.
    $ express exp-app
    
    $ cd exp-app
    $ npm install
    
    $ npm start &
    

    이후에도 터미널에서 조작을 계속하기 위해 npm start& 를 붙여 백그라운드에서 실행합니다.
    http://localhost:3000 와 브라우저에 입력하면 다음과 유사한 페이지가 표시됩니다.

    커맨드 라인이라면 curl로 확인해도 좋습니다.
    $ curl http://localhost:3000
    <!DOCTYPE html><html><head><title>Express</title><link rel="stylesheet" href="/stylesheets/style.css"></head><body><h1>Express</h1><p>Welcome to Express</p></body></html>
    

    Express가 성공적으로 시작되었는지 확인할 수 있습니다.

    3. http로 액세스



    HTTP로 로컬에서 원격으로 액세스할 때 다음 두 가지 설정을 변경합니다.
  • FW 설정
  •   $ sudo firewall-cmd --add-service=http --zone=public --permanent
      $ sudo firewall-cmd --reload
    

    HTTP 요청을 수락합니다.
  • SElinux 설정
  •   $ sudo setsebool -P httpd_can_network_connect on
    

    httpd가 네트워크 통신할 수 있도록 설정합니다.

    4. 액세스 확인



    로컬 브라우저에서 http://x1.y1.z1.w1 (원격 IP 주소)를 입력하여 Express의 환영 페이지가 표시되는지 확인합니다.

    이상으로 Apache와 Express의 제휴가 완료되었습니다!

    주의


  • 위의 방법에서는 npm start & 를 실행한 터미널에서 로그아웃하면 Express 서버도 멈춥니다. Express 서버를 상주시키려면 서버 측에 forever를 설치하는 것이 좋습니다.
    (참고: Node.js 앱을 Linux 환경에서 상주화하는 forever 편 )
  • 로컬과 원격이 동일한 개인 네트워크에 있으면 Edge가 성공적으로 액세스하지 못할 수 있습니다. 다음 사이트를 설정하면 해결됩니다.
    (참고: Windows10 버전 1809 Edge에서 로컬 IP 주소에 액세스할 수 없습니다! )

  • 참고


  • Node.js Binary Distributions
  • h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 23709832 / 아 pp 로 xy - 콘 ct-c c-d d ぢ さ b ぃ g g r
  • 좋은 웹페이지 즐겨찾기