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


原文地址:https://www.cnblogs.com/donke/p/9703901.html