百度云+ubuntu+django+nginx+uwsgi项目部署

目录

安装nginx

项目运行测试

Nginx代理在项目中配置Nginx

安装uwsgi并配置

安装

配置uwsgi

启动项目


安装nginx

sudo  apt-get install nginx

启动nginx

sudo  /etc/inin.d/nginx start

在浏览器访问,云服务器的公网IP

打开浏览器访问 xx.xx.xxx.xxx:80,其中xxxx是你的公网IP,80是Nginx默认监听的端口号

出现

这个表示Nginx已经成功安装并运行起来了

项目运行测试

我们需要保证自己写的项目能够在部署的服务器上能够运行起来

上传项目到服务器

如果不会上传请看

ubuntu 远程链接服务器,上传文件

上传完成后,我们需要导入数据库的数据,

建议将之前的数据库到出,上传到服务器后再导入

做好数据导入后,我们需要安装项目依赖的库

首先导出需要安装的库

在项目依赖的环境下

pip freeze >requirements.txt

这个requirements.txt文件会在,你执行这个命令的路径下。

然后在服务器安装

cd 到你存放requirement.txt的目录, 运行

pip install -r requirements.txt

等待依赖安装完成,cd到项目目录下,运行

python manage.py runserver 0.0.0.0:8000

打开浏览器输入服务器地址,查看

xx.xx.xxx.xxx:8000 (xxx为服务器公网IP地址)

项目正常运行~(如果settings.py文件中的DEBUG设置为False,会观察到静态资源无法加载)

因为DEBUG=True时,django会自动代理静态文件的处理,当改为False时,django认为你在生产环境就不会再帮你代理静态文件了,这里我们可以在url里面配置,让django继续代理,但我们不这么做,我们使用nginx代理静态文件

Nginx代理
在项目中配置Nginx

在项目目录下添加一个config文件夹(这个你可以随意),后面的配置文件都统一放到该文件夹下(配置文件存放路径不统一会导致输入提示符时运行不成功)

onfig文件下新建my_nginx.conf文件,内容如下

# my_nginx.conf


upstream django {
    
    server 127.0.0.1:8000; # for a web port socket (we'll use this first)
}

# configuration of the server
server {
    # the port your site will be served on
    listen      80;
    # the domain name it will serve for
    server_name xx.xx.xxx.xxx; # 公网IP或者IP绑定的域名,substitute your machine's IP address or FQDN
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    # Django media
    location /media  {
        
        alias /media; # your Django media 
    }

    location /static {
       
        alias /homm/work/Blog/static; # your Django project's static files 
    }

    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django;
        include     uwsgi_params; # the uwsgi_params file you installed
    }
}

建立文件链接

sudo ln -s  my_nginx.conf  /etc/nginx/site-enabled/

部署静态文件

在运行Nginx之前,需要将django项目中的所有静态文件放入static文件夹,

运行

python manage.py collectstatic

启动(重启)Nginx

sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx restart

如果启动失败

nginx -t

查看具体的错误

简单测试

往服务器项目的media/image文件夹里丢一个图片(这里以login.jpg为例)
访问

xx.xx.xxx.xxx:8000/media/image/login.jpg

正常显示了,就说明配置成功了

安装uwsgi并配置

安装

pip install uwsgi

安装完成后会自动启动

通过下面命令查看是否启动

ps aux|grep uwsgi

已经启动

测试一下uwsgi

在项目根目录下

uwsgi --http :8000 --module myproject.wsgi

myproject替换成自己的项目名称

启动后访问xx.xx.xxx.xxx:8000

如果浏览器出现Internal Server Error

  1. 检查命令提示符是否输入正确,(注意空格)
  2. 检查是否项目根目录下运行
  3. 其他情况,查看命令行输出或者log

配置uwsgi

#uwsgi.ini file
[uwsgi]

#项目路径
chdir           = /homm/work/Blog
# Django's wsgi 所在位置
module          = Blog.wsgi
#或者
#module          = Blog.wsgi:application


# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 10
# the socket (use the full path to be safe
socket          = 1270.0.0.1:8000  #这里需要和nginx配置的端口一致
# ... with appropriate permissions - may be needed
chmod-socket    = 666
# clear environment on exit
vacuum          = true

#日志存放目录
logto           = %(chdir)/config/Blog.log
stats           = %(chdir)/config/uwsgi.status           

pidfile         = %(chdir)/config/uwsgi.pid

启动项目

用自己的路径替换其中对应的配置~

保存后,运行(在uwsgi.ini目录下)

uwsgi --ini uwsgi.ini

打开浏览器访问xx.xx.xxx.xxx:80

因为浏览器会默认访问80端口

你也可以

xx.xx.xxx.xxx

如果不出问题,项目就能够运行起来了。

欢迎大家关注我的

微信公众号:python学习专栏

一起交流学习

可加入:python交流学习群,(827458740)

扩展阅读

ngnix 使用 sudo /etc/init.d/ngnix start 时报错

No translation files found for default language zh_hans

uwsgi --http :8000 --module XXXX.wsgi 报错,找不到 pymysql

ubuntu 远程链接服务器,上传文件

发布了37 篇原创文章 · 获赞 16 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42236288/article/details/104192320