Centos7 nginx+uwsgi+django安装部署

安装Nginx

当使用以下命令安装Nginx时,发现无法安装成功

yum install -y nginx

安装Nginx源

执行以下命令:

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装该rpm后,我们就能在/etc/yum.repos.d/ 目录中看到一个名为nginx.repo 的文件。

安装Nginx

安装完Nginx源后,就可以正式安装Nginx了。

yum install -y nginx

Nginx默认目录

输入命令:

whereis nginx

即可看到类似于如下的内容:

nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx

以下是Nginx的默认路径:

(1) Nginx配置路径:/etc/nginx/

(2) PID目录:/var/run/nginx.pid

(3) 错误日志:/var/log/nginx/error.log

(4) 访问日志:/var/log/nginx/access.log

(5) 默认站点目录:/usr/share/nginx/html

事实上,只需知道Nginx配置路径,其他路径均可在/etc/nginx/nginx.conf 以及/etc/nginx/conf.d/default.conf 中查询到。

常用命令

(1) 启动:

nginx

(2) 测试Nginx配置是否正确:

nginx -t

(3) 优雅重启:

nginx -s reload

(4) 查看nginx的进程号:

ps -ef |grep nginx

(5)nginx服务停止

nginx -s stop

kill -9 pid

启动后,输入ip地址以及默认端口号80(例:0.0.0.0:80)会显示nginx自带的界面

安装uWSGI

pip install uwsgi

已经安装好uwsgi后(pip install uwsgi),只需要增加配置, 告诉uWSGI-server的框架入口函数在哪,就能让django和uWSGI服务器对接上。

     1. 在django项目的setting.py文件的同级目录下,增加一个配置文件  uwsgi.ini

     2. 对配置文件进行配置 

[uwsgi]

# 配置服务器的监听ip和端口,让uWSGI作为nginx的支持服务器的话,设置socke就行;如果要让uWSGI作为单独的web-server,用http

# http = 127.0.0.1:8000

socket = 127.0.0.1:8000

# 配置项目目录(此处设置为项目的根目录)

chdir = /root/data/Blog

# 配置入口模块 (django的入口函数的模块,即setting同级目录下的wsgi.py)

wsgi-file = Blog/wsgi.py

# 开启master, 将会多开一个管理进程, 管理其他服务进程

master = True

# 服务器开启的进程数量

processes = 2

# 以守护进程方式提供服, 输出信息将会打印到log中

daemonize = wsgi.log

# 服务器进程开启的线程数量

threads = 4

# 退出的时候清空环境变量

vacuum = true

# 进程pid

pidfile = uwsgi.pid

# 配uWSGI搜索静态文件目录(及django项目下我们存放static文件的目录,用uWSGI作为单独服务器时才需要设置,此时我们是用nginx处理静态文件)

# check-static = /root/data/Blog/static

启动uWSGI服务器

      在配置文件uwsgi.ini所在目录下,用我们刚才配置好的配置文件启动uWSGI:

         $: uwsgi --ini uwsgi.ini

配置nignx环境

vim /etc/nginx/nginx.conf

upstream django {

        server 127.0.0.1:8000;

    }

    server {

        listen 80;

        server_name localhost;

        charset utf-8;

        client_max_body_size 75M;

        location /static {

            alias /root/data/Blog/static;

        }

        location / {

            uwsgi_pass django;

            include /etc/nginx/uwsgi_params;

        }

    }

注意,由于django settings 里面会配置STATIC_URL

这样在nginx里面只能设置成,

location /static{alias/root/data/Blog/static} #your Django project's static files - amend as required

配置django static目录,

在django settings,

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

然后运行,执行django管理器命令,会自动将我们项目所有的静态文件放到上面设置的静态文件根目录下

python manage.py collectstatic

如果显示403错误,由于root其实没有那么大权限,修改其权限

chmod -R 755 root

你可能感兴趣的:(Centos7 nginx+uwsgi+django安装部署)