django + uwsgi + nginx 网站发布

django + uwsgi + nginx 网站发布

1 django setting 配置

  • 网站正式发布需要将setting中的开发模式关掉
    DEBUG = False
  • 需要增加ALLOWED_HOSTS配置
    ALLOWED_HOSTS = ["*"] * 代表所有ip

2 uwsgi 配置

命令行启动(记录一下):

uwsgi --http :8000 --file app/wsgi.py --static-map=/static=static

  • 下载uwsgi
    pip install uwsgi
  • 运行uwsgi --http “IP地址”:“端口号” --file “项目路径”/wsgi.py --static-map=/static=static
    通过浏览器访问网站,如果能够访问则说明uwsgi 安装成功(只是测试)
  • 接下来使用uwsgi的配置文件来启动uwsgi
    在项目的同级目录下建立一个新文件夹script(ps:可以是任何路径,在同级目录结构比较规整, 文件夹的名字任意,我取的是script)
    然后在新文件夹下新建一个文件 vim uwsgi.ini 文件内容如下:
# uwsig使用配置文件启动
[uwsgi]
# 项目目录
chdir=/opt/proj/teacher/
# 指定项目的application
module=teacher.wsgi:application
# 指定sock,nginx所必须的
socket=127.0.0.1:8080
# 进程个数       
workers=5
pidfile=/opt/proj/script/uwsgi.pid
# 指定静态文件
static-map=/static=/opt/proj/teacher/static
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 启用主进程
master=true
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=4096
# 设置日志目录
daemonize=/opt/proj/script/uwsgi.log
  • 使用uwsgi --ini uwsgi.ini命令即可启动uwsgi服务器,此时uwsgi服务器配置完成

3 nginx的配置

官网下载nginx 安装包,并解压,依次运行./configure、 make、 make install 完成ngin的安装
默认nginx将会安装到/usr/local/nginx 目录下
切换到 /usr/local/nginx/sbin 目录下,运行nginx ,此时nginx 服务器成功启动,访问192.168.1.102(你的IP地址) 如果出现一下界面说明nginx 安装成功:

在这里插入图片描述* 配置django + uwsgi + nginx
切换到 /usr/local/ngnix/conf 目录中, 编辑nginx.conf 文件并添加代码:

server {
        listen       8081; # nginx运行端口
        server_name  192.168.1.102;  # 运行的主机名或者域名

        charset UTF-8; # 编码集

        #charset koi8-r;

        #access_log  logs/host.access.log  main;


        location / {
           include uwsgi_params;  # 使用uwsgi 服务器
           uwsgi_pass 127.0.0.1:9090; # uwsgi 服务器的运行端口(这里需为127.0.0.1或localhost,不能为IP地址(不知为什么)
           uwsgi_read_timeout 600;
           uwsgi_connect_timeout 600;
           uwsgi_send_timeout 600;

        }

此时nginx 服务器配置完成
切换到/usr/local/nginx/sbin 目录 运行 nginx 命令即可
此时所有配置均已完成。。。。。
你以为这就完了??????
不报错那是不可能的,开玩笑。
问题:

  • 连接被拒绝了(connect refused)
    这个问题是在nginx 配置中的socket 使用了IP地址的缘故,最后通过改为127.0.0.1解决
  • 静态文件加载不出来(js,css) (Permission denied)
    这个问题困扰了好久好久。。。。。
    最后在配置文件中最上方 将user: nobody 取消注释并改为 user: root 解决
  • 停止nginx服务
    ps -ef | grep nginx 找到nginx 的运行id
    使用kill 命令杀死
    停止uwsgi 服务使用同样的方法
    或者使用名 pkill nginx 命令

至此 配置完成…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值