阿里云centos7+uWSGI+nginx部署djagno+开放端口+公网ip访问

背景:

阿里云centos7--以uwsgi协议+虚拟环境virtualenv内网127.0.0.1测试部署django_zew1040994588的博客-CSDN博客

我们此前配置了uWSGI实现127.0.0.1访问,我们期望添加nginx来更好的提升性能

过程:

1-理解nginx所做的工作

Django部署时为什么要用 uWSGI与 Nginx? 以及 WSGI,uwsgi等协议 - luo大侠 - 博客园 (cnblogs.com)

nginx--轻量级的高性能web服务器
可以做http代理和反向代理,负载均衡
等价于apache

1.Django 本身提供了runserver,为什么不能用来部署?而是使用nginx+uWSGI部署?

runserver 方法是调试Django 时经常用到的运行方式,它使用Django 自带的WSGI Server 运行,主要在测试和开发中使用,并且runserver 开启的方式也是单进程。

uWSGI 是一个Web 服务器,它实现了WSGI 协议(web服务网关接口)、uwsgi(线路协议)、http 等协议。注意uwsgi 是一种通信协议,而uWSGI 是实现uwsgi 协议和WSGI 协议的Web 服务器。uWSGI 具有超快的性能、低内存占用和多app 管理等优点,并且搭配着Nginx 就是一个生产环境了,能够将用户访问请求与应用app 隔离开,实现真正的部署。相比来讲,支持的并发量更高,方便管理多进程,发挥多核的优势,提升性能。

2 为什么要使用Nginx 来做负载均衡?

Nginx

    1 安全(Nginx 作为专业服务器,暴露在公网相对比较安全)

    2 能更好地处理静态资源(一些http request header)

    3 Nginx也可以缓存一些动态内容Nginx可以更好地配合CDN

    4 可以进行多台机器的负载均衡

 2-安装nginx-centos7下可以直接执行yum来默认安装

首先安装nginx
1-先更新yum
yum update
2-安装nginx
yum install nginx
默认安装后不会启动,需要进入/etc/nginx目录下输入nginx才可以启动
3-查看nginx
whereis nginx[默认安装后是没有启动的]

4-认识
我们只关心/etc/nginx这个目录,里面有我们所需要更改的配置文件,
启动命令也是在这个目录下
/etc/nginx/
这个目录下直接输入nginx可以启动
nginx -s reload是重新加载

nginx的默认端口是80,我之后改为了10001

启动后可以通过curl方式验证
curl http://127.0.0.1:80/

4-nginx.conf和uWSGI修改

修改uwsgi.ini配置后启动uwsgi--其实就是改为套接字方式
# 指定服务器部署IP地址和端口
# http通信方式的IP地址:端口号
;http=127.0.0.1:8000
# 套接字方式的IP地址:端口号[需要有nginx]
socket=127.0.0.1:8000

(cloud_note_venu) [root@izwz92g35x80l3mhe6u3r4z bin]# uwsgi --ini /mysid/python_project/django_test/cloud_note_venu/cloud_note/cloud_note/uwsgi.ini

此后uwsgi重启以及nginx需要重启

 5-阿里云开放端口

6-内网公网访问验证

问题:

Django+uWSGI+nginx部署原理及工作流程-Django社区,Django中文网,django教程,Django!

1-阿里云开端口开错了,安全组配置其实还需要绑定实例,我是通过实例自带的一个安全组[本身绑定了],开放的端口
2-主要是理解nginx所做的一个转发工作,结合图画来理解流程!!!

猜你喜欢

转载自blog.csdn.net/Elephantpretty/article/details/124511955
今日推荐