部署Django DRF Vuecli Nginx uWsgi到Centos7

  1. 保证Django、DRF、Vuecli在本地都可以运行,并且可以通信
    打包Vuecli项目:npm run build
    把dist文件拷贝到服务器磁盘上
    Django项目:
    整个项目拷贝到服务器磁盘上

  2. CentOS7 下载安装Nginx
    打开 /etc/nginx/nginx.conf


    server {
    	# Ngix的端口80
        listen       80 default_server;  
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

		# 服务器ip主页
        location / {
        	# Vue项目
            root /pais/web/blog/vueblog/dist;
            # Vue项目的主页
            index index.html;
            # 如访问http://ip/test, $uri=/test,是相对于root的相对路径
            # 访问非主页的时候 会用try_files 一个个查找
            # 根据自身项目设置查找路线和表达式 
            try_files $uri $uri/ $uri.html;
        }
        
        # for uWsgi, uWsgi的端口开在8000,访问/api的时候会转发到uWsgi
        # /api是我Django主页设置的路由
        location /api {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;
            uwsgi_ignore_client_abort on;
        }
        # DRF找不到css和js, 按理应该在这里引入放着静态资源的static文件夹,但我没找到,反正不影响Vue获取数据,先这样
	location /static {
		alias /path/to/your/mysite/static; # your Django project's static files - amend as required
	}

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

每次更新了设置,需要 nginx -s reload 重新加载
打开 http://ip 有欢迎页说明设置成功(可能是centos欢迎页,可能是Nginx欢迎页)

  1. 按照教程下载安装uWsgi
    在Django项目目录下(放着manage.py的),新建yourfile.xml
<uwsgi>
    # 端口8000
    <socket>127.0.0.1:8000</socket>
    	# 项目路径(放着manage.py的)
        <chdir>/pais/web/blog/djblog/emodj/emodj</chdir>
    		# 相对项目路径的wsgi.py
            <module>emodj.wsgi</module>
    		# cpu核的两倍
                <processes>4</processes>
    		# 日志,存储Django控制台输出
    <daemonize>uwsgi.log</daemonize>
    		# 改变Django项目内容后,uwsgi自动更新
       <py-autoreload>1</py-autoreload>
    		# 退出后删除日志和存储pid的文件(这里没设置pid文件)
         <vacuum>true </vacuum>
    		# Django项目的settings.py
      <touch-reload>/pais/web/blog/djblog/emodj/emodj/emodj/settings.py</touch-reload>
</uwsgi>

注意:#和后面的内容要删掉

很少有博客讲xml文件的参数定义,但是有很多讲ini文件参数的,可以参考ini,把它的参数写成xml的形式,效果一样。
然后在xml文件目录下执行 uwsgi -x yourfile.xml
查看ps -ef|grep uwsgi
如果有四五个进程,说明开启成功。
杀进程的时候使用 pkill -9 uwsgi

我这里不使用ini,是因为uwsgi -ini uwsgi.ini时,无法启动uwsgi,查了一下好像是套接字权限不够(?,需要用chmod赋予权限,没搞明白。

到这里就可以快乐转发路由了~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值