Flask는 배우고 사용하기 쉽고 매우 강력하고 유연한 확장성을 갖춘 경량 Python 웹 프레임워크로 많은 웹 개발자가 가장 먼저 선택합니다. 웹 개발을 위해 Flask를 사용하고 애플리케이션을 완성한 후에는 애플리케이션을 서버에 배포해야 합니다. 이 문서에서는 Flask 애플리케이션 배포의 단계와 기술을 소개하고 빠르게 시작하는 데 도움이 되는 특정 코드 예제를 제공합니다.
sudo apt-get update sudo apt-get install python3 python3-pip python3-venv
python3 -m venv venv
그 중 venv
는 가상 환경의 이름으로 애플리케이션 필요에 따라 교체 가능합니다. 성공적으로 생성되면 다음 명령을 사용하여 가상 환경을 활성화할 수 있습니다. venv
是虚拟环境的名称,可以根据应用需要自行替换。创建成功后,可以使用以下命令激活虚拟环境。
source venv/bin/activate
pip install -r requirements.txt
其中,requirements.txt
是存放依赖库名称和版本号的文件。可以使用以下命令来生成依赖库列表。
pip freeze > requirements.txt
config.py
文件,将配置信息写入其中。class Config: DEBUG = True SECRET_KEY = 'secret key' SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://username:password@localhost/db_name'
其中,SQLALCHEMY_DATABASE_URI
是连接数据库的URL。需要根据实际情况进行修改。
另外,在部署到服务器上时,需要将应用配置为生产模式,并禁止调试模式。可以在config.py
文件中添加以下配置。
class ProductionConfig(Config): DEBUG = False config = ProductionConfig()
在服务器上,还需要修改防火墙设置,将应用的端口打开。可以使用以下命令添加规则。
sudo ufw allow 5000
其中,5000
是应用的默认端口号,可以根据需要进行修改。
flask run --host=0.0.0.0 --port=5000
其中,--host
参数指定应用的IP地址,--port
参数指定应用的端口号。为了在外网访问应用,需要将0.0.0.0
替换为服务器的公网IP地址。
sudo apt-get install nginx
安装完成后,可以在/etc/nginx/sites-available
目录下创建一个配置文件,如myapp
。
server { listen 80; server_name example.com; root /path/to/app; location / { proxy_pass http://127.0.0.1:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /static { alias /path/to/app/static; } }
其中,example.com
是服务器的域名或IP地址,/path/to/app
是应用的根目录。配置文件中,location /static
表示静态文件的路径,需要根据应用的需要进行修改。
创建配置文件后,还需要将其链接到/etc/nginx/sites-enabled
目录下,并重启Nginx。
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/ sudo nginx -s reload
sudo apt-get install supervisor
安装完成后,在/etc/supervisor/conf.d
目录下创建一个配置文件,如myapp.conf
。
[program:myapp] directory=/path/to/app command=/path/to/venv/bin/gunicorn -w 4 -b 127.0.0.1:5000 app:app user=user autostart=true autorestart=true redirect_stderr=true
其中,/path/to/app
是应用的根目录,/path/to/venv
是虚拟环境的根目录,user
是服务运行的用户。
创建配置文件后,可以使用以下命令启动Supervisor。
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start myapp
其中,myapp
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
requirements.txt
는 종속 라이브러리의 이름과 버전 번호를 저장하는 파일입니다. 다음 명령을 사용하여 종속 라이브러리 목록을 생성할 수 있습니다. 애플리케이션 및 서버 구성
배포하기 전에 애플리케이션과 서버를 구성해야 합니다. 일반적으로 사용되는 구성에는 데이터베이스, 이메일, 로그 등이 포함됩니다. 애플리케이션의 루트 디렉터리에config.py
파일을 만들고 여기에 구성 정보를 쓸 수 있습니다. 🎜🎜rrreee🎜그 중 SQLALCHEMY_DATABASE_URI
는 데이터베이스에 연결하기 위한 URL입니다. 실제 상황에 따라 수정이 필요합니다. 🎜🎜또한 서버에 배포할 때 애플리케이션을 프로덕션 모드로 구성하고 디버그 모드를 비활성화해야 합니다. config.py
파일에 다음 구성을 추가할 수 있습니다. 🎜rrreee🎜서버에서도 방화벽 설정을 수정하고 애플리케이션 포트를 열어야 합니다. 다음 명령을 사용하여 규칙을 추가할 수 있습니다. 🎜rrreee🎜그 중 5000
은 애플리케이션의 기본 포트 번호이며 필요에 따라 수정할 수 있습니다. 🎜--host
매개변수는 애플리케이션의 IP 주소를 지정하고, --port
매개변수는 애플리케이션의 포트 번호를 지정합니다. 외부 네트워크에서 애플리케이션에 접근하려면 0.0.0.0
을 서버의 공인 IP 주소로 바꿔야 합니다. 🎜/etc/nginx/sites-available
디렉터리에 myapp
과 같은 구성 파일을 생성할 수 있습니다. 🎜rrreee🎜그 중 example.com
은 서버의 도메인 이름이나 IP 주소이고, /path/to/app
은 애플리케이션의 루트 디렉터리입니다. 구성 파일에서 location /static
은 애플리케이션의 필요에 따라 수정해야 하는 정적 파일의 경로를 나타냅니다. 🎜🎜구성 파일을 생성한 후 이를 /etc/nginx/sites-enabled
디렉터리에 연결하고 Nginx를 다시 시작해야 합니다. 🎜rrreee/etc/supervisor/conf.d
디렉터리에 myapp.conf
와 같은 구성 파일을 만듭니다. 🎜rrreee🎜그 중 /path/to/app
는 애플리케이션의 루트 디렉터리이고, /path/to/venv
는 가상 환경의 루트 디렉터리이며, user
code>는 서비스가 실행되는 사용자입니다. 🎜🎜구성 파일을 생성한 후 다음 명령을 사용하여 Supervisor를 시작할 수 있습니다. 🎜rrreee🎜여기서 myapp
은 구성 파일의 프로그램 이름입니다. 🎜🎜🎜Gunicorn을 사용하여 성능 향상🎜Gunicorn은 Flask 애플리케이션의 성능과 동시 처리 기능을 향상시킬 수 있는 Python 웹 서버입니다. Gunicorn은 다음 명령을 사용하여 설치할 수 있습니다. 🎜🎜rrreee🎜설치가 완료된 후 다음 명령을 사용하여 애플리케이션의 루트 디렉터리에서 Gunicorn을 시작할 수 있습니다. 🎜gunicorn -w 4 -b 0.0.0.0:5000 app:app
其中,-w
参数表示工作进程的数量,-b
参数表示绑定的IP地址和端口号,app:app
表示应用的模块名和应用对象。
위 내용은 빠르게 시작하기: Flask 애플리케이션 배포를 위한 단계 및 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!