看了比较多的blog基本都是这个架构: supervisor ------------ app1 |-------app2 |-------.... |-------appn |-------nginx |-------redis 统一都交给supervisor来管理.总觉得哪里不对: 1) nginx作为supervisor的子进程,会有问题,它貌似会不断的去执行启动(导致大量的错误日志:端口已经被占用) 2)   nginx 和 redis 的启动与配置与app之间应该是没有耦合关系的,和s…
由于项目需要,老师让我写一个小web系统,之前都是用java写web,想到自己最近学机器学习要用python,所以用python来写一下,此外,因为想用点新东西,也介于程序比较小,所以考虑用mongodb来存储(没有必要,只是为了接触一下). 基本架构是这样:(后台语言)python +(web框架和web服务器)tornado + (数据库)mongodb  +(进程管理)supervisor +  (反向代理)nginx (1)python:我是看廖学峰的python教程 http://ww…
先说说思路 一.安装这些东西,tornado, supervisor( sudo pip install supervisor  在linux 系统上), 安装 nginx  (sudo apt-get install nginx -y) 二.让supervior 和 已经写好的tornado 服务挂钩 用supervisor 来管理服务和进程 在命令行里面使用. 然后,再在 supervisord.conf 最后面添加这几行 这里tornado center.py 的本地服务地址是8100,写…
(1) 安装nginx官网下载:http://nginx.org下载适合Windows的安装包,是一个压缩包,直接解压就可以了. (2) 启动nginx有三种方式启动:a. 双击nginx.exe图标,可见黑窗口一闪而过,启动完毕.b. cmd,到nginx目录,输入:nginx(注,此方式命令行窗口无任何提示,且被锁定)c. cmd,到nginx目录,输入:start nginx(注:此方式不锁定)在浏览器输入:http://127.0.0.1/ ,就可以看到nginx的欢迎页面了 (3) 关…
一.nginx定义 Nginx是一款轻量级的.高性能的,具备HTTP.反向代理.负载均衡的web服务器,同时还提供IMAP/POP3/SMTP服务,其特点是占用内存少,并发能力强. 二.nginx基本功能 1.部署多个虚拟主机 多个虚拟机就是指在nginx目录下建立多个文件夹,作为虚拟工作目录.使多个虚拟空间可以使用不同的地址访问. 在配置文件中设置如下: server { listen 8001; server_name localhost; location / { root html800…
参考链接:supervisor + Tornado + Nginx 使用详解, 用tornado ,Supervisord ,nginx架网站, tornado官方文档 项目文档树: . ├── chnservices │   └── channels.py ├── etc │   ├── chnservices.conf │   ├── nginx │   │   └── nginx.conf │   ├── supervisord.conf │   └── supervisord.conf.…
如何在Linux下部署一个简单的基于Nginx+Tornado+Supervisor的Python web服务. Tornado:官方介绍,是使用Python编写出来的一个极轻量级.高可伸缩性和非阻塞IO的Web服务器软件,著名的 Friendfeed 网站就是使用它搭建的.官方网站:http://www.tornadoweb.org/ Supervisor:一个服务(进程)管理工具,主要用于监控我们的服务器上的服务,并且在出现问题时重启之. Nginx:作为Web服务器,在这里主要利用它做反向…
关于 Stream ,Functional Interface 的一点记录 stream对于集合操作的便捷度提升: import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class ActiveMac { public static void main(String[] args) { List<Human> huma…
对Integer类中的私有IntegerCache缓存类的一点记录 // Integer类有内部缓存,存贮着-128 到 127. // 所以,每个使用这些数字的变量都指向同一个缓存数据 // 因此可以直接使用 == 来比较是否相等 Integer a = 88; Integer b = 88; System.out.println(a == b); // true // 下面这个不在Integer缓存类里的数字,在每次赋值的时候都会新建一个对象存放 // 所以,它们不能使用 == 来判断是否相…
之前一直对Linux的文件类型中的 “l” 类型的了解不是很深入,最近经过“圣经”指点,略知一二,在此先记录一下,以便以后查阅,之后会对文件和目录.文件I/O这部分再扩充. 首先需明确,Unix在查阅文件类型时,首先调用的是stat函数,格式如下:  int  stat(const char *restrict pathname , struct stat *restrictbuf)    成功则返回0(出错返回-1),得到7种文件类型如下: 1.普通文件 (-) 2.目录文件 (d) 3.块特…
Flask采用Virtualenv+Supervisor+Nginx部署应用 -- 首先是概念解释 WSGI服务器,负责我们的app与服务器的交互,常用的有Gunicorn Web服务器,是个HTTP服务器,就相当于tomacat于Java,常用的有Nginx Web服务器中,Nginx是一款面向性能设计的HTTP服务器,相较于Apache.lighttpd具有占有内存少,稳定性高等优势. 部署工具: Virtualenv,用户创建独立的虚拟的Python运行环境,可以解决版本,依赖等问题 Su…
Dockerfile + Nginx.conf文件记录(用于前端项目部署) 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统(敏感信息都进行了处理),默认服务器安装了docker以及nginx 此文结合另一篇博客共同构成前端服务部署的教程,特此记录.我使用了Docker进行发布,并使用了nginx进行静态资源处理,这里并不详细解析Dockerfile以及Nginx.conf的作用以及内部指令. Dockerfile FROM nginx:1.15.2-…
在.NET Core部署到linux(CentOS)最全解决方案,常规篇一文,我们详细讲解了传统的.NET Core部署到Linux服务器的方法,学到了Linux在虚拟机下的安装.Xshell,Xftp的使用方法.git在linux下的交互使用以及.net core在linux下的发布与运行全过程.本文讲讲解通过使用Supervisor+Nginx的组合来实现.net core的高效部署. 1.Supervisor 1.1.Supervisor介绍 官网:http://supervisord.o…
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_129 近期要上线几个基于tornado+motor的移动端接口服务,众所周知,Apache和tornado天生八字不合,尤其apache对python3尤为的不友好,tornado和nginx才是木石前盟,另外由于apache目前系统占用确实比较高,不光进程数多,httpd竟然占用了200多M,太庞大,决定换为较轻量级,高并发的nginx. 如上图所示:系统也就2g ,除了mysql占用的100M, httpd 占了1/2 还…
DigitalOcean 之前买了个便宜的VPS并且在上面搭建了我自己写的博客程序,后来VPS里运行MongoDB经常自己挂掉就索性没理了.直到现在VPS已经过期,服务器被强制关掉了.周末在家索性想着把这个博客程序重新搭建起来. 所以准备换一个VPS.选择Linode还是云主机(阿里云等等)?阿里云貌似有些贵,而且还有一堆备案的流程.Linode最近推出SSD服务,20刀/月的价格,加量不加价,很是吸引人.但无奈还是花的有些心疼.忽然另外一个VPS服务DigitalOcean(链接含refcod…
http://www.jianshu.com/p/9bebb99368ea Tornado Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web 服务来说,Tornado 是一个理想的 Web 框架.我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 Fri…
首先运行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_REDIREC…
本文是对于自己遇到nginx故障的一些记录.便于以后解决问题. 时间:2018_05_11 场景一:某天很多客户在群里反应说访问网站不了,报504错误. 环境:首先说明一点的就是公司网站是美国,日本等服务器上,直接访问比较慢,搭建了一个代理服务器(NGINX),并将它放在香港,一是:大陆访问香港网络相对较好,二是:香港直接访问美国和日本服务器不用关心是否被墙的问题.我们将一些静态文件进行缓存到香港代理服务器上.加快用户访问速度,提升用户体验. 故障分析:nginx 正常运行,查看日志也无异常,p…
Celery 分布式的任务队列 与rabbitmq消息队列的区别与联系: rabbitmq 调度的是消息,而Celery调度的是任务. Celery调度任务时,需要传递参数信息,传输载体可以选择rabbitmq. 利用rabbitmq的持久化和ack特性,Celery可以保证任务的可靠性. 优点: 轻松构建分布式的Service Provider. 高可扩展性,增加worker也就是增加了队列的consumer. 可靠性,利用消息队列的durable和ack,可以尽可能降低消息丢失的概率,当wo…
我们用的nginx有做过一些定制开发,为了调试方便,加了一些自定义的response header,那么如何把这个自定义头记录到日志中以便于观察呢? nginx log_format指令支持这种扩展,如下说明: The headers, transmitted to client, begin from the prefix "sent_http_", for example, $sent_http_content_range. Note that variables produced…
功能,服务器通过扩展自定义命令,记录上游的服务器返回的特定响应头内容,记录到本地文件中 代码如下: /* * Copyright (C) Ciaos */ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_http.h> typedef struct { ngx_str_t header; ngx_str_t savefile; } ngx_http_tiaowuban_filter_conf_t;…
Rewrite 是一种服务器的重写脉冲技术,它可以使得服务器可以支持 URL 重写,是一种最新流行的服务器技术.它还可以实现限制特定IP访问网站的功能.很多情况下,某个 IP 的访问很容易造成 CPU 100% (比如 某些搜索引擎的固定抓取,别人大量的采集站点),这个时候我们就要利用一些有效的手段封掉对方的 IP,让他无法消耗服务器的资源,封 IP 的方法有很多种,如果你的 Web(Nginx|Apache|other) 服务器安装了 Rewrite 模块的话,也可以试试利用 Rewrite…
nginx目前主要用来做反向代理和负载均衡,其实它也可以是一个web服务器: 1.反向代理: location /api/ { proxy_next_upstream error timeout http_503 http_502 http_504; proxy_pass http://myweb1-server/api/; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwar…
Nginx 处理请求的过程一共划分为 11 个阶段,按照执行顺序依次是 post-read.server-rewrite.find-config.rewrite.post-rewrite.preaccess.access.post-access.try-files.content 以及 log. 1.post-read 最先执行的 post-read 阶段在 Nginx 读取并解析完请求头(request headers)之后就立即开始运行.例如:使用了 ngx_realip 模块提供的 set…
这次因为工作原因,需要在Linux下进行开发.推荐的环境是Ubuntu14+Nginx+PHP+Mysql.环境搭建好之后,装上GIT,装上IDE,觉得Mysql命令界面麻烦又装了个Navicat.总体用下来感觉很带感. [虚拟机与镜像文件] 这里我采用的虚拟机是VMware11.别的虚拟机也类似大同小异. Ubuntu采用的是ubuntu-14.04.3 32位.这里提供一个下载地址,如果失效了可以留言给我再开. http://pan.baidu.com/s/1pKhXWIf [操作前的几个建…
五一前,一个DBA同事反馈,在日常环境中删除一个大的slow log文件(假设文件大小10G以上吧),然后在MySQL中执行flush slow logs,会发现mysqld hang住. 今天尝试着重现了此问题,这里简要分析下原因. 重现步骤: 1. 构造slow log (将long_query_time设成了0): 2. 观察删rm slow log瞬间,tps/qps变化: 3. 观察执行flush slow logs瞬间,tps/qps变化: 4. 记录flush slow logs执…
好久没有进来了,之前励志坚持写博客,记录自己在做代码搬运工这段历程中点滴,可是仅仅只坚持了几天,就放弃了!果然是,世上无难事,只要肯放弃!哈哈……闲话不多说,开始进入正题,给自己留点笔记,避免将来老了,没有记忆了,还能翻开看看.也为了能给看到这篇文章的人,需要这点帮助的人一点提示,当然这篇文章也许不是最好的,也许没有讲到点子上,各位海涵! 背景介绍:最近手头开发了一个功能,航运代理公司运送cargo的时候,需要将cago信息以EDI的形式发送给航空公司.至于EDI大家不懂的可以自行脑补一下(ww…
引言 最近看了内存缓存的一些介绍和用法,在此做个简单记录. MemoryCache 类 MemoryCache 类是.Net 4.0推出的类库,主要是为了方便在Winform和Wpf中构建缓存框架的.下面是其中的一点用法 ObjectCache cache = MemoryCache.Default; //得到MemoryCache全局实例 string myData = cache["mydata"] as string; //访问缓存数据 if (myData == null) {…
最近公司的网站需要添加用户访问记录功能,由于使用了nginx请求转发直接通过HttpServletRequest无法获取用户真实Ip 关于nginx获取真实IP的资料  https://blog.csdn.net/bigtree_3721/article/details/72820081 获取用户真实IP具体做法: 在nginx.conf配置文件中 location / { proxy_pass ip; index ak47.html index.html index.htm; proxy_re…
1 安装ssh 1  sudo apt-get update 2  sudo apt-get install openssh-server 3  sudo ps -e |grep ssh  有sshd,说明ssh服务已经启动 2 安装pip sudo apt-get install python-pip 3 安装uwsgi 1 sudo apt-get install python-dev 2 sudo pip install uwsgi 4 安装mysql 1 sudo apt-get upd…