hoony's web study

728x90
반응형


버전

OS Ubuntu 20.04
Anaconda Anaconda3-2023-03-1-Linux-x86_64
Python Python3.9

 

## Python 설치에 대한 게시글 링크

https://islet4you.tistory.com/entry/Ubuntu2004-Python-39-Version-설치-및-세팅

 

[Ubuntu20.04] Python 3.9 Version 설치 및 세팅

sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev # Python 3.9 Version 설치 wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.t

islet4you.tistory.com

 

# Anaconda3 Archive Repository

https://repo.anaconda.com/archive/

 

Index of /

Anaconda-1.5.0-Linux-x86.sh 238.8M 2013-05-08 09:18:43 ca7e356dc1b8c8ef27dfb74b32c77563df704c6ddb39e69cac65ec416ebfe8e5

repo.anaconda.com

 

위의 사이트에서, 알맞고 원하시는 버전의 링크를 미리 복사해줍니다.

본문의 경우, Anaconda3-2023.03-1-Linux-x86_64.sh 를 기준으로 진행하도록 하겠습니다.

 

#Anaconda3 Shell 파일 인스톨
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh

#설치 프로세스 실행
bash Anaconda3-2023.03-1-Linux-x86_64.sh



#약관 동의 이후, 설치 경로 지정
#필자의 경우 /usr/anaconda3 로 임의 지정 해주었습니다.

Anaconda3 will now be installed into this location:
/root/anaconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/root/anaconda3] >>> /usr/anaconda3

 

conda init

최초 anaconda3를 초기화해주기 위해 아래의 과정을 거쳐주시면 됩니다.

conda init은 /home/{user}/.bashrc 에 conda를 초기화 해줍니다.

source /usr/anaconda3/bin/activate 
conda init
source ~/.bashrc

 

conda auto activation

conda 환경의 자동 activation은 다음의 명령을 통해 조절 할 수 있다.

# conda 환경 자동 활성화 (초기 설정)
conda config --set auto_activate_base True

# conda 환경 자동 활성화 해제
conda config --set auto_activate_base False

 

#env 생성 
conda create -n develp_env python=3.9

#env 활성화
conda activate develop_env

#uwsgi 설치 
conda install uwsgi 

#flask 설치 
conda install flask 

#conda config에 conda-forge 채널 추가
conda config --add channels conda-forge

#anaconda를 통해 pip 설치
conda install -c conda-forge pip

 

이제, 예제소스를 통해 flask와 uwsgi가 정상 작동되는지 확인해보도록 하겠습니다.

1. flask 확인

[testapp.py]

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "<h1 style='color:blue'>Hi This is My Flask Application</h1>"

if __name__ == "__main__":
    app.run(host='0.0.0.0')

 

python testapp.py

 

위의 명령어를 통해 실행이 잘 되는지 확인해주도록 합니다.

이후 CTRL+C 를 통해 flask 종료

 

2. uwsgi 확인

[wsgitest.py]

 

from testapp import app

if __name__ == "__main__":
    app.run()

 

를 작성하신 후, 터미널에서 아래의 커맨드를 실행해주도록 합니다.

uwsgi --socket 0.0.0.0:5000 -protocol=http -w wsgitest:app

 

정상작동이 되셨다면 가상 환경 종료 이후 uwsgi 구성을 이어나가도록 해주겠습니다.

 

#가상환경 종료
conda deactivate

 

ini 파일로 uwsgi 설정을 작성해주도록 합니다.

[app.ini]

[uwsgi]
module = wsgitest:app

master = true
processes = 5

socket = myapp.sock
chmod-socket = 660
vacuum = true

die-on-term = true

 

Systemd 서비스 파일 생성

다음으로 서비스로 편하게 관리해주기 위해 아래와 같이 서비스를 등록해주도록 합니다.

 

#서비스 설정 파일 생성
nano /etc/systemd/system/testwsgi.service

###############내용작성

[Unit]
Description=uWSGI instance to serve myapp
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/html/testwsgi
Environment="PATH=/usr/anaconda3/envs/testwsgi/bin"
ExecStart=/usr/anaconda3/envs/testwsgi/bin/uwsgi --ini myapp.ini

[Install]
WantedBy=multi-user.target

#################내용작성


#systemctl 리로드
systemctl daemon-reload

#uwsgi에서 접근을 할 수 있도록 아래와 같이 권한을 설정해줍니다!!!!!!!! (중요)
chown -R www-data:www-data /var/www/html/testwsgi
chmod -R 775 /var/www/html/testwsgi



#서비스 실행 및 확인
systemctl start testwsgi
systemctl enable testwsgi
systemctl status testwsgi

 

Nginx Proxy Setting

 

우선, /etc/nginx/sites-enabled 경로에 새롭게 설정 파일을 만들어주도록 합니다.

nano /etc/nginx/sites-enabled/uwsgitest.conf



#######내용

server {
    listen 80;
    server_name _;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/var/www/html/testwsgi/myapp.sock;
    }
}

#######내용

 

주의사항 !!!!!!!!!!!!

80포트를 사용하기 위해선 /etc/nginx/sites-available/default 의 기본설정을 주석처리 해주시거나 삭제 해야합니다.

 

이제 마지막입니다.

마지막으로 nginx 문법 확인과 서비스를 재실행 해주도록 하겠습니다.

#Nginx Syntax check
nginx -t

#Nginx restart
service nginx restart

 

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading