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负载均衡:就是有很多的媒婆经过商量给你选出最适合你的姑娘, ...
随机推荐
- lambda表达式快速创建
Java 8十个lambda表达式案例 1. 实现Runnable线程案例 使用() -> {} 替代匿名类: //Before Java 8: new Thread(new Runnable( ...
- promise ,async 小记
Promise Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及该异步操作的结果值. 摇色子游戏,随机1-6的一个整数,并且将其返回. function fn() { retur ...
- Maven配置大全
maven项目打jar包(带依赖) <build> <plugins> <plugin> <artifactId>maven-assembly-plug ...
- 结合redis缓存的方式,查询和展示分类信息
package cn.itcast.travel.service.impl;import cn.itcast.travel.dao.CategoryDao;import cn.itcast.trave ...
- MySQL-核心技术
1.基本查询语句 1.1使用select 语句查询一个数据表 select * from user; 1.2 查询表中的一列或多列 select id,ixdh from user; 1.3从一个表或 ...
- 【紧急】继续折腾,Log4j再发2.1.6,强烈建议升级
背景 继前天正式发布的2.15.0之后,Apache log4j 2 团队宣布 Log4j 2.16.0 发布! 由于SLF4J适配兼容性的中断,Log4j 现在发布两个版本的SLF4J to Log ...
- Winamp栈溢出漏洞研究
Winamp作为一款在90年代最主流的音乐播放器,到现在仍有大量的忠实粉丝.当然也存在很多漏洞.下面具体分析的就是打开软件的更新历史信息而触发的一个缓冲区溢出漏洞. 0X01漏洞重现 正常的whats ...
- Sql Server、Oracle、MySQL 日期格式化函数处理
目录 Sql Server Oracle MySql Sql Server CONVERT ( '取数长度' , '时间' , '类型') 查询对应时间: 2021-03-17T19:18:18.00 ...
- Table.NestedJoin合并…Join(Power Query 之 M 语言)
数据源: "销量表"和"部门表"两个查找表,每个表中都有"姓名"列 目标: 根据"姓名列"将"部门表" ...
- 合并项目(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 在熬肥的世界里,有个大难题,就是多文件合并-- 好吧,以前是大难题,现在,早就不是了,Word有主控文档,Excel有&q ...