天天看点

centos7 下通过uwsgi,nginx部署django应用

二、maridb 和 redis

1. 安装

   sudo yum install mariadb-server

2. 启动, 重启

   sudo systemctl start mariadb

   sudo systemctl restart mariadb

   设置安全规则 配置mysql的端口

3. 设置bind-ip

   vim /etc/my.cnf

   在 [mysqld]:

       下面加一行

       bind-address = 0.0.0.0

4. 设置外部ip可以访问

   先进入mysql才能运行下面命令:

       mysql 直接进入就行

三、安装nginx

https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7

1. sudo yum install epel-release

2. sudo yum install nginx

3. sudo systemctl start nginx

四、安装virtualenvwrapper

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

yum install python-setuptools python-devel

pip install virtualenvwrapper

编辑.bashrc文件

export WORKON_HOME=$HOME/.virtualenvs

source /usr/bin/virtualenvwrapper.sh

重新加载.bashrc文件

source  ~/.bashrc

新建虚拟环境

mkvirtualenv mxonline

进入虚拟环境

workon mxonline

安装pip包

然后将requirements.txt文件上传到服务器之后运行:

pip install -r requirements.txt

安装依赖包

五、安装uwsgi

pip install uwsgi

六、测试uwsgi

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

七、配置nginx

新建uc_nginx.conf

# the upstream component nginx needs to connect to

upstream django {

# server unix:///path/to/your/mysite/mysite.sock; # for a file socket

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 你的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 你的目录/Mxonline/media;  # 指向django的media目录

location /static {

   alias 你的目录/Mxonline/static; # 指向django的static目录

# Finally, send all non-media requests to the Django server.

location / {

   uwsgi_pass  django;

   include     uwsgi_params; # the uwsgi_params file you installed

八、将该配置文件加入到nginx的启动配置文件中

sudo ln -s 你的目录/Mxonline/conf/nginx/uc_nginx.conf /etc/nginx/conf.d/

九、拉取所有需要的static file 到同一个目录

在django的setting文件中,添加下面一行内容:

   STATIC_ROOT = os.path.join(BASE_DIR, "static/")

运行命令

   python manage.py collectstatic

十、运行nginx

sudo /usr/sbin/nginx

这里需要注意 一定是直接用nginx命令启动, 不要用systemctl启动nginx不然会有权限问题

十一、通过配置文件启动uwsgi

新建uwsgi.ini 配置文件, 内容如下:

   # mysite_uwsgi.ini file

   [uwsgi]

   # Django-related settings

   # the base directory (full path)

   chdir           = /home/bobby/Projects/MxOnline

   # Django's wsgi file

   module          = MxOnline.wsgi

   # the virtualenv (full path)

   # process-related settings

   # master

   master          = true

   # maximum number of worker processes

   processes       = 10

   # the socket (use the full path to be safe

   socket          = 127.0.0.1:8000

   # ... with appropriate permissions - may be needed

   # chmod-socket    = 664

   # clear environment on exit

十二、访问

http://你的ip地址/

继续阅读