Skip to content

파이썬 서버 셋업하기(Python Server Setup) feat. CentOS7, Anaconda2, Supervisor, Nginx

2017년 3월 8일

파이썬 서버를 간단하게 셋팅하는 방법을 공유합니다. 데이터 분석용 모듈을 다수 포함하고 있는 Anaconda2 버전의 파이썬을 사용하였고, 프로세스 관리를 위해 Supervisor를 사용 하였습니다. 그리고 웹서버로 Nginx를 사용하였습니다. 본 셋팅은 가장 기초적인 상태의 셋팅이지만, 향후 다양하게 운영할 수 있는 여지를 포함하고 있기 때문에 소규모의 상용 서비스에도 활용이 가능합니다.

  1. Build new VM
    1. AWS 기준으로 EC2 Market Place에서 CentOS 검색하시면 CentOS7이 가장 상위에 검색됩니다.
    2. 본 포스팅은 nano 사이즈(ssd 8GiB)로 테스트시 잘 동작하였습니다.
    3. 기본적인 AWS 셋팅은 생략하겠습니다. (ssh key, security group등)
    4. Connect to server
      chmod 500 key_filename.pem 
      ssh centos@00.00.00.00 -i key_filename.pem
  2. Install Anaconda2 (version 4.3.0 64bit)
    1. Install bzip2
      sudo yum install bzip2
    2. Download Anaconda2 Installer
      curl -O https://repo.continuum.io/archive/Anaconda2-4.3.0-Linux-x86_64.sh
    3. Install Anaconda
      bash Anaconda2-4.3.0-Linux-x86_64.sh
      1. 기본셋팅은 계속 Enter 치셔도 됩니다.
      2. 경로가 존재할 경우 설치되지 않습니다.
      3. 마지막에 경로설정 할때 yes 하셔야 정상적으로 경로가 지정됩니다. (엔터로 넘기시면 아나콘다버전으로 경로지정이 자동으로 되지 않습니다.)
    4. Reconnect to server for adopting PATH
      1. 파이썬 경로 설정 적용을 위해 재접속 합니다.
    5. Anaconda version update
      1. Anaconda 버전 최신화를 위해 업데이트 합니다.
        conda update anaconda
  3. Install Supervisor
    conda install -c anaconda supervisor
  4. Install Nginx
    1. Install Nginx
      sudo yum install epel-release
      sudo yum install nginx
    2. Registering proxy_pass on configuration file of Nginx
      1. Edit configuration file
        sudo vi /etc/nginx/nginx.conf
        location / {
            proxy_pass http://127.0.0.1:5000/;
        }
    3. Starting Nginx Server
      sudo systemctl start nginx.service
    4. Open the inner proxy network settings
      sudo setsebool -P httpd_can_network_connect true
  5. Install Git
    sudo yum install git
  6. Download python source code
    1. Git 으로 소스코드를 받아오기
      git clone "path of git repository"
    2. Install packages of python project
      python setup.py install
  7. Run python server using Supervisor
    1. Configuration
      1. Use sample configuration file
        1. Copy sample file
          cp anaconda2/lib/python2.7/site-packages/supervisor/skel/sample.conf \
          supervisord.conf
        2. edit file paths
          1. log, pid, etc..
    2. Supervisor에 서비스 등록하기
      1. Edit configuration file
        [program:sample]
        directory=/home/centos/sample
        command=python sample.py
        autostart=true
        autorestart=true
      2. Start supervisord daemon
        supervisord -c supervisord.conf
      3. Terminate supervisor for restart
        ps -ef | grep supervisord | grep -v grep \
        | awk '{print $2}' | xargs kill -9

 

Advertisements
댓글 남기기

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: