nginx

Serve protected media files with django

≡放荡痞女 提交于 2021-02-17 20:55:39
问题 I'd like Django to serve some media files (e.g. user-uploaded files) only for logged-in users. Since my site is quite low-traffic, I think I will keep things simple and do not use django-sendfile to tell Nginx when to serve a file. Instead I'll let Django/Gunicorn do the job. To me this seems a lot simpler and for a low traffic site this maybe more secure. But what is the best way to organize the file storage location? Media files are all stored below MEDIA_ROOT and this directory is served

Reverse proxy from nginx to squid

我怕爱的太早我们不能终老 提交于 2021-02-17 20:49:49
问题 Similar to this, I am trying to host a squid proxy behind nginx: example.com - the main site relay.example.com - the squid server. So far, when I try to use the squid proxy, it will complain about accessing an illegal page, for example, if I try to access http://www.google.com , I get an Invalid URL error saying that the URL /http://www.google.com (note the preceding /). Could anyone suggest why this is happening, or a fix for nginx or perhaps in the squid config? upstream @squid { server

Reverse proxy from nginx to squid

六眼飞鱼酱① 提交于 2021-02-17 20:49:05
问题 Similar to this, I am trying to host a squid proxy behind nginx: example.com - the main site relay.example.com - the squid server. So far, when I try to use the squid proxy, it will complain about accessing an illegal page, for example, if I try to access http://www.google.com , I get an Invalid URL error saying that the URL /http://www.google.com (note the preceding /). Could anyone suggest why this is happening, or a fix for nginx or perhaps in the squid config? upstream @squid { server

万字长文聊缓存(上)

时光怂恿深爱的人放手 提交于 2021-02-17 19:33:17
深入解析SpringMVC核心原理:从手写简易版MVC框架开始(SmartMvc) : https://github.com/silently9527/SmartMvc IDEA多线程文件下载插件: https://github.com/silently9527/FastDownloadIdeaPlugin 公众号:贝塔学JAVA 摘要 缓存的目的是为了提高系统的访问速度,让数据更加接近于使用者,通常也是提升性能的常用手段。缓存在生活中其实也是无处不在,比如物流系统,他们基本上在各地都有分仓库,如果本地仓库有数据,那么送货的速度就会很快;CPU读取数据也采用了缓存,寄存器->高速缓存->内存->硬盘/网络;我们经常使用的maven仓库也同样有本地仓库和远程仓库。现阶段缓存的使用场景也越来越多,比如:浏览器缓存、反向代理层缓存、应用层缓存、数据库查询缓存、分布式集中缓存。 本文我们就先从浏览器缓存和Nginx缓存开始聊起。 浏览器缓存 浏览器缓存是指当我们去访问一个网站或者Http服务的时候,服务器可以设置Http的响应头信息,其中如果设置缓存相关的头信息,那么浏览器就会缓存这些数据,下次再访问这些数据的时候就直接从浏览器缓存中获取或者是只需要去服务器中校验下缓存时候有效,可以减少浏览器与服务器之间的网络时间的开销以及节省带宽。 > Htpp相关的知识,欢迎去参观 《面试篇

MinIO 的分布式部署

旧街凉风 提交于 2021-02-17 09:04:15
高可用分布式对象存储,MinIO 轻松实现。 1 前言 上一篇文章 介绍了使用对象存储工具 MinIO 搭建一个优雅、简单、功能完备的静态资源服务,可见其操作简单,功能完备。但由于是单节点部署,难免会出现单点故障,无法做到服务的高可用。MinIO 已经提供了分布式部署的解决方案,实现高可靠、高可用的资源存储,同样的操作简单,功能完备。本文将对 MinIO 的分布式部署进行描述,主要分以下几个方面: 分布式存储的可靠性 MinIO 的分布式的存储机制 分布式部署实践 2 分布式存储可靠性常用方法 分布式存储,很关键的点在于数据的可靠性,即保证数据的完整,不丢失,不损坏。只有在可靠性实现的前提下,才有了追求一致性、高可用、高性能的基础。而对于在存储领域,一般对于保证数据可靠性的方法主要有两类,一类是冗余法,一类是校验法。 2.1 冗余 冗余法最简单直接,即对存储的数据进行副本备份,当数据出现丢失,损坏,即可使用备份内容进行恢复,而副本 备份的多少,决定了数据可靠性的高低。这其中会有成本的考量,副本数据越多,数据越可靠,但需要的设备就越多,成本就越高。可靠性是允许丢失其中一份数据。当前已有很多分布式系统是采用此种方式实现,如 Hadoop 的文件系统(3个副本),Redis 的集群,MySQL 的主备模式等。 2.2 校验 校验法即通过校验码的数学计算的方式,对出现丢失

部署前后端分离项目

风格不统一 提交于 2021-02-17 09:04:01
路飞前后端项目部署 前言 使用软件 vue 部署前段 uwsgi uWSGI是一个全功能的HTTP服务器,实现了WSGI协议、uwsgi协议、http协议等。它要做的就是把HTTP协议转化成语言支持的网络协议。比如把HTTP协议转化成WSGI协议,让Python可以直接使用。 centos7 系统环境 virtulenv 在虚拟环境中部署后端项目 nginx 使用nginx做反向代理 redis 存储数据 mysql(mariadb) 存储数据 supervisor Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。 项目部署 准备工作 1 将项目上传到服务器上 方法一:使用xftp工具,进项上传文件夹,将项目代码,传到linux服务器当中 这个页面操作,实在不会百度 方式2: 使用scp从本地将文件上传到linux服务器中 scp -r 本地文件夹 远程用户名@远程ip:远程文件夹/ 2 将mysql数据迁移到服务器数据库 服务器端安装mysql(mariadb)数据库链接: https://www.cnblogs.com

配置nginx的负载均衡

我的梦境 提交于 2021-02-17 09:01:41
-------------------- 写在这是方便大家找 nginx的安装配置三部曲:点击即可查看 1、安装和配置文件的基础配置,ctrl+f搜索nginx 2、nginx文档如何查看 + 常用的配置方式(伪静态,反向代理,动静分离,防盗链,图片缓存,gzip图片压缩) 3、高级配置-》负载均衡 --------------------- nginx反向代理 负载均衡 软件负载均衡 lvs nginx haproxy 硬件负载均衡 f5 netscalar 总结:1台就是反向代理,多台就是负载均衡 1、反向代理就是后端服务不直接对外暴露,请求首先发送到nginx,然后nginx将请求转发到后端服务器,比如tomcat php等.如果后端服务只有一台服务器,nginx在这里只有一个作用就是起到了代理后端服务接收请求的作用.称之为反向代理. 2、可是在现实的应用场景中,一台后端服务器出现单点故障的概率很大或者单台机器的吞吐量有限,无法承担过多请求.这时候就需要在nginx后端配置多台服务器,利用nginx内置的规则讲请求转发到后端不同的机器上.这时候就起到了负载均衡的作用. 原理、效果、配置文件 注意:访问的,test.xiyang66.top域名指向的ip就是47.94.21.171,所以用域名也行,用ip也行 配置文件这样写 // 写在 http中,upstream

nginx负载均衡配置

这一生的挚爱 提交于 2021-02-17 08:53:09
1、负载均衡方法 nginx支持下面几种负载均衡机制: round-robin:轮询。(权重为1的情况)每个请求按时间顺序逐一分配到不同的后端服务器,后端服务器down掉,能自动剔除 least-connected:最少连接数。将下一个请求分配到连接数最少的那台服务器上 ip-hash :每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。实现session共享如果后端服务器down掉,要手工down掉。 以上每种机制均可调整权重参数,指定分发请求几率,weight的值和访问比率成正比,这对于后端服务器性能不均的情况下很有意义。 2、实现模块: HttpProxyModule:将用户的数据请求转发到其他服务器上 HttpUpstreamModule:提供负载均衡技术。 3、配置 (1)轮询(默认),不指定权重时默认为1 (2)最少连接机制 (3)会话持久性机制 以轮询或最少连接的负载均衡算法,每个后续的客户端的请求,可以潜在地分配给不同的服务器上,并不能保证相同的客户端请求将总是指向同一服务器上。 这对于有会话信息的应用场景下,会有问题的。一般的做法是需要将session信息共享,如使用memcache来存放session。 将客户端的会话“粘性”或总是试图选择一个特定的服务器,ip-hash机制就是实现这样的目的。

Change Host header in nginx reverse proxy

随声附和 提交于 2021-02-17 08:48:51
问题 I am running nginx as reverse proxy for the site example.com to loadbalance a ruby application running in backend server. I have the following proxy_set_header field in nginx which will pass host headers to backend ruby. This is required by ruby app to identify the subdomain names. location / { proxy_pass http://rubyapp.com; proxy_set_header Host $http_host; } Now I want to create an alias beta.example.com , but the host header passed to backend should still be www.example.com otherwise the

为什么需要API网关?

为君一笑 提交于 2021-02-17 08:30:59
目录 0:00 微服务与网关(Microservices & API Gateways) 大家好,我叫Macro,今天我们谈论有关微服务和网关的话题。我是Mashape的CTO,也同时是开源网关Kong的开发者之一。Kong是一个API网关,今天我们就来窥探一下它究竟是怎么工作的以及它如何运用到你的微服务架构中去。 0:23 主题(Topics) 为了明白我们为什么需要API网关,我将从单体架构vs微服务架构谈起。这两个有什么不同点呢?然后我会介绍API网关模式以及它是如何适应“面向微服务”的架构的。然后我们会讨论Kong以及NGINX。 0:47 单体架构(Monolithic Architecture) Ok,过去几年我们目睹的一件事就是从单体应用到面向微服务的架构的过渡。我们都熟悉单体应用程序,以及它们通常的工作原理,这是一个简单的展示。我们把所有的东西都放到一块。而且通常也只有一个数据存储。 通过在多个服务器上重复部署相同的巨大代码块,可以横向扩展单体应用程序。所以每次我们调整应用程序时,我们其实相当于是在改动这些被放在一起的所有的模块,因为他们是一体的。 1:45 单体应用的优缺点(Monolithic Application Pros and Cons) 每一种做法,都有利弊。单体应用程序可以比较容易地构建,而且是以更小的代码库来开始