박주니 개발 정리

ubuntu pm2 flask 서버 등록 방법 본문

설명 회고

ubuntu pm2 flask 서버 등록 방법

박주니 2024. 8. 23. 16:18
728x90
반응형

1. ubuntu에서 python을 설치합니다. 

sudo apt-get update
sudo apt-get install python3.8 //version에 따라 다르게 설정하면 됨

 

2. ubuntu에서 miniconda 설치합니다. (python 가상 환경)

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

 

3. miniconda를 실행합니다. 

bash Miniconda3-latest-Linux-x86_64.sh
  • 이슈) Do you wish to update your shell profile to automatically initialize conda? This will activate conda on startup and change the command prompt when activated. If you'd prefer that conda's base environment not be activated on startup, run the following command when conda is activated: conda config --set auto_activate_base false You can undo this by running conda init --reverse $SHELL? [yes|no] 나왔을경우 대응 방법 
    • 해결 방법:
      • 기본 설정을 유지하고 자동 활성화 원하지 않을 경우: 그냥 Enter 키를 눌러 no를 선택하세요. 이후 필요할 때 수동으로 conda 환경을 활성화하면 됩니다.
      • 자동 활성화를 원할 경우: yes를 입력하고 Enter를 누르세요. 그러면 셸(profile)이 업데이트되고 터미널을 열 때마다 conda 환경이 자동으로 활성화됩니다.

4. miniconda를 수동 실행합니다. 

eval "$(/home/centos/miniconda3/bin/conda shell.bash hook)"

설명) 현재 이부분은 설명자 기준에 root이고 사용자분은 which miniconda3을 입력하셔서 위치를 확인 후

적용하시면 됩니다.

5. miniconda에서 가상 환경을 추가합니다. 

conda create -n myenv python=3.7

6. myenv로 환경을 접속합니다. 

conda activate myenv

7. ecosystem.config.cjs를 추가하고 module.exports를 설정합니다. 

module.exports = {
  apps: [
    {
      name: "python-server",
      script: "bash",
      args: "-c 'source activate myenv && hypercorn --bind 0.0.0.0:3003 --certfile=cert.pem --keyfile=key.pem faiss_server:app'",
      interpreter: "/bin/bash",
      watch: false,
      env: {
        PORT: 3003,
      },
    },
  ],
};

8. hypercorn_config.py를 추가하고 HTTP/2 활성화를 설정합니다. 

# hypercorn_config.py
from hypercorn.config import Config

config = Config()
config.alpn_protocols = ["h2"]  # HTTP/2 활성화

9. 다시 unbuntu miniconda 환경에 접속해서 hypercorn을 설치합니다.

pip install hypercorn

 

10. 자체 서명된 ssl 인증서 생성을 진행합니다. 

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem

11. 자체 생성된 인증서를 기반으로 hypercorn을 실행합니다. 

hypercorn --bind 0.0.0.0:3003 --certfile=cert.pem --keyfile=key.pem faiss_server:app

12. pm2에서 ecosystem.config.cjs를 실행합니다. 

pm2 start ecosystem.config.cjs
  • 추가 설명) 현재 이렇게 실행할 수 있는건 현재 root가 해당 파일 위치에서 진행했습니다. 적용시 ecosystem.config.cjs root를 맞게 적용하시면 됩니다. 

 

miniconda python 가상 환경에서 pip install 진행하시고 환경 셋팅 후에 pm2 log로 확인하시길 바랍니다. 

728x90
반응형
Comments