centos 下部署django nginx+uwsgi

时间:2024-07-15 22:36:26

为了建立一个工作站,也是麻烦了....

感谢该博主:

https://www.cnblogs.com/levelksk/p/7921066.html    

1.安装centos 后首先安装python,下载解压安装和以前一样,但是注意 python3.7使用起来在 pycharm下建立django遇到bug,可能是我的pycharm版本不够高的原因吧。

后来重新安装python3.6,故障解除。

2.

(nginx+uwsgi+python3+django)  使用该方式,注意尽量开启root来配置,不然会出现各种问题

在早期使用ubuntu遇到众多问题,无奈放弃,转到centos,ubuntu用起来也不够稳定,亟待加强.

3.来源于该博主文章,是一个可靠的博文,没有遇到其他异常状况

1、安装各类基础模块

yum gcc-c++

注:此命令我没有运行成功

(为centos系统增加编译功能)

yum install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

注:此命令正常

(安装这些模块都是为了成功编译安装python3,防止出现各种异常)

yum install libxml*

注:此命令正常

(安装这个模块是为了让uwsig支持使用“-x"选项,能通过xml文件启动项目)

2、编译安装python3(我已经安装好了python3.6所以跳过此步骤)

进入home路径(本人喜欢把东西都下载到这里),执行以下命令:

wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz

下载完成后,执行解压命令:

tar -zxvf Python-3.6..tar.gz

进入解压后的Python-3.6.3文件夹,依次执行以下命令

./configure --prefix=/usr/local/python3

(将python3安装到/usr/local/python3/路径下)

make -j2
make install -j2
ln -s /usr/local/python3/bin/python3. /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

注:此命令正常

(以上两个ln命令是为了方便在终端中直接使用python3和pip3命令 )

3、给python3安装django和uwsgi以及配置启动项目的xml文件

pip3 install django
pip3 install uwsgi

注:此命令正常

为了在终端中使用uwsgi命令,执行以下命令

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3

将你的django项目放到你想放的路径下,例如/home/www/,假设我们的Django项目名为"myproject",里面有一个应用叫"myapp"
在你的django项目下新建 myproject.xml,内容如下:

<uwsgi>
<socket>127.0.0.1:</socket><!-- 内部端口,自定义 -->
<chdir>/home/www/myproject</chdir><!-- 项目路径 -->
<module>myproject.wsgi</module>
<processes></processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>

wq保存

注:此命令正常,对于用不惯Vm的人来说,gedit是个好的选择,注意打开文件要用 root不然提示没有权限。其中有很多命令都需要root,如果狐仙莫名其妙的问题

请开启root

4、安装nginx和配置nginx.conf文件

进入home目录,执行以下命令:

wget http://nginx.org/download/nginx-1.13.7.tar.gz

注:此命令正常

下载完成后,执行解压命令:

tar -zxvf nginx-1.13..tar.gz

注:此命令正常

进入解压后的nginx-1.13.7文件夹,依次执行以下命令:

注意要进入nginx-1.13.7文件夹执行以下命令
cd nginx-1.13.7
./configure
make&make install

注:此命令正常 ,注意要root权限

nginx一般默认安装好的路径为/usr/local/nginx
在/usr/local/nginx/conf/中打开nginx.conf,加入以下内容

cd /usr/local/nginx/conf/
server {
listen ; #暴露给外部访问的端口
server_name localhost;
charset utf-;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:; #外部访问8996就转发到内部8997
}
location /static/ {
alias /home/www/myproject/myapp/static/; #项目静态路径设置
}
}

(以上内容请保证在默认内容的大括号内)

注:此命令正常,nginx.conf  文件下面就有这几行你解注释就好了

有必要说明这种

nginx+uwsgi

工作原理:

  nginx负责建立一个本地的工作环境,就是本地服务器,类似于pycharm的 run调试django一样,可以打开一个 http:127.0.0.1的本地服务页面

并开启一个可使用的端口。

  uwsgi 负责转发,将外网发过来的请求转发给 nginx,nginx就像处理内部访问一样来处理请求。(所以他们的端口明显不一样)

wq保存后进入/usr/local/nginx/sbin/目录
执行

cd /usr/local/nginx/sbin/
./nginx -t

此命令需要root不然报错

命令先检查配置文件是否有错,没有错就执行以下命令:

./nginx

终止

pkill - nginx  

终端没有任何提示就证明nginx启动成功,可以通过链接查看nginx是否启动成功:
http://192.168.1.111 (请将该ip替换成你的服务器ip)

注:你可以输入来避免输入ip

localhost

5、访问项目页面

进入你的django项目路径,执行以下命令:

uwsgi3 -x myproject.xml

注:执行该xml后django就算是启动了,内部的nginx服务也将被启动,uwsgi将能够连接到nginx的服务了,此时网络应该是通畅的了。

以上步骤都没有出错的话,打开你的浏览器,输入以下链接,记得关闭系统防火墙或者开放8996端口
http://192.168.1.111:8996 (请将该ip替换成你的服务器ip)
网站访问成功!

localhost:

注:你可以输入来避免输入ip,此时将能够访问Django的网页了,enjoy yourself

centos 下部署django nginx+uwsgi

释疑:localhost 在本地就是没有特别的意义,一旦摇了服务器,我们就可以输入服务器地址访问了