文档章节

nginx一些问题或者疑惑

leaon_tan
 leaon_tan
发布于 2016/12/08 19:28
字数 845
阅读 17
收藏 1

以下内容仅供参考,我也不知道下面的理解是不是对的,希望不要坑到你.

1.nginx如何配置静态资源映射
    location ~* (/upload/abc/*) {
        root /home/resource; 
    }
    说明:
        语法可以参照:http://blog.csdn.net/wusuopubupt/article/details/41851427
        1.~*表示后面一定要有一个空格
        2./home/resource;分号不能少
        3.如果路径有空格,那么需要用双引号将路径包裹起来
        4.windows目录,暂时还不知道如何跨盘符(相对nignx所在的盘)定义root目录

2. nginx中的upstream与server与server_name与proxy_pass之间?
    一直以来都是copy,感觉这么他们之间的概念都不清楚,请教了同事,做过随记.感谢威神.
    proxy_pass:
        location下面的一个配置指令
        可以将它理解为将location匹配到的请求转发到哪里.
    server_name:
        server下面的一个配置指令
        我把它当做域名来使用,即为这个server定义一个域名
    server:
        可以将它理解为服务.
        每个服务可以定义自己的端口(listen)和域名(server_name).
        每个服务可以定义多个location(匹配规则,不同location之间的优先级没研究过)
    upstream:
        好像官方直译为"上游",
        可以用它来做负载均衡例如,功能很强大
            upstream streamName {
                server 127.0.0.1:8080  weight=7;
                server 127.0.0.1:9080  weight=5;
            }
        我一般把他当做一个本地项目的入口
            upstream streamName { server 127.0.0.1:8080;}
            location / { proxy_pass http://streamName; }
    之所以有时候会混乱,是我曾经看到过这样的配置,一脸懵逼      

upstream www.test.com { 
	server www.test.com;
}
server {
	listen       80;
	server_name  www.test.com;
	location / {
		proxy_pass http://www.test.com;
	}
}

    其实上面的配置理论上来说会出现递归(死循环)的问题,但是实际上项目跑的没问题.简单分析一下:
    ..1.发起请求:http://www.test.com,
    ..2.匹配到server
    ..3.匹配到location
    ..4.proxy_pass转发到www.test.com(这里确实佩服nignx的强大,猜它应该是优先将域名与upstream进行匹配, 如果匹配成功,就转发到对应的upstream上,也就是upstream里面定义的server端口上,否则就将它当做域名进行转发)
    ..5.upstream得到数据,根据规则分配给指定的server(规则大致分为几种,权重,随机,负载量[呵呵,负载量感觉好复杂的样子])

3.如何让nginx自动添加tomcat项目名称    

    #项目的实际访问地址为127.0.0.1:8080/test/,tomcat中项目名称为test
    upstream testup{
		server 127.0.0.1:8080;
	}
		
	server {
		listen       80;
		server_name  test.fong.site;
		
        #先做第一种解析,http://test.fong.site/ 在这时,直接帮我访问127.0.0.1:8080/test/
		location / {
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
					proxy_connect_timeout 10;
					proxy_read_timeout 180;
					proxy_send_timeout 10;
			proxy_pass http://testup/test/;
		}
		
        #做第二种解析,http://test.fong.site/test/ 帮我访问127.0.0.1:8080/test/
		location /test/ {
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
					proxy_connect_timeout 10;
					proxy_read_timeout 180;
					proxy_send_timeout 10;
			proxy_pass http://testup/test/;
		}
		
	}

4.究竟什么是反向代理,与正向代理之间有什么区别和关系?
    正向代理:隐藏客户端,
        服务端不知道客户端是谁.    
    反向代理:隐藏服务端.
        客户端不知道服务端是谁.比如你找10086,你根本不知道会转接到哪个客服
    参考文章:http://weizhan.51cto.com/article/view/58ddb424f2dd874307652601

希望能帮你解决问题
本文出处:https://my.oschina.net/longfong/blog/802563

© 著作权归作者所有

共有 人打赏支持
leaon_tan
粉丝 2
博文 50
码字总数 15683
作品 0
广州
私信 提问
关于nginx的Httpredis模块

在研究和测试HttpRedis模块的时候,遇到一些疑惑,如下: 安装步骤就省了,看下配置文件吧 配置感觉没有问题,是按照官方的文档写的,但是不明白我该怎么测试nginx和redis可以正常的互相通信...

吕秀才
2013/07/25
3.1K
4
分布式相关概念

大家好,我没有多少项目经验,(此处感伤不多聊了),现在对分布式有很多疑问,看图 我的了解: 分布式:简而言之就是将一个复杂的业务拆分为多个小业务分别部署在不同服务器上进行工作 集群...

樱木花道VS康
2018/03/29
114
1
关于nginx的error_log记录php-fpm的错误信息

@红薯 你好,想跟你请教个问题: 问题的产生由于php的error_log里时间格式的BUG:https://bugs.php.net/bug.php?id=60723,少了8小时不习惯按时间点查问题,在没知道是BUG时打算采用nginx的v...

chinatree
2013/03/21
1K
0
nginx、fastCGI、php-fpm关系梳理

前言:   Linux下搭建nginx+php+memached(LPMN)的时候,nginx.conf中配需要配置fastCGI,php需要安装php-fpm扩展并启动php-fpm守护进程,nginx才可以解析php脚本。那么,这样配置的背后原理...

大圈
2015/08/25
0
1
Logstash+ElasticSearch+Kibana4日志分析系统安装

环境:centos6.5 64位 安装日志分析系统, Logstash+ElasticSearch+Kibana4基本上安装网上说明安装的。没有安装nginx代理 问题1:使用http://localhost:5601访问kibana界面的时候不能创建索引...

Jasecd
2015/11/18
4.8K
7

没有更多内容

加载失败,请刷新页面

加载更多

第1章

背景:因为最近在考教师资格证,考的是计算机学科,所以学科考的是:信息技术学科知识与教学能力;因此图书馆借了一本书,把最基本的知识看一遍,为之后的笔试和面试做充足的准备。 大学计算...

怪咖先生forever
33分钟前
1
0
element-ui之el-collapse-transition(折叠展开动画)源码解析学习

项目中发现同事使用了element-ui的el-collapse-transition来做折叠展开效果,打开源码看了下发现挺有意思,来解析学习一番。 el-collapse-transition的引入方式 // fade/zoom 等import 'e...

学霸猫
54分钟前
1
0
解释器模式_实战

前言 解释器模式是什么?这个设计模式其实比较冷门,不太会解释,用例子说明把。解释器模式一般用在sql,xml,json解析等场景。比如说你有一个json对象,你要获取这个对象中任意一个节点的值。...

grace_233
今天
6
0
告别2018

今天中午从喵喵家回来之后,倒头就睡到下午4点了。可能是之前透支的身体,在我放松下来后,开始觉得疲惫了,所以最近估计会进入嗜睡期。醒来之后,拿了包花生,开了瓶低糖菊花茶,听着网易云...

七木网络科技
今天
4
0
MySql数据库分表分区实践

1. 背景 —— 公司物联网项目 海量设备通过物联网服务接入云端,设备每30s上报一次自身数据(以下称为动态数据)。 物联网服务将设备上报的数据转发给数据处理网关,由数据入库网关执行批量入...

吴伟祥
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部