Python部署
2020-07-03 本文已影响0人
诺之林
本文环境基于vagrant-gunicorn
目录
Python
sudo apt install -y python3-pip python3-dev python3-venv
export LC_ALL="en_US.UTF-8"
python3 -m venv ~/.env-py3
source ~/.env-py3/bin/activate
export LC_ALL="en_US.UTF-8"
mkdir site && cd site
Flask
pip install flask
vim app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "Hello World!"
if __name__ == '__main__':
app.run()
python app.py
curl localhost:5000
# Hello World!
Gunicorn
pip install gunicorn
gunicorn app:app
curl localhost:8000
# Hello World!
Systemd
sudo mkdir /usr/lib/systemd/system
sudo vim /usr/lib/systemd/system/app.service
[Unit]
Description=Gunicorn App
After=network.target
[Service]
User=vagrant
Group=www-data
WorkingDirectory=/home/vagrant/site
Environment="PATH=/home/vagrant/.env-py3/bin/"
ExecStart=/home/vagrant/.env-py3/bin/gunicorn -w 3 -b unix:app.sock -m 007 app:app
[Install]
WantedBy=multi-user.target
sudo systemctl enable app.service
# Created symlink from /etc/systemd/system/multi-user.target.wants/app.service to /usr/lib/systemd/system/app.service.
sudo systemctl start app
sudo systemctl status app
Nginx
sudo apt install -y nginx
sudo vim /etc/nginx/sites-available/app.conf
server {
listen 80;
server_name app.com;
location / {
include proxy_params;
proxy_pass http://unix:/home/vagrant/site/app.sock;
}
}
sudo ln -s /etc/nginx/sites-available/app.conf /etc/nginx/sites-enabled
sudo nginx -t
sudo nginx -s reload
sudo sh -c "echo '127.0.0.1 app.com' >> /etc/hosts"
curl app.com
# Hello World!
sudo reboot
curl app.com
# Hello World!