基础:

nginx配置文件主要分为六个区域:main section、events section、http section、sever section、

location section、upstream section。依据这个分类学习nginx的模块。

location 六种匹配模式:

/ 匹配所有

~ 正则表达式 区分大小写

~* 正则表达式 不区分大小写

= 精确匹配,结束继续匹配

^~ 普通字符匹配,如果匹配到,则结束继续匹配;找不到则继续匹配

@ 定义内部重定向 ,例如 error_page=@aaa

# @类似于变量定义
        # error_page 403 http://blog.csdn.net; #这种定义不允许,需求利用@定义临时变量来实现
        error_page 403 @page403;
        location @page403 {
            proxy_pass http://blog.csdn.net;
        }

1,负载均衡

可以有ip_hash,round-robin,least-connected。一般采用ip_hash,防止session在不同后端服务器切换时的session变换。但是ip_hash存在一个问题,就是同一个局域网无法实现负载均衡,需要用sticky_cookie_insert替代。

负载均衡使用upstream来设置,例如: upstream aaa {

  server: 10.1.1.100:8080;

server:10.1.1.101:9090;}

...

location / {

  proxy_pass http://aaa;}

2,权重

在负载均衡时,需要为每个服务器设置权重,否则容易造成一阶段内都访问一个服务器而其他几个服务器都空闲。

例如A.com weight=3 B.com C.com,表示5次访问里,3次进入A.com,1次进入B.com 2次进入C.com

3,fastcgi

一般php等程序处理时,需要用到一些参数,通过fashcgi会方便很多。

4,proxy_set_header

proxy_set_header Host $http_host;

proxy_set_header X-Real_IP $remote_addr;

proxy_set_header X-Forworded-For $proxy_add_x_forwarded_for;

以上两个解决nginx作为反向代理时能够把客户端ip等信息传达给后端的服务器.注意:$http_host和$server_name区别在于$http_host的端口不为80时,是含端口的,而$server_name是不含的。

proxy_set_header Cookie $http_cookie;把cookie值带到后端服务器,防止session发生变化

但是注意在后端服务器返回客户端时,需要通过设置proxy_cookie_domain和proxy_cookie_path来替换掉后端服务器的域名及路径信息,否则会造成session,cookie的不正确。

5,location反向代理得后缀反斜杠的问题。

location /service/

proxy_pass http://a.com;提交到后端服务器是http://a.com/service/

proxy_pass http://a.com/;提交到后端服务器是http://a.com/

6,内部域名映射

有些时候需要通过域名访问内部服务器,则要在/etc/hosts里添加配置如例:127.0.0.1 wap.a.com

内部机器最好通过域名访问,防止ip的变动,要修改好多东东。

7,反向代理时,参数域名的维持

proxy_pass http://$host$uri 或者proxy_pass $request或者$schema://$host$uri

见nginx里的变量:http://blog.chinaunix.net/uid-15117916-id-2777222.html

8,重定向后端的返回地址

使用proxy_redirect把返回给客户端的IP地址重新封装,例如:proxy_redirect http://a.com:9090/ /;

即把后端的端口和域名替换为对外公开的域名

nginx相关配置说明的更多相关文章

  1. Nginx location相关配置说明

    Nginx location相关配置说明       基于不同的IP.不同的端口以及不用得域名实现不同的虚拟主机,依赖于核心模块ngx_http_core_module实现. 新建PC web站点 [ ...

  2. tomcat及nginx相关,格式化输出,配置及日志解析

    1.https://www.cnblogs.com/jingmoxukong/p/8258837.html?utm_source=gold_browser_extension       Tomcat ...

  3. nginx 相关命令 nginx -s reload/stop/quit

    nginx 相关命令 学习了:https://www.cnblogs.com/zoro-zero/p/6590503.html start nginx  或者在linux上面直接 nginx ngin ...

  4. 服务器操作nginx相关操作命令

    服务器操作nginx相关操作命令 登录服务器: ssh root@0.0.0.0 -p 22100 启动nginx: /usr/local/nginx/sbin/nginx 查看nginx是否启动 p ...

  5. 转载:Nginx 相关介绍

    转载自:https://www.cnblogs.com/wcwnina/p/8728391.html Nginx 相关介绍(Nginx是什么?能干嘛?)   Nginx的产生 没有听过Nginx?那么 ...

  6. nginx的配置说明

    #定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数.worker_processes 8; #全局错误日志定义类型,[ debug | in ...

  7. FastDFS与Nginx的配置说明

    1.简介     FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载 ...

  8. Nginx 相关介绍(Nginx是什么?能干嘛?)

    Nginx的产生 没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器.基于REST架构风格,以统一资源描述符(Unifor ...

  9. nginx 相关命令

    验证配置是否正确: nginx -t 查看Nginx的版本号:nginx -V 启动Nginx:start nginx 快速停止或关闭Nginx:nginx -s stop 正常停止或关闭Nginx: ...

随机推荐

  1. 尽可能保留原有数据,建立UEFI与BIOS双启PE优盘

    尽可能保留原有数据,建立UEFI与BIOS双启PE优盘1.确保优盘或者移动硬盘有一个FAT32分区,如果没有FAT32分区,就用傲梅分区助手或者ppm转换一个现有的分区到FAT32分区0x0C,或者新 ...

  2. Innodb引擎 compact模式下元组的磁盘存储结构

    可变字符串长度:可变字符串长度: null vector 元组头(5个字节) 主键 trx id (6个字节) rollback pointer( 7个字节 ) 可变字符串 可变字符串   有了这个后 ...

  3. iOS中属性与成员变量的区别

    一.类Class中的属性property 在ios第一版中,我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: @interfa ...

  4. jquery.uploadify 动态传递参数

    最近 项目中使用到 uplaodify 来实现上传文件的功能.在传输动态参数的时候,遇到了问题! 使用官网提供的 settings 方法 官方例子function changeBtnText() {  ...

  5. SSM框架学习之高并发秒杀业务--笔记2-- DAO层

    上节中利用Maven创建了项目,并导入了所有的依赖,这节来进行DAO层的设计与开发 第一步,创建数据库和表. 首先分析业务,这个SSM匡济整合案例是做一个商品的秒杀系统,要存储的有:1.待秒杀的商品的 ...

  6. Windows Store App 近期访问列表

    Windows 8系统在管理用户的文件时,会将用户近期访问的文件添加到对应应用的近期访问列表中,所有的Windows应用商店应用都有各自的近期访问列表,根据文件的上一次访问时间,可以在列表中对文件进行 ...

  7. 自定义控件之 Combobox

    var ComboboxObj = function (id, url) { this.URL = url; //Ajax url this.ID = id; //combobox id this.m ...

  8. [双连通分量] POJ 3694 Network

    Network Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 9434   Accepted: 3511 Descripti ...

  9. UIImageWriteToSavedPhotosAlbum

    UIImageWriteToSavedPhotosAlbum: Next UIKit Function Reference Overview The UIKit framework defines a ...

  10. NodeJs和ReactJs单元测试工具——Jest

    Jest——Painless JavaScript UnitTesting 特点 适应性强 默认使用Jasmine断言 模块化的 可扩展的 可配置的 沙箱式且快速 虚拟化JS环境,模拟浏览器 并行运行 ...