python安装uwsgi_微服务怎么部署到服务器的

python安装uwsgi_微服务怎么部署到服务器的什么是uWSGIuWSGI旨在为部署分布式集群的网络应用开发一套完整的解决方案。主要面向web及其标准服务。由于其可扩展性,能够被无限制的扩展用来支持更多平台和语言。uWSGI是一个web服务器,实现了WSGI协议,uwsgi协议,http协议等。uWSGI的主要特点是:超快的性能低内存占用多app管理详尽的日志功能高度可定制uWSGI服务器自己实现了基于uwsgi协议的ser…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

什么是uWSGI

uWSGI旨在为部署分布式集群的网络应用开发一套完整的解决方案。主要面向web及其标准服务。由于其可扩展性,能够被无限制的扩展用来支持更多平台和语言。uWSGI是一个web服务器,实现了WSGI协议,uwsgi协议,http协议等。
uWSGI的主要特点是:

  • 超快的性能
  • 低内存占用
  • 多app管理
  • 详尽的日志功能
  • 高度可定制

uWSGI服务器自己实现了基于uwsgi协议的server部分,我们只需要在uwsgi的配置文件中指定application的地址,uWSGI就能直接和应用框架中的WSGI application通信

安装uWSGI

pip install uwsgi

uWSGI配置文件

这里给个样例作为参考

[uwsgi]
# 指向项目目录
chdir = /XXX/XXX/XXXX

# 外部访问地址,主要是指定端口号。可以指定多种协议:http 或 socket
socket = 127.0.0.1:8888
# http = 127.0.0.1:8888

# flask启动程序文件
wsgi-file = XXX.py

# flask在manage.py文件中的app名
callable = app

# 处理器数
processes = 4

# 存储日志信息
logto = /XXX/XXX/XXX.log

# 线程数
threads = 8

# 设置uwsgi的pid文件
pidfile = /XXX/XXX.pid

# 设置uwsgi的status文件
statusfile = /XXX/XXX.status

Nginx反向代理配置文件

这里给个样例作为参考

# the upstream component nginx needs to connect to
upstream XXX {
    server 127.0.0.1:7777;
}

# configuration of the server
server {
    # the port your site will be served on
    listen     1002;
    # the domain name it will serve for
    #server_name .example.com; # substitute your machine's IP address or FQDN
    server_name XXXX;
    charset     utf-8;

    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  XXX;
        include     uwsgi_params; 
        # the uwsgi_params file you installed
    }
}

PS. 对于新建的配置文件,需要在nginx.conf里面加入引入路径:include vhosts/*.conf

user  work;
worker_processes  auto;

#error_log  logs/error.log;
error_log  /data/logs/nginx/host/logs/host_error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    use epoll;
    accept_mutex off;
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent $request_body "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$request_time"';

    access_log  /data/logs/nginx/host/logs/host_access.log  main;

    server_tokens   off;
    sendfile        on;
    #tcp_nopush     on;
    tcp_nodelay    on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    client_header_buffer_size 4k;
    client_max_body_size 20M;

    open_file_cache max=102400 inactive=30s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 0;

    gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 8k;
    gzip_http_version 1.1;
    gzip_comp_level 6;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript  application/javascript application/json;

include vhosts/*.conf;
}

常见的命令

  • 启动uwsgi服务
    uwsgi --ini uwsgi.ini
    
  • 查看uwsgi的pid号
    cat uwsgi/uwsgi.pid
    
  • 查看一下uwsgi的进程
    ps aux | grep uwsgi
    
  • 重启uwsgi
    uwsgi --reload uwsgi/uwsgi.pid
    
  • 停止uwsgi
    uwsgi --stop uwsgi/uwsgi.pid
    
  • 查看uwsgi的版本
    uwsgi --version
    
  • 测试配置文件是否有语法错误
    nginx -t 
    
  • 重启Nginx
    nginx -s reload
    
  • 测试配置文件是否有语法错误
    nginx -t 
    
  • 强制停止Nginx服务
    nginx -s stop 
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197195.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 两个div并排,右边div固定宽度,左边宽度自适应

    两个div并排,右边div固定宽度,左边宽度自适应

    2021年11月22日
  • 大四 Java开发实习近一年 记录(每6至12月更新一次)

    大四 Java开发实习近一年 记录(每6至12月更新一次)17年7月4号是我实习生入职的日子,因为是校企合作,所以没有面试、老师推荐、直接入职。刚来北京第一个感觉就是人多,还有就是热。刚到公司第一天,部门经理安排了我的mentor,他也是我的项目经理,安排座位之后给他我发了一些项目文档,让我先熟悉一下项目,然后给我发了几个常用工具的安装包,最重要的就是IDEA,之前在学校一直用MyEclipse,用了IDEA之后感觉确实不错,界面很漂亮。…

  • Android怎么查看手机中的本地数据库

    Android怎么查看手机中的本地数据库我前几天做的项目中有本地数据库,所以就用的SQLite,在调试数据库时,,很想看一下里面的表结构是否正确,这个时候就十分苦恼,因为这个db文件不能够直接拿出来,我们知道,在DDMS里面有一个FileExplorer,它里面保存着手机中的各个文件夹,但是尝试打开里面的文件夹的时候,却发现怎么点都没有东西,于是我就十分不解,明明我写了数据库,为什么没找到这个文件呢?后来发现其实是没有权限。下面需要注意…

  • caffe神经网络框架的辅助工具(将图片转换为leveldb格式)

    caffe神经网络框架的辅助工具(将图片转换为leveldb格式)

  • cv::imread读不出图片的解决办法「建议收藏」

    cv::imread读不出图片的解决办法「建议收藏」imread()函数无法读取图片的原因测试程序:intmain(){ //读入一张图片 Matimg=imread("longmao.jpg"); if(img.empty()) { cout<<"Can’treadimage"<<endl; return-1; } //创建一个名为“龙猫”窗口 namedWindow("longmao"); …

    2022年10月10日
  • java8新特性(拉姆达表达式lambda)

    java8新特性(拉姆达表达式lambda)一、函数式接口函数式接口(functionalinterface也叫功能性接口,其实是同一个东西)。简单来说,函数式接口是只包含一个方法的接口。比如Java标准库中的java.lang.Runnable和java.util.Comparator都是典型的函数式接口。java8提供@FunctionalInterface作为注解,这个注解是非必须的,只要接口符合函数式接口的标准

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号