nginx安装

nginx 2进制安装
1.1 安装gcc
GCC用来对nginx源码进行编译

yum -y install gcc-c++

1.2 安装pcre
Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。
这里需要安装两个安装包pcre和pcre-devel。
第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码

yum install -y pcre pcre-devel

1.3 安装zlib
zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩

yum install -y zlib zlib-devel

1.4 安装安装Open SSL
nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http)。
如果使用了 https,需要安装 OpenSSL 库.

yum install -y openssl openssl-devel

2.1 官网下载安装包
官网下载地址: https://nginx.org/en/download.html
在这里插入图片描述
2.2 将安装包下载到/opt目录中

curl -O https://nginx.org/download/nginx-1.22.0.tar.gz

2.3 解压缩

tar -zxvf nginx-1.22.0.tar.gz

2.4 进入到解压后的目录执行配置命令

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

#配置
#--prefix指定安装目录
#--with-http_ssl_module安装https模块
#creating objs/Makefile 代表编译成功

2.5 编译

make

2.6 安装

make install

2.7 启动nginx

cd /usr/local/nginx/sbin
./nginx

到浏览器进行访问看nginx是否已经启动

三、配置环境变量
3.1 编辑/etc/profile文件

vi /etc/profile

添加nginx路径。
在这里插入图片描述
刷新配置文件

source /etc/profile

nginx被加入到了系统path环境变量中了
3.2 查看nginx的版本信息

nginx -v

nginx配置
一般匹配:
在这里插入图片描述
但是需要注意的是,如果输入的path和location都没有匹配中,并且存在一个空值的location,那么还是会去匹配这个空的,如下图:

在这里插入图片描述

= 精准匹配
当uri部分完全匹配上了,才路由到该location中,并且直接返回,哪怕后面存在其它的一些正则的location,也不会再去匹配了。如图
在这里插入图片描述
但是需要注意的是:精准匹配是不参与一般匹配的,如下图:
在这里插入图片描述
~ 不忽略大小的正则匹配
在这里插入图片描述
^~ 非正则匹配
在这里插入图片描述
优先级 在这里插入图片描述

在这里插入图片描述
但是,如果上面图中不写 “root /xxx/xxx”的话,那么nginx就是去找默认目录,即“/usr/local/nginx/html”,如果是用自义的目录,那么就必须使用root 指定。在实际使用中最好使用绝对目录,而少用相对目录。
【注意】:root 后面跟的目录要不要“/”都一样

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如上面图中所示,“ttt”相当于是对被负载的服务器作统一管理而取的名称,server指的是向nginx说明它是一个服务器,weight是表示权重,也就是说在被反向代理的时候,nginx会去轮询”ttt”里面的服务器,有2/3的命中“192.168.1.10:8080”这个服务器,有1/3的命中“192.168.1.102:8080”这个服务器。如果访问url为“www.enjoy_4/upstream_test/xxxx”,那么最终发送后是http://192.168.1.10:8080/xxxx和http://192.168.1.102:8080/xxxx,如果不权重weight不指定的话,那么就相当于是weight = 1,也就是说均匀的各一次。一个.conf文件中可以有多个upstream配置

在这里插入图片描述

rewrite
语法 :
rewrite regex replacement [flag]; 其中regex-正则,replacement-替换后面的结果, flag-处理的标志
flag=【break/last/redirect/permanent】
^/ 表示进入location后无论是什么都是匹配的。
如/xx.js,那么这样总是报错的。
一个location中可以有多个rewrite
在这里插入图片描述
permanent-也会和redirect一样的效果,只是一个是301重定向,一个是302重定向

如果rewrite后面没有被break打断的话,那么就有机会触发下一轮从上往下进行location的匹配,也就是需要将当前的location走完,然后再去匹配新的location了;但是使用last就会提前触发下一轮从上往下进行location匹配,也就是说不需要将当前的location走完,就去匹配新的location了。
有break则直接被打断,无论其后有没有其它的rewrite,也不再去匹配新的location了,若有root声明,就会去root声明的目录下找资源;
无则不会被打断,在当前的location中还是会依然自上往下走的,比如有在当前的location中写了多行rewrite,并且这些reswrite后均没 有break的话,则最后一行rewrite生效,若有root声明,也不会去root声明的目录下找资源,而是离开当前的location,去新的location 中做匹配。

在这里插入图片描述
在这里插入图片描述
还需要注意一点的是rewrite不仅可以写在location里面,还可以写在location外面,也可以实现对域名作重定向。如下图:
在这里插入图片描述什么意思呢? 也就是说如果请求地址为:http://sales.enjoy.com,最后会跳转到https://sales.enjoy.com

nginx配置文件修改后reload一下就可以了,不需要重新启动nginx

nginx -s reload**
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值