一、安装 OpenResty

OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

官网:https://openresty.org/cn/

[root@localhost ~]# wget https://openresty.org/package/centos/openresty.repo
[root@localhost ~]# sudo mv openresty.repo /etc/yum.repos.d/
[root@localhost ~]# sudo yum check-update
[root@localhost ~]# sudo yum install -y openresty

管理 OpenResty

[root@localhost ~]# systemctl start openresty.service
[root@localhost ~]# systemctl enable openresty.service

配置文件路径

[root@localhost nginx]# pwd
/usr/local/openresty/nginx

也可以像 nginx 一样管理

[root@localhost sbin]# /usr/local/openresty/nginx/sbin/nginx -s reload
[root@localhost sbin]# /usr/local/openresty/nginx/sbin/nginx -s stop
[root@localhost sbin]# /usr/local/openresty/nginx/sbin/nginx -t

二、匹配方式

2.1 通用匹配

...
server {
listen 80;
server_name localhost;
default_type text/html; # 以html标签格式直接返回信息。 # 通用匹配优先级最低。
location / {
echo "hello nginx";
}
}

测试结果

2.2 完全匹配

完全匹配是优先级别最高的匹配,如果满足则直接匹配。

        location = /a {
echo "=/a";
}

测试结果

2.3 进行前缀匹配

# 第二高优先级匹配
location ^~ /a {
echo "^~ /a";
}

测试结果

2.4 正则表达式匹配

# 匹配优先级第三
location ~ ^/\w {
echo "~ ^/\w";
}

测试结果

[root@localhost ~]# curl http://localhost/a
=/a
[root@localhost ~]# curl http://localhost/b
~ ^/\w

2.5 按照匹配程度

同优先级的,按照匹配程度较高的先匹配

        location ^~ /a {
echo "^~ /a";
}
location ^~ /a/b {
echo "^~ /a/b";
}

测试结果

[root@localhost ~]# curl http://localhost/a/b
^~ /a/b
[root@localhost ~]# curl http://localhost/a/c
^~ /a
[root@localhost ~]# curl http://localhost/a/b/c
^~ /a/b

匹配程度一样的,则写在前面的先匹配

        location ~ ^/\w {
echo "~ ^/\w";
}
location ~ ^/[a-z] {
echo "~ ^/[a-z]";
}
[root@localhost ~]# curl http://localhost/g
~ ^/\w

调换位置之后

        location ~ ^/[a-z] {
echo "~ ^/[a-z]";
}
location ~ ^/\w {
echo "~ ^/\w";
}

测试结果

[root@localhost ~]# curl http://localhost/g
~ ^/[a-z]

三、反向代理

3.1 常用代理

代理追加虚拟路径,如果是代理到根目录,需要加上“/”,否则找不到页面。

        location /a/ {
proxy_pass http://192.168.115.21:8081/;
}

测试结果

多个代理

        location /a/ {
proxy_pass http://192.168.115.21:8081/;
}
location /b/ {
proxy_pass http://192.168.115.21:8080/;
}

测试结果

3.2 根据不同的域名代理

    server
{
listen 80;
server_name test.xxxxx.net;
location / {
proxy_redirect off;
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_pass http://192.168.3.222;
}
}
server
{
listen 80;
server_name wiki.xxxxx.net;
location / {
proxy_redirect off;
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_pass http://127.0.0.1:8181;
}
}

测试结果

四、负载均衡

4.1 随机负载

    upstream group1 {
server 192.168.115.21:8080;
server 192.168.115.21:8081;
}
location /a/ {
proxy_pass http://group1/;
}

4.2 配置权重

    upstream group1 {
server 192.168.115.21:8080 weight=1;
server 192.168.115.21:8081 weight=1;
} location /a/ {
proxy_pass http://group1/;
}

Nginx 全模块安装及匹配方式、反向代理和负载均衡配置的更多相关文章

  1. Nginx反向代理实现负载均衡配置图解

    Nginx反向代理实现负载均衡配置图解 [导读] 负载均衡配置是超大型机器需要考虑的一些问题,同时也是数据安全的一种做法,下面我来介绍在nginx中反向代理 负载均衡配置图解,大家可参考本文章来操作. ...

  2. Nginx入门篇(六)之反向代理和负载均衡

    一.Nginx负载均衡集群 介绍 负载均衡(Load Balance)集群提供了一种行之有效的办法,来扩展网络设备和服务器负载.带宽和吞吐量,同时加强了网络数据处理能力,提供了网络的灵活性和可用性. ...

  3. Nginx反向代理以及负载均衡配置

    项目地址:http://git.oschina.net/miki-long/nginx 前提:最近在研究nginx的用法,在windows上小试了一下,由于windows下不支持nginx缓存配置,所 ...

  4. 【nginx网站性能优化篇(3)】反向代理实现负载均衡

    注意,本篇文章为负载均衡的理论篇,后续找个机会推出实战篇.理论篇主要讲述如何配置负载均衡,配置负载均衡不难.难的是真正的实战,比如如何做到多服务器之间的数据共享(session,file等),多cac ...

  5. nginx 反向代理实现负载均衡*配置实战

    重要点: 1配置反向代理多虚拟主机节点服务器 2经过反向代理后的节点服务器记录用户IP 3与反向代理配置相关的更多参数说明 4根据URL目录地址转发 (1)根据URL中的目录地址实现代理转发(动静分离 ...

  6. Nginx反向代理,负载均衡配置

    主配置文件:nginx.conf # For more information on configuration, see: # * Official English Documentation: h ...

  7. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

  8. 循序渐进nginx(二):反向代理、负载均衡、缓存服务、静态资源访问

    目录 反向代理 使用 1.创建代理目标服务端: 2.配置nginx反向代理目标服务端: 3.测试使用: 负载均衡 使用 1.准备服务端 2.修改nginx配置 3.测试 负载均衡策略 负载均衡的额外参 ...

  9. nginx反向代理与负载均衡

    一:nginx反向代理与负载均衡配置思路与用法 1.nginx反向代理:就是你去相亲时,媒婆就是这里的代理,让媒婆带你去见姑娘 2.nginx负载均衡:就是有很多的媒婆经过商量给你选出最适合你的姑娘, ...

随机推荐

  1. 培训班输出的大量学员,会对IT行业产生哪些影响?

    先说下会有哪些影响呢?   1 可能也就是些大城市的,规模比较大的,口碑比较好的培训学校输出的码农才能入行,而且能做长久.一些线上的所谓培训机构,或者小城市的培训学校,输出的能入行的码农,其实规模很有 ...

  2. TSN 时间敏感网络:缘起 (TSN历史与现状)

    前言 随着工业物联网(IIoT)的兴起和工业4.0的提出,越来越多的设计师.工程师和最终用户关注时间敏感网络(Time-Sensitive Networking,下简称为TSN).TSN为以太网提供确 ...

  3. 发布iOS应用(xcode5)到App Store(苹果商店) 详细解析

    发布iOS应用(xcode5)到App Store(苹果商店) 详细解析 作者:Memory 发布于:2014-8-8 10:44 Friday IOS 此教程可能不太适合,请移步至最新最全的:201 ...

  4. 如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

    原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...

  5. get_started_3dsctf_2016 1

    拿到题目,依旧还是老样子,查看程序开启的保护和位数 可以看到程序开启了nx保护是32位程序,于是我们把程序放入ida32编译一下 一打开就能看到非常明显的get_flag这个程序,f5观察伪代码 当a ...

  6. [V&N2020 公开赛]babybabypwn

    写在开头,感谢"影二つ"师傅的指点. 题目的做法思路网上一搜一大把,这篇博客主要记录一下这道题用pwntools写srop的时候,为什么需要省略前面8个字节. 在看题目之前,先来学 ...

  7. 学习型的“文山表海无限发展公司”——《Office妖精是怎样炼成的》续1

    本篇无故事情节版:https://www.cnblogs.com/officeplayer/p/14841590.html <Office妖精是怎样炼成的>http://blog.sina ...

  8. 工期设定(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 任务录入好以后,就得安排工期了不是,要不然每一个任务都如自动设置的从今天开始一个工作日内完成,这么简单的话,还要Proje ...

  9. int i=i++;和i=++i;和i++

    1.int i=i++; 2.i=++i; 3.i++

  10. CF919B Perfect Number 题解

    Content 给定一个数字 \(k\),求出第 \(k\) 小的各数位和为 \(10\) 的数. 数据范围:\(1\leqslant k\leqslant 10000\). Solution 这题为 ...