Nginx 全模块安装及匹配方式、反向代理和负载均衡配置
一、安装 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 全模块安装及匹配方式、反向代理和负载均衡配置的更多相关文章
- Nginx反向代理实现负载均衡配置图解
Nginx反向代理实现负载均衡配置图解 [导读] 负载均衡配置是超大型机器需要考虑的一些问题,同时也是数据安全的一种做法,下面我来介绍在nginx中反向代理 负载均衡配置图解,大家可参考本文章来操作. ...
- Nginx入门篇(六)之反向代理和负载均衡
一.Nginx负载均衡集群 介绍 负载均衡(Load Balance)集群提供了一种行之有效的办法,来扩展网络设备和服务器负载.带宽和吞吐量,同时加强了网络数据处理能力,提供了网络的灵活性和可用性. ...
- Nginx反向代理以及负载均衡配置
项目地址:http://git.oschina.net/miki-long/nginx 前提:最近在研究nginx的用法,在windows上小试了一下,由于windows下不支持nginx缓存配置,所 ...
- 【nginx网站性能优化篇(3)】反向代理实现负载均衡
注意,本篇文章为负载均衡的理论篇,后续找个机会推出实战篇.理论篇主要讲述如何配置负载均衡,配置负载均衡不难.难的是真正的实战,比如如何做到多服务器之间的数据共享(session,file等),多cac ...
- nginx 反向代理实现负载均衡*配置实战
重要点: 1配置反向代理多虚拟主机节点服务器 2经过反向代理后的节点服务器记录用户IP 3与反向代理配置相关的更多参数说明 4根据URL目录地址转发 (1)根据URL中的目录地址实现代理转发(动静分离 ...
- Nginx反向代理,负载均衡配置
主配置文件:nginx.conf # For more information on configuration, see: # * Official English Documentation: h ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- 循序渐进nginx(二):反向代理、负载均衡、缓存服务、静态资源访问
目录 反向代理 使用 1.创建代理目标服务端: 2.配置nginx反向代理目标服务端: 3.测试使用: 负载均衡 使用 1.准备服务端 2.修改nginx配置 3.测试 负载均衡策略 负载均衡的额外参 ...
- nginx反向代理与负载均衡
一:nginx反向代理与负载均衡配置思路与用法 1.nginx反向代理:就是你去相亲时,媒婆就是这里的代理,让媒婆带你去见姑娘 2.nginx负载均衡:就是有很多的媒婆经过商量给你选出最适合你的姑娘, ...
随机推荐
- 数据源(Data Source
数据源(Data Source)顾名思义,数据的来源,是提供某种所需要数据的器件或原始媒体.在数据源中存储了所有建立数据库连接的信息.就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数 ...
- 【Python】【Module】re
python中re模块提供了正则表达式相关操作 字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配 ...
- 使用 IntelliJ IDEA 远程调试 Tomcat
一.本地 Remote Server 配置 添加一个Remote Server 如下图所示 1. 复制JVM配置参数,第二步有用 2. 填入远程tomcat主机的IP地址和想开启的调试端口(自定义) ...
- 【MySQL】亲测可用的教程筛选:安装与卸载
windows版本的 安装看这篇,非常详细:https://www.cnblogs.com/winton-nfs/p/11524007.html 彻底清除:https://www.pianshen.c ...
- 转:UITableView学习笔记
UITableView学习笔记 作者:一片枫叶 看TableView的资料其实已经蛮久了,一直想写点儿东西,却总是因为各种原因拖延,今天晚上有时间静下心来记录一些最近学习的 TableV ...
- SimpleCursorAdapter 原理和实例
SimpleCursorAdapter 1. 原理参见下面代码注释 Cursor cursor = dbHelper.fetchAllCountries(); //cursor中存储需要加载到list ...
- WHUCTF PWN题目
花了大概两天时间来做WHUCTF的题目,第一次排名这么靠前.首先感谢武汉大学举办这次萌新赛,也感谢fmyy的师傅的耐心指导,让我第一次做出堆的题目来. pwnpwnpwn 这是一道栈题目,32位程序, ...
- tomcat架构分析及配置详解
浏览器访问服务器的流程 请求发起的过程: 注意:浏览器访问服务器使用的是http协议,http是应用层协议,而具体传输还是使用的TCP/IP协议 Tomcat系统总架构 2.1 Tomcat请求处理过 ...
- Table.SplitColumn拆分…Split…(Power Query 之 M 语言)
数据源: 一列若干行数据. 目标: 根据特定条件拆分 操作过程: 选取"品名"列>[主页](或[转换])>[拆分列] 选取"品名"列>[主页] ...
- 周期性任务(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 话说录入任务信息是件体力活,每个任务都是要一个字一个字码出来滴.要说一个项目文件,任务内容是主体,所以这作为体力活也不冤枉 ...