• python3-django+uwsgi+supervisor+nginx跳坑指南(记录)


    首先运行django项目:在项目目录内:

    python manage.py runserver 0.0.0.0:8000

    外部服务器访问:http://www.xxx.com:8000/

    可以正常运行

     ###参考:https://blog.51cto.com/chenx1242/1859830

    如果不对,不太对?这是因为django项目里设置了ALLOWED_HOSTS的原因 我们在setting.py里设置一下

    ALLOWED_HOSTS = ['*']

     SECURE_SSL_REDIRECT=Flase

    uwsgi 选择python版本,最开始的默认python版本是2.7下载的,之后再pip3安装一直用的是那个下载的包

    ~# uwsgi --python-version
    2.7.5

    重新下载之后

    ~# uwsgi --python-version

    3.6.1

    运行

    #uswgi uwsgi.ini

    提示并且服务无法访问:

    unable to stat() /home/XXX/reload, events will be triggered as soon as the file is created

    原因:项目目录下缺少一个用于缓冲的reload文件,新建一个名为reload的空文件就解决了

    把uwsgi 和nginx结合运行:

    uwsgi uwsgi.ini & /usr/local/nginx/sbin/nginx

    停止uwsgi进程

    sudo pkill -f uwsgi -9

    用uwsgi运行项目:

    可以打开但是无法加载css样式



    supervisor 常见问题参考链接:https://segmentfault.com/a/1190000003955182
    其中

    Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.

    解决办法:

    sudo unlink /tmp/supervisor.sock

    或者:
    sudo unlink /var/run/supervisor.sock

    出现:unix:///tmp/supervisor.sock no such file

    法一:运行supervisorctl时保错,

    修改/etc/supervisor/supervisor.conf文件

    将file=/var/run/supervisor.sock 修改为/tmp/supervisor.sock

    重启supervisor服务即可

    法二:重新安装supervisor :

    sudo pip install supervisor
    
    echo_supervisord_conf > /etc/supervisord.conf
    
    sudo supervisord
    
    sudo supervisorctl
    uwsgi --http :8000 --chdir /home/ftpuser/www/untitled3 --module untitled3.wsgi

    出现no python application found, check your startup logs for errors
    我的原因是命令写错了,上面。。。。test.wsgi写成了project.wsgi



    以下为复制:

    我在Centos6安装了nginx,尝试设置虚拟主机。目前的问题是我找不到/etc/nginx/sites-available目录。
    有什么东西需要我创建的吗?目前我已经知道nginx启动了,因为我能在浏览器打开网页。

    我认为nginx自身并没有创建有你说的那目录,如果是ubuntu apt安装的话,倒是有可以有这个目录。不过你可以自己手动来创建。
    创建/etc/nginx/sites-available和/etc/nginx/sites-enabled目录,在/etc/nginx/nginx.conf配置文件中的http区块添加如下行:
    include /etc/nginx/sites-enabled/*;
    所有的虚拟主机配置文件放在sites-available目录,然后你可以在sites-enabled目录创建软链接指向sites-available里的配置文件


    分割线///////////////////////////////////////////////////////////////////////////////////////
    Nginx下Django Admin界面Css、JS丢失问题解决方法:原文链接:https://blog.csdn.net/qq_24861509/article/details/45727983
    我的项目位置在 /z/mysite/
    其中我们需要在mysite下新建一个static文件夹,
    用来存放admin需要的一些css、img、js 1.修改mysite/settings.py:
    2.使用命令将django安装目录下的static文件拷贝过来:
    python manage.py collectstatic
    OK,现在已经在/z/mysite/static/下生成admin文件夹,里边有css、img、js 3.修改Ngnix的ngnix.conf ,
    添加以下代码: location ~/static/ { root /z/mysite/ ; break; }

    4.重启uwsgi和nginx,再看看admin是不是已经恢复了呢。
    ///////////////////////////////////////////////////////////////////////
    worker_processes
    :操作系统启动多少个工作进程运行Nginx。注意是工作进程,不是有多少个nginx工程。
    在Nginx运行的时候,会启动两种进程,一种是主进程master process;一种是工作进程worker process。
    例如我在配置文件中将worker_processes设置为4,启动Nginx后,使用进程查看命令观察名字叫做nginx的进程信息,我会看到如下结果:




    解决unix:///tmp/supervisor.sock no such file的问题

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/qq_28885149/article/details/79364685

    1、打开配置文件

    vim /etc/supervisord.conf

    这里把所有的/tmp路径改掉,/tmp/supervisor.sock 改成 /var/run/supervisor.sock,/tmp/supervisord.log 改成 /var/log/supervisor.log,/tmp/supervisord.pid 改成 /var/run/supervisor.pid 要不容易被linux自动清掉

    2、修改权限

    1. sudo chmod 777 /run
    2. sudo chmod 777 /var/log

    如果没改,启动报错 IOError: [Errno 13] Permission denied: '/var/log/supervisord.log'

    3、创建supervisor.sock

    1. sudo touch /var/run/supervisor.sock
    2. sudo chmod 777 /var/run/supervisor.sock

    4、启动supervisord,注意stop之前的实例或杀死进程

    supervisord


  • 相关阅读:
    字符串
    zval结构体
    需要优化代码的leetcode
    删除字符串中的字符
    python 目录
    文件
    awk 复习
    链表和数组的说法
    在linux服务器新添加硬盘,如何识别、挂载。
    Linux 的 date 日期的使用
  • 原文地址:https://www.cnblogs.com/donke/p/9703901.html
Copyright © 2020-2023  润新知