문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| python:django:ubuntu [2025/04/19 03:51] – taekgu | python:django:ubuntu [2025/04/20 00:51] (현재) – [Apache2 설정] taekgu | ||
|---|---|---|---|
| 줄 2: | 줄 2: | ||
| 가상환경 | 가상환경 | ||
| + | python3-venv | ||
| <code bash> | <code bash> | ||
| - | python3 -m venv maroenv | + | python3 -m venv marovenv |
| </ | </ | ||
| [[linux: | [[linux: | ||
| 줄 23: | 줄 24: | ||
| <code bash> | <code bash> | ||
| apt install uwsgi | apt install uwsgi | ||
| + | # uwsgi plugins - 잘은 모르겠으나 필요함.ㅠ.ㅠ | ||
| sudo apt-get install uwsgi-plugin-python3 | sudo apt-get install uwsgi-plugin-python3 | ||
| </ | </ | ||
| 줄 31: | 줄 33: | ||
| /etc/init 디렉토리에 있는 선언적 구성 파일을 기반으로 실행한다 | /etc/init 디렉토리에 있는 선언적 구성 파일을 기반으로 실행한다 | ||
| - | === simple script (/etc/init/ | + | === ini파일은 |
| + | |||
| + | <code conf maro_uwsgi.ini> | ||
| + | [uwsgi] | ||
| + | uid=akfd | ||
| + | base=/ | ||
| + | |||
| + | # the virtualenv (full path) | ||
| + | home=/ | ||
| + | chdir=/ | ||
| + | |||
| + | module=conf.wsgi: | ||
| + | env=DJANGO_SETTINGS_MODULE=conf.settings.develop | ||
| + | |||
| + | autoload=true | ||
| + | # process-related settings | ||
| + | # uWSGI 프로세스를 master로 돌아가게 해줍니다. | ||
| + | master=true | ||
| + | |||
| + | # maximum number of worker processes | ||
| + | processes=5 | ||
| + | |||
| + | max-requests=5000 | ||
| + | daemonize=/ | ||
| + | |||
| + | # HTTP-PORT | ||
| + | http-socket=: | ||
| + | # UNIX socket 파일의 위치입니다. socket file의 위치를 잡아줘도 되며 localhost와 port를 명시해줘도 됩니다. | ||
| + | socket=/ | ||
| + | # UNIX socket 소유자 | ||
| + | chown-socket=%(uid):www-data | ||
| + | # UNIX socket에 대한 권한 설정입니다. 666을 해야 실행이 가능합니다. | ||
| + | chmod-socket=660 | ||
| + | # uWSGI를 통해서 생성된 파일들은 삭제하는 옵션입니다. | ||
| + | vacuum=true | ||
| + | |||
| + | # thread 사용을 앱(uWSGI) 내에서 가능하게 해줍니다. | ||
| + | enable-threads = true | ||
| + | # 단일한 python interpreter를 사용하게 하는 옵션입니다. | ||
| + | single-interpreter = true | ||
| + | # master말고 각각의 worker에(master에서 spawn한 자식들) 앱을 로드하는 설정입니다. | ||
| + | lazy-apps | ||
| - | <code bash> | ||
| - | # simple uWSGI script | ||
| - | description "uwsgi tiny instance" | ||
| - | start on runlevel [2345] | ||
| - | stop on runlevel [06] | ||
| - | respawn | ||
| - | exec uwsgi --master --processes 4 --die-on-term --socket :3031 --wsgi-file / | ||
| </ | </ | ||
| ==== uWSGI 설정 ==== | ==== uWSGI 설정 ==== | ||
| 줄 92: | 줄 128: | ||
| </ | </ | ||
| + | ===== Apache2 설정 ===== | ||
| + | Apache에서는 proxy_uwsgi를 이용하여 접속한다. | ||
| + | |||
| + | <code conf zaro.conf> | ||
| + | # create new | ||
| + | ProxyPass /nakkko unix:/ | ||
| + | |||
| + | Alias /grrr / | ||
| + | < | ||
| + | Require all granted | ||
| + | </ | ||
| + | |||
| + | Alias /static / | ||
| + | < | ||
| + | Require all granted | ||
| + | </ | ||
| + | </ | ||