文档章节

nginx一些问题或者疑惑

leaon_tan
 leaon_tan
发布于 2016/12/08 19:28
字数 845
阅读 11
收藏 1
点赞 0
评论 0

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

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
博文 45
码字总数 15683
作品 0
广州
关于nginx的Httpredis模块

在研究和测试HttpRedis模块的时候,遇到一些疑惑,如下: 安装步骤就省了,看下配置文件吧 upstream redis {server 127.0.0.1:6379;keepalive 1024;} server { } 配置感觉没有问题,是按照官...

吕秀才 ⋅ 2013/07/25 ⋅ 4

nginx、fastCGI、php-fpm关系梳理

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

大圈 ⋅ 2015/08/25 ⋅ 0

关于nginx的error_log记录php-fpm的错误信息

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

chinatree ⋅ 2013/03/21 ⋅ 0

Logstash+ElasticSearch+Kibana4日志分析系统安装

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

Jasecd ⋅ 2015/11/18 ⋅ 7

后台集群应用互相访问的问题(反向代理,RPC?)

请问一个问题,我们整个系统环境就只需要用到十几台机器,在做spring security 集群开发布署时,security本身信息除了SESSION 需要统一存储外, 2个相同security应用 分别布署在2台机器上, 现在...

liuxins_udi ⋅ 2016/06/22 ⋅ 2

php-fpm安装启动的php5.3.10,怎么安装加速器eaccelerator,或者zendOptimizer,或者ZendGuardLoader

小弟最近终于在centOS上(6.2)搭建起了环境。由于想用nginx,所以使用php-fpm。完了装加速器的时候纠结了,研究了一天的eaccelerator,发现怎么装也装不上,最后在oschina上看见: eacceler...

ain017 ⋅ 2012/03/13 ⋅ 12

关于用J2EE做网站的注意事项?

如题,最近遇到一点疑惑,java做网站,特别是互动比较大点的网站什么结构最合适,一些开源框架的取舍,听不少人说用框架做网站显得很臃肿,会影响效率,小弟出道一年,没有接触多么庞大的网站...

杨某某 ⋅ 2013/01/17 ⋅ 5

nginx缓存静态文件的一点疑惑

最近做nginx+tomcat集群测试,遇到一点疑惑就是我做动静分离,tomcat只解决动态数据请求,至于CSS,js等等由nginx直接读取,也做了配置: location ~ .*.(js|css)?$ { root D:/nginx/www/; e...

杨某某 ⋅ 2012/12/21 ⋅ 3

关于bench.sh网站的实现

关于bench.sh网站的实现 奶牛博客2017-12-210 阅读 rewriteLinuxNginxUbuntu 最近看到一条命令很有意思,一起来和大家解读一下,这个网站就是 bench.sh 。 可能搞VPS的朋友很熟悉一条命令 用...

奶牛博客 ⋅ 2017/12/21 ⋅ 0

构造HTTP请求Header实现“伪造来源IP”

构造 HTTP请求 Header 实现“伪造来源 IP ” 在阅读本文前,大家要有一个概念,在实现正常的TCP/IP 双方通信情况下,是无法伪造来源 IP 的,也就是说,在 TCP/IP 协议中,可以伪造数据包来源...

bengozhong ⋅ 2016/02/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 17分钟前 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 44分钟前 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 52分钟前 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 58分钟前 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

容器之查看minikue的environment——minikube的环境信息

执行如下命令 mjduan@mjduandeMacBook-Pro:~/Docker % minikube docker-envexport DOCKER_TLS_VERIFY="1"export DOCKER_HOST="tcp://192.168.99.100:2376"export DOCKER_CERT_PATH="/U......

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部