部署flask:
1. 更新ubuntu的源
sudo apt-get update
2. 安装mysql
sudo apt install mysql-server mysql-client
3. 修改mysql配置
cd /etc/mysql/mysql.conf.d
修改mysqld.conf 将bind_address注释
4. 修改配置
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
5. 重启mysql
service mysql restart
6. 安装Nginx:
sudo apt-get install nginx
7. 安装pip3
apt install python3-pip
8. 安装uWSGI以及uWSGI对于Python的支持:
pip3 install uwsgi
9. 修改总的nginx的配置的文件
vim /etc/nginx/nginx.conf
注意: /etc/nginx/sites-enabled文件可以查看欢迎页路径为/var/www/html
10. 配置nginx的文件
server {
listen 80;
server_name 47.92.73.20 localhost;
access_log /home/app/logs/access.log;
error_log /home/app/logs/error.log;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8890;
uwsgi_param UWSGI_CHDIR /home/app/src/s_aj;
uwsgi_param UWSGI_SCRIPT manage:app; # 启动flask的文件:Flask的实例
}
}
11. 配置uwsgi的文件
[uwsgi]
socket=127.0.0.1:8890
pythonpath=/home/app/src/s_aj; #项目所在目录
callable=app; # 回调的flask实例
logto = /home/app/logs/uwsgi.log # 存uwsgi日志的文件地址
12. 将项目从本地转移到linux服务器
13. 安装依赖包
pip install -r re_install.txt
14. 启动服务进行部署
方法一:不使用nginx+uwsgi
netstat -lntp查看80端口
kill -9 nginx占用的80端口
python3 manage.py runserver -h 0.0.0.0 -p 80
方法二:启动(nginx) service nginx restart
启动(uwsgi) uwsgi --ini uwsgi.ini
shell开启另一个窗口查看uwsgi错误日子 tail -f uwsgi.log
django和flask项目部署有冲突的解决方案
1.flask换端口,需要设置防火墙,阿里云设置一道,linux系统通过ufw设置一道(默认防火墙是关闭的,不需要设置),并且修改nginx和uwsgi通信的端口号
2.不要部署django项目,不启动django项目的uwsgi,注释掉nginx配置中的django项目include /home/app/conf/*.conf;
3.服务器映射多个80端口,一个端口对应一个项目