| 
                         导入数据库表 
- (venv)$ python3 manage.py db init 
 - (venv)$ python3 manage.py db migrate 
 - (venv)$ python3 manage.py db upgrade 
 
  
退出虚拟环境 
- (venv)$ deactivate 
 
  
2.配置uwsgi 
在项目文件夹中新建一个uwsgi.py的文件和uwsgi.ini的文件,并填入配置 
- $ cd /path/to/your/project 
 
  
新建uwsgi.py 
- $ vi uwsgi.py 
 
  
导入创建应用的工厂函数 
- from webapp import create_app 
 - app = create_app("production)" 
 
  
新建uwsgi.ini 
- $ vi uwsgi.ini 
 
  
输入以下内容: 
- [uwsgi] 
 - module = uwsgi:app 
 - master = true 
 - processes = 5 
 - uid = user 
 - socket = /run/uwsgi/myapp.sock 
 - chown-socket = user:nginx 
 - chmod-socket = 660 
 - vacuum = true 
 - die-on-term = true 
 
  
上面的配置文件中的user是你新建的Linux用户名,第一句是告诉uwsgi我们的应用是uwsgi文件中的app,master和processes是服务器是否启用主进程和进程数,uid是启动uwsgi的用户,scoket是指把uwsgi生成的sock放在什么地方,chown-socket是修改sock的所有者,这样nginx和uwsgi可以同时访问,chmod-socket是修改sock的权限,vacuum是在程序退出时移除sock,因为后面我们会使用systemd来控制uwsgi,因为其中控制信号存在差别,所以使用die-on-term参数。 
使用systemd控制uwsgi 
新建uwsgi服务 
- $ sudo vi /etc/systemd/system/uwsgi.service 
 
  
填入如下内容: 
- [Unit] 
 - Description=uWSGI instance to serve myapp 
 - [Service] 
 - ExecStartPre=-/usr/bin/bash -c 'mkdir -p /run/uwsgi; chown user:nginx /run/uwsgi' 
 - ExecStart=/usr/bin/bash -c 'cd /home/user/myapp; source myappenv/bin/activate; uwsgi --ini myapp.ini' 
 - [Install] 
 - WantedBy=multi-user.target 
 
  
这样就完成了uwsgi的配置,我们可以像控制mysql一样来控制uwsgi了。 
- $ sudo systemctl start uwsgi 
 - $ systemctl status uwsgi 
 - $ sudo systemctl enable uwsgi 
 - $ sudo systemctl stop uwsgi 
 
  
3.配置nginx 
nginx的配置文件位于/etc/nginx/nginx.conf 
- $ sudo vi /etc/nginx/nginx.conf 
 
  
我们只需要修改相应部分就可以了,关于nginx更多的细节将单独再写。 
- server { 
 -  
 -     listen 80; 
 -  
 -     server_name server_domain_or_IP; 
 -  
 -     location / { 
 -  
 -         include uwsgi_params; 
 -  
 -         uwsgi_pass unix:/run/uwsgi/myapp.sock; 
 -  
 -     } 
 -  
 -            location /static/ { 
 -  
 -                      alias /home/user/myapp/static/; 
 -  
 - } 
 
  
这里我们添加了location /static/,这是为了让js css这些静态文件直接由nginx接管,所以要修改这些静态文件的访问权限。 
- $ cd /home/user/myapp/static/ 
 - $ chown -R user:nginx static 
 - $ chmod -R 660 static 
 
  
最后还有一个小坑,nginx在启动加载时会报错。 
- $ sudo mkdir /etc/systemd/system/nginx.service.d  
 - $ cd /etc/systemd/system/nginx.service.d 
 - $ sudo vi override.conf 
 
  
填入如下内容: 
- [Service]  
 - ExecStartPost=/bin/sleep 0.1 
 
  
保存退出! 
到此配置就完成了,启动服务看看效果吧! 
测试nginx 
- $ sudo nginx -t 
 
  
启动nginx 
- $ sudo systemctl start nginx 
 
  
设置开机启动 
- $ sudo systemctl enable nginx 
 
                          (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |