Centos7部署nginx环境
安装依赖包
命令:yum install gcc-c++
yum
install -y pcre pcre-devel
yum
install -y zlib zlib-devel
yum
install -y openssl openssl-devel
-
yum下载nginx并安装
命令:yum install -y nginx nginx-devel
-
启动nginx服务,服务默认端口是80
命令:systemctl start nginx
-
测试是否成功
访问本机的80接口
命令:curl:127.0.0.1:80
返回nginx主页的html代码说明安装成功
Centos7部署uwsgi环境,并使用uwsgi运行django项目
-
创建django项目
命令:django-admin startproject mysite 会在当前目录下创建mysite目录
进入mysite目录,创建项目。
命令: (python3的在系统中的环境变量名) python3 manage.py startapp CompanyTemplate 会在mysite目录下创建CompanyTemplate项目
-
运行项目检查项目是否能够正常运行
在manage.py 文件夹下使用执行运行操作
命令:python3 manage.py runserver :8090
在使用端口前可以先查一下端口是否被占用
lsof -i :8090
-
使用pip3下载uwsgi
(pip3 pip3在系统中的环境变量) 命令:pip3 install uwsgi
-
添加环境变量
命令:ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
-
使用uwsgi运行django项目
(uwsgi3 uwsgi在系统中的环境变量)
命令:uwsgi3 --http :8091 --chdir /root/www/mysite --module mysite.wsgi
/root/www/mysite --mysite目录的地址
mysite.wsgi --mysite指的是 /root/www/mysite/mysite 文件夹,wsgi指的是该文件夹下的wsgi.py文件
-
使用浏览器打开8091地址查看项目是否可以正常访问
使用nginx代理访问uwsgi
Nginx是一个Http和反向代理服务器
什么是反向代理服务器呢?
- 正向的就是由浏览器主动的想代理服务器发出请求,经代理服务器做出处理后再转给目标服务器
- 反向的就是不管浏览器同不同意,请求都会经过代理服务器处理再发给目标服务器
这其中的区别就是必须经过Nginx反向代理服务器,这就有了使用Nginx的几个好处:
- 安全:不管什么请求都要经过代理服务器,这样就避免了外部程序直接攻击web服务器
- 负载均衡:根据请求情况和服务器负载情况,将请求分配给不同的web服务器,保证服务器性能
- 提高web服务器的IO性能:这个我也没看懂,总结来说就是请求从客户端传到web服务器是需要时间的,传递多长时间就会让这个进程阻塞多长时间,而通过反向代理,就可以在反向代理这完整接受请求,然后再传给web服务器,从而保证服务器性能,而且有的一些简单的事情(比如静态文件)可以直接由反向代理处理,不经过web服务器
-
创建uwsgi配置文件
创建文件 test.ini 文件
编写文件内容配置参数有很多这里只简单设置一下
-----------------------------------------------------------------------------------------------
#uwsgi.ini file
[uwsgi]
chdir=/root/www/mysite #项目位置
module=mysite.wsgi #wsgi.py文件所在位置
socket=127.0.0.1:8091 #限制只能通过本地访问8091端口来访问项目
----------------------------------------------------------------------------------------------------
重启uwsgi服务
systemctl restart uwsgi
-
修改nginx的配置文件
nginx配置文件默认路径为/etc/nginx/nginx.conf
修改配置信息
命令 vim /etc/nginx/nginx.conf
------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
重启nginx
命令:systemctl restart nginx
使用nginx代理获取静态文件
当访问网站时静态文件获取不到页面样式报错,比如: Django中使用admin后台管理框架
- 修改Django项目settings.py配置文件
设置静态文件提取路径
/root/www/mysite/ 为项目在服务器上部署的绝对路径
- 将Django项目中的静态文件分离出来
在manage.py文件所在路径下执行分离
python3 manage.py collectstatic
- 修改Nginx服务配置文件,设置静态文件获取地址
命令:vim /etc/nginx/nginx.conf
- 重启nginx服务
systemctl restart nginx