Nginx+uwsgi+django部署问题

272 阅读1分钟

uswgi配置

# uwsgi.ini文件
[uwsgi]
chdir=/var/www/django/				# 项目目录
module=django.wsgi:application		# 指定项目的wsgi.py文件
socket=127.0.0.1:9527				# 指定socket,监听的地址 必须和nginx中的一致
pidfile=/var/www/django/uwsgi.pid	
plugin=python3						# 指定plugin
master=true							# 启用主进程
vacuum=true							# 当服务停止时,自动移除unix socket和pid文件
enable-threads=true					# 启用线程
processes=4							# 进程数				
threads=2							# 线程数
chmod-socket=664					# socket权限
harakiri=30							# 设置自终端时间
post-buffering=4096					# 设置缓存
daemonize=/var/www/django/logs/uwsgi.log	# 设置日志目录
  • 常用的三个命令
	uwsgi --ini uwsgi.ini			# 启动
    uwsgi --stop uwsgi.pid			# 停止
    uwsgi --reload uwsgi.pid		# 重载配置

Nginx配置

# nginx.conf文件
server {
    # 启动nginx监听请求的端口
    listen 80 default_server;
    server_name localhost;
    charset utf-8;
    client_max_body_size 75M;

    location / {
        include /var/www/django/uwsgi_params;	# 使用uwsgi代理
        uwsgi_pass 127.0.0.1:9527;				# 和uwsgi.ini的socket监听的地址一致

    }
    
    location /media/ {
        autoindex on;
        alias /var/www/django/media/;
    }
}
# uwsgi_params文件
uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;

uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  REQUSET_SCHEME     $scheme;
uwsgi_param  HTTPS              $https if_not_empty;

uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;
  • 常用的命令
	nginx -v/-V					# 显示版本信息
	nginx -?/-h					# 打开帮助信息
	nginx -t/-T					# 检测配置文件是否有语法错误
    nginx -s reload				# 重载配置
    nginx -s reopen				# 重启服务
    nginx -s stop				# 强制停止服务
    nginx -s quit				# 优雅地停止服务(即处理完所有请求后再停止)
    killall nginx				# 杀死所有nginx进程

------------------------- 这是一条完美的分割线 -------------------------

Bug1:502错误

avatar

  • 安装uwsgi-plugin-python插件
sudo apt-get install uwsgi-plugin-python
sudo apt-get install uwsgi-plugin-python3
  • 安装uwsgi
sudo apt-get install uwsgi
sudo pip3 install uwsgi
  • 如果还是不行,那就在uwsgi.ini配置文件制定plugin
plugin = python3
  • 再uwsgi --ini xxx.ini启动配置文件测试正常了