当前位置: 首页 > 编程日记 > 正文

Nginx 主要应用场景

一、反向代理

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端。

  server {  listen       80;                                                        server_name  localhost;                                              client_max_body_size 1024M;location / {proxy_pass http://localhost:8080;proxy_set_header Host $host:$server_port;}}

二、负载均衡

1、RR(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  upstream test {server localhost:8080;server localhost:8081;}server {listen       81;                                                        server_name  localhost;                                              client_max_body_size 1024M;location / {proxy_pass http://test;proxy_set_header Host $host:$server_port;}}

这里我配置了2台服务器,当然实际上是一台,只是端口不一样而已,而8081的服务器是不存在的,也就是说访问不到,但是我们访问http://localhost 的时候,也不会有问题,会默认跳转到http://localhost:8080 具体是因为Nginx会自动判断服务器的状态,如果服务器处于不能访问(服务器挂了),就不会跳转到这台服务器,所以也避免了一台服务器挂了影响使用的情况,由于Nginx默认是RR策略,所以我们不需要其他更多的设置。

2、权重

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

  upstream test {server localhost:8080 weight=9;server localhost:8081 weight=1;}

那么10次一般只会有1次会访问到8081,而有9次会访问到8080

3、ip_hash

iphash的每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

  upstream test {ip_hash;server localhost:8080;server localhost:8081;}

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

   upstream backend {fair;server localhost:8080;server localhost:8081;}

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。

  upstream backend {hash $request_uri;hash_method crc32;server localhost:8080;server localhost:8081;}

三、HTTP服务器

Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器。

1、静态

  server {listen       80;                                                        server_name  localhost;                                              client_max_body_size 1024M;location / {root   e:wwwroot;index  index.html;}}

2、动静分离

upstream test{  server localhost:8080;  server localhost:8081;  }  server {  listen       80;  server_name  localhost;  location / {  root   e:wwwroot;  index  index.html;  }  # 所有静态请求都由nginx处理,存放目录为html  location ~ .(gif|jpg|jpeg|png|bmp|swf|css|js)$ {  root    e:wwwroot;  }  # 所有动态请求都转发给tomcat处理  location ~ .(jsp|do)$ {  proxy_pass  http://test;  }  error_page   500 502 503 504  /50x.html;  location = /50x.html {  root   e:wwwroot;  }  }  

转载于:https://www.cnblogs.com/yudis/articles/6676636.html

相关文章:

ios .a和.framework

创建Aggregate来合并模拟器和真机通用的framework 然后在Build Phases下New Run Script Phase创建合并脚本: # Constants SF_TARGET_NAME${PROJECT_NAME} #自定义的用来存放最后合并的framework UNIVERSAL_OUTPUTFOLDER${BUILD_DIR}/${CONFIGURATION}-universal #IP…

android上下文关系,Android Context上下文的理解 Hua

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?Context概念在安卓对象中,Context是经常使用的元素…但应该也是错误使用率最高的。你在加载资源、启动一个新的Activity、获取系统服务、获取内部文件(…

打开云服务器连不上网,云服务器怎么连接网络连接不上

traceroute(路由跟踪)通常,ping程序用于确定基本连接是否通,traceroute实用程序可用于确定目标打开终端,输入traceroute,点击回车即可可以检测主机和目标主机之间进行交互所经过的网关数量,由接受的数据包来得出结果。…

Pandas缺失数据

数据丢失(缺失)在现实生活中总是一个问题。 机器学习和数据挖掘等领域由于数据缺失导致的数据质量差,在模型预测的准确性上面临着严重的问题。 在这些领域,缺失值处理是使模型更加准确和有效的重点。 何时以及为什么数据丢失? 想象一下有一个…

android servlet 登陆,Android Studio+Servlet+MySql实现登录注册

一、Android 项目当中设置明文传输1、设置明文传输的xml2、引入上述创建的xmlandroid:networkSecurityConfig"xml/network_security_config"二、在MyEclipse当中创建Web项目1、创建项目引入MySQL的驱动包2、创建实体类Userpackage entity;public class User {private…

tomcat在服务器上改了8080的端口之后所带来的问题

因为与IIS的端口冲突,有人会在服务器上改tomcat的端口。但是tomcat在服务器上将端口8080改了之后,可能会导致所不熟的项目在访问时只能访问前面的域名,用户是使用时显示的域名看不到后面的后缀,比如aaa.com/aa,用户不论…

修改git的远程仓库命令

1. 修改命令 git remte origin set-url URL 2.先删后加 git remote rm origin git remote add origin gitgithub.com:Liutos/foobar.git 3. 直接修改config文件

c# 网站在服务器上第一次请求都需要耗时很久,最.net面试题目.doc

经典.net面试这些是C#ASP.NET数据库面试题,全部从网上收集而来,经整理而发表,希望给大家带来帮助,有错误的地方还请各位高手指出,在下倾听指教。1. 简述private、protected、public、internal 修饰符的访问权限。答. p…

动态语言的灵活性是把双刃剑 -- 以Python语言为例

本文有些零碎,总题来说,包括两个问题: (1)可变对象(最常见的是list dict)被意外修改的问题, (2)对参数(parameter)的检查问题。 这两个…

android 绘画,Android绘图基础

绘图三要素一支画笔 Paint。一张画布 Canvas。一个 Bitmap 或者一个 View 来承载这个图形。Paint常用属性setAntiAlias() 设置画笔锯齿效果。setColor() 设置画笔颜色。setTextSize() 设置字体尺寸。setStrokeWidth() 设置空心边框的宽度。setStyle() 设置画笔的风格。Canvas常…

源码0306-手势解锁

现搭建页面 // VCView.h // 06-手势解锁#import <UIKit/UIKit.h>interface VCView : UIViewend// VCView.m // 06-手势解锁#import "VCView.h"implementation VCView - (void)drawRect:(CGRect)rect {// 绘图图像UIImage *image [UIImage imageNamed:&quo…

about ajax,About 4nf.org - Arvind Gupta | Ajaxify | The Ajax Plugin

Hi Tony,That page shows various example calls and example websites, that use this plugin.Also, 4nf.org serves as an example, that is a fairly complex WordPress site.By default “previewoff” is true, so that swaps of the content div(s) are performed on cli…

numpy.random.seed()

numpy.random.seed()&#xff1a;用于指定随机数生成时使用算法的开始值&#xff0c;如果没有指定每次生成的值都不一样 如果不指定seed的值&#xff0c;那么每次随机生成的数字都不一样&#xff1a; In [17]: import numpy as npIn [18]: i 0In [19]: while i < 5:...: …

ios .framework动态库重签名

真机上运行.framework时&#xff0c;如果报 dylddyld_fatal_error:dyld: Library not loaded: rpath/XX.framework/XXReferenced from: /var/containers/Bundle/Application/DF33E1CB-0A69-4303-A22A-686E643DE922/iDoctors.app/iDoctors Reason: no suitable image found. Did…

canvars 画花

index.html<!DOCTYPE html><html><head> <title>旋转的花</title> <meta charset "utf-8"> <!--width - 可视区域的宽度&#xff0c;值可为数字或关键词device-width --> <!--height - viewport的高度--&…

android google 下拉刷新 csdn,android SwipeRefreshLayout google官方下拉刷新控件

下拉刷新功能之前一直使用的是XlistView很方便我前面的博客有介绍SwipeRefreshLayout是google官方推出的下拉刷新控件使用方法也比较简单今天就来使用下SwipeRefreshLayout 以后再需要时可以参考.首先在布局里面加入SwipeRefreshLayout 布局:Activity文件中的代码mSwipeRefresh…

服务器操作系统安全更新,服务器操作系统安全更新

服务器操作系统安全更新 内容精选换一换使用弹性云服务器或者外部镜像文件创建私有镜像时&#xff0c;必须确保操作系统中已安装UVP VMTools&#xff0c;使新发放的云服务器支持KVM虚拟化&#xff0c;同时也可以提升云服务器的网络性能。如果不安装UVP VMTools&#xff0c;云服…

流程控制if、while、for

if判断 if判断想执行第一个条件&#xff0c;if后的判断必须是True 1 什么是if判断   判断一个条件如果成立则做...不成立则做....2 为何要有if判断   让计算机能够像人一样具有判断的能力3 如何用if判断 语法1: if 条件1:code1code2code3...... 语法2:if-else if 条件:code…

抄写例题作业1

截图 1.例9.1 &#xff08;1&#xff09;代码实现 1 #include<stdio.h>2 int main()3 {4 struct stu5 {6 long int num;7 char name[20];8 char sex[3];9 char addr[20]; 10 }a{1010,"董诗原","男",&qu…

android button imagebutton 区别,Android 开发入门篇

Button 与 ImageButton本节学习Android基本控件按钮控件&#xff0c;Button和ImageButton用法基本类似&#xff0c;所以本节重点讲解Button控件。在布局中添加Button控件&#xff1a;android:id"id/btn"android:text"普通按钮"android:layout_width"w…

iOS autolayout 约束冲突添加symbol breakpoint

UIViewAlertForUnsatisfiableConstraints

Win7安装ant

下载ant&#xff0c;当前版本是1.9.4。下载地址点击打开链接。 解压到你喜欢的路径下面&#xff0c;我喜欢D:\Program Files\apache-ant-1.9.4 配置环境变量ANT_HOME。右击计算机→选择属性→高级系统设置→“高级”标签→环境变量。 新建系统变量。变量名必须是“ANT_HOME…

af eeee

e 转载于:https://www.cnblogs.com/xiaobaiv/p/9661043.html

ios bug 分析

ios中线上或者内部测试bug统计收集有两种方法&#xff1a; 1)使用第三方bug收集 1.bugHD 来源http://bughd.com/doc/ios-customize 2.bugtags 来源http://help.bugtags.com/hc/kb/article/124400/ http://help.bugtags.com/hc/kb/article/68482/ 3.KSCrash https://github.com/…

我理解的接口测试(一)

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系等。 接口 应用&#xff08;模块&#xff09;提供对…

android jni语法,Android NDK中的JNIEXPORT和JNICALL

基本上是一个Windows问题,如果你看看oracle Java jdk附带的文件jni_md_win32.h这是宏定义&#xff1a;/** (#)jni_md.h 1.14 03/12/19** Copyright 2004 Sun Microsystems, Inc. All rights reserved.* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*/#ifnd…

Win7编译volley成jar包

首先安装git和ant&#xff0c;当然jdk也是必须的。 git clone搞到volley的源码。 git clone https://android.googlesource.com/platform/frameworks/volley 此时volley的目录里面应该是这样的&#xff0c;没有AndroidManifest.xml文件。 cd进volley目录&#xff0c;敲下一…

c语言的求素数算法,C语言求素数的算法

最后一次是出了素数的问题C语言解决题目(面试)&#xff0c;当时用了最粗暴的算法。回来细致參考资料&#xff0c;事实上答案有非常多种&#xff1a;1&#xff0c;小学生版本号&#xff1a;推断 x 是否为质数&#xff0c;就从 2 一直算到 x-1。static rt_uint32_t array1[ARRAY_…

Python全栈Day 15部分知识点

全局变量与局部变量 约定俗成的规则&#xff1a;全局变量名大写&#xff0c;局部变量名小写。 全局变量没有缩进&#xff0c;顶格写。 如果函数的内容无global关键字&#xff0c;优先读取局部变量&#xff0c;能读取全局变量&#xff0c;无法重新赋值&#xff0c;但是对于可变类…

SQL执行并返回执行前/后结果

SQLServer&#xff1a; 1、插入数据&#xff0c;并返回插入的数据&#xff1a;INSERT INTO TestTB(Province,City) output inserted.Province, inserted.City VALUES(广东,深圳)2、同理&#xff0c;删除数据也是一样的&#xff0c;只不过是使用deleted表罢了。delete from Test…