Nginx的模块--realip,image和https模块

1.获取被反向代理访问的客户端真实ip

1.在server1上创建一个虚拟主机测试语法

vim /usr/local/nginx/conf/nginx.conf		##修改配置文件
curl -H "X-Forwarded-For: 2.2.2.2,172.25.16.1" server1.example.com		##它应该获取到的时2.2.2.2

修改完成后发现无法重新加载,查看报错是因为无法时别real_ip指令,所以我们需要重新编译并加上这个模块
注意:编译时的安装位置和上次添加的模块必须相同,如果忘记了可以用/usr/local/nginx/sbin/nginx -V 查看编译的详细信息
./configure --prefix=/usr/local/nginx --with-file-aio --with-http_realip_module
make
[root@server1 nginx-1.17.1]# cp ./objs/nginx /usr/local/nginx/sbin/nginx -f
/usr/local/nginx/sbin/nginx -t
systemctl reload nginx

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
测试:

在这里插入图片描述
在这里插入图片描述

2.用两台主机实现realip的获取
1.server1(注释掉上个实验的内容)

vim /usr/local/nginx/conf/nginx.conf			##修改配置文件
systemctl reload nginx
scp -r /usr/local/nginx/ server2:/usr/local/	##把nginx目录直接发给server2使用,减少操作步骤

在这里插入图片描述2.server2反向代理nginx服务器的设定:(把server1的修改全部注释掉)

vim /usr/local/nginx/conf/nginx.conf		##修改配置文件
/usr/local/nginx/sbin/nginx					##启动服务    		

在这里插入图片描述
在这里插入图片描述

测试:

在物理机:

vim /etc/hosts						##先添加域名解析
curl -I www.example.com				##访问域名,查看server1的access日志

tail -f /usr/local/nginx/logs/access.log	##查看server1的日志可以看到获取到了真机的ip地址

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

2.image模块的使用

1.模块的编译安装和导入

/usr/local/nginx/sbin/nginx -V				##在重新编译之前确定自己现在的环境和添加的模块
./configure --help | grep image				##查找image模块
[root@server1 nginx-1.17.1]# ./configure --prefix=/usr/local/nginx --with-file-aio --with-http_realip_module
--with-http_image_filter_module=dynamic			##添加的模块和安装的位置必须和之前的环境相同
##执行完编译命令后很可能会报错,缺少编译环境

在这里插入图片描述
在这里插入图片描述2.安装编译环境

下载并安装这个GD编译环境,重新编译,自身yum源没有,需要从网上下载,且版本应与nginx编译的版本相同
本机使用的是:gd-devel-2.0.35-26.el7.x86_64.rpm
yum install gd-devel-2.0.35-26.el7.x86_64.rpm -y		##安装编译环境
[root@server1 nginx-1.17.1]# ./configure --prefix=/usr/local/nginx --with-file-aio --with-http_realip_module
 --with-http_image_filter_module=dynamic				##再次执行编译脚本
make													##编译生成二进制文件
cp -f ./objs/nginx /usr/local/nginx/sbin/nginx			##覆盖旧的二进制文件
cd ./objs						##进入后ls查看安装的image模块

mkdir /usr/local/nginx/modules				##因为这不是内置的模块,所以要导入使用,创建一个存放这种模块的目录
cp ngx_http_image_filter_module.so /usr/local/nginx/modules/		##把模块复制过去

在这里插入图片描述
在这里插入图片描述继续编译
在这里插入图片描述安装
在这里插入图片描述

使模块生效
在这里插入图片描述在这里插入图片描述在这里插入图片描述
3.编辑配置文件

修改配置文件将模块导入使用:
vim /usr/local/nginx/conf/nginx.conf		##修改配置文件,
systemctl reload nginx						##本次演示的是像素的修改方法,若想知道更多应用请查看官网的帮助手册

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
未使用image模块前
在这里插入图片描述使用后
在这里插入图片描述

3.https模块的使用

1.模块的编译安装和导入(与image模块类似)

/usr/local/nginx/sbin/nginx -V			##首先查看已经编译安装的模块和位置
./configure --help | grep ssl			##查找https模块
[root@server1 nginx-1.17.1]# ./configure --prefix=/usr/local/nginx --with-file-aio --with-http_realip_module
 --with-http_image_filter_module=dynamic --with-http_ssl_module			##编译安装
make									##生成二进制文件
cp -f ./objs/nginx /usr/local/nginx/sbin/nginx		##覆盖旧的二进制文件
systemctl reload nginx					##重新加载服务
cp ./objs/ngx_http_image_filter_module.so /usr/local/nginx/modules/		##原来的模块在编译后已经不能用了,所以把新的
																		##再次导入
systemctl reload nginx			  	##使策略服务		

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述2.建立虚拟主机,生成证书

vim /usr/local/nginx/conf/nginx.conf		##修改配置文件,创建一个虚拟主机用来https的访问
cd /etc/pki/tls/certs/						##进入证书目录
ls											##可以看到现在还没有证书模块
make cert.pem								##生成证书

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值