2022-6,flask+vue+uwsgi+nginx,线上部署完整流程打包配置文件

 

uwsgi配置文件

[uwsgi]
# 服务端口号,这里没有设置IP值,默认是加载服务器的IP地址
http = :8000
# flask项目地址
chdir = /home/flask_project
# wsgi文件 /home/flask_project/mange.py
module = manage:app
# 进程数
processes = 4
# 主进程
master = true
# 每个进程有2个线程
threads = 2
# 后台启动 日志输出路径
daemonize = /home/flask_project/uwsgi.log
# 保存主进程的进程号
pidfile = /home/flask_project/uwsgi.pid
# 以固定大小切分日志文件
log-maxsize = 1000
# 启动请求日志
disable-logging = true
# 设置中断时间
harakiri = 60
# 懒加载
lazy = true
lasy-apps = true

 

前端代码打包:

进入vue路径,这个路径,要在src文件夹的父路径下,

执行命令:

npm run build

执行完之后,会生成dist文件夹,这个dist就是需要放到服务器上面的前端代码。

 

nginx.conf配置文件

worker_processes 4;

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    server {
                    listen 8090; # 80端口监听需要root权限,这里我们用8090
                    server_name 127.0.0.1;  # 这里是你项目的url地址,或者写成域名地址  www.phno2.xyz  也行。
                    access_log  /home/nginx/logs/access.log;  # 这是自己设定的nginx正常输出日志的日志地址
                    error_log  /home/nginx/logs/error.log;  # 也是自己设定的,nginx错误日志地址
                    charset  utf-8;
                    gzip on;
                    location / {
                        root  /home/vue_project/dist;  # 这里是vue项目的路径地址,vue上传服务器之前,需要执行npm run build打包,# 这里是把打包后的dist文件夹放到服务器
                        index  index.html index.htm;                        try_files  $uri  $uri/  /index.html;  # 这里是让nginx找到vue打包项目的index.html文件,这里的配置是匹配vue项目# router路由配置mode:history.url里面去掉#号
                    }

                    error_page  404           /404.html;
                    location = /404.html {
                        root  html;  # 这里404.html文件,是自己创建的一个页面。/home/nginx/nginx-1.2.2.0/html
                    }
                    error_page   500 502 503 504  /50x.html;
                    location = /50x.html { 
                        root  html;
                    }
                    # flask项目反向代理配置
                    location /api/ {
                        proxy_pass  http://127.0.0.1:8000;  # 这里就是uwsgi配置的IP和端口,写的时候需要把http带上,写完整
                        proxy_send_timeout  600;
                        proxy_read_timeout  120;
                        proxy_connect_timeout  90;
                    }
                    # 指定静态文件路径
                    location /static/{  # 这里的static是我们自己后来加上的,用于处理静态文件,这都是固定语法,
                        root  /home/vue_project/dist; 
                        expires  30d;
                        autoindex  on;
                    }
      }
}

 

到此,就全部配置完成。uwsgi的IP端口,跟nginx挂载上了,前端项目打包路径也挂载到nginx上了。前端代码中,ajax请求,都一律改写成相对路由,即从http://localhost:8000/api/index 改成 /api/index,然后再打包上传服务器。nginx启动之后,就会自动拼接上前端代码中路由的IP端口部分。部署完成之后,前端页面的访问地址:“20.80.80.80:8090/home” IP是服务器的IP,端口是nginx配置的端口,/home是前端router相对路由地址。

posted @ 2022-07-20 09:54  dream-子皿  阅读(1160)  评论(0编辑  收藏  举报