nginx——反向代理,https加密证书,重定向

反向代理

准备:

反向代理的实现要准备两台虚拟机,一台模拟真实服务器,一台作为代理服务器,在这两台虚拟机都安装nginx,详见nginx——版本的热省级和版本回退中的安装配置,两台虚拟机安装的参数一样。
主机ip:
server1: 172.25.62.1(真实服务器)
server2: 172.25.62.2(代理服务器)

步骤:

1.在真实服务器server1上进行配置

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf
 41         set_real_ip_from 172.25.62.2;		##代理主机的ip地址
 42         real_ip_header X-Forwarded-For;		##获得客户端访问代理的请求报文头获得真实IP	
 43         real_ip_recursive on;				##打开获取功能

在这里插入图片描述在server中添加real_ip等参数,这样,真实服务器的配置就完成了。

[root@server1 ~]# /usr/local/nginx/sbin/nginx -t
[root@server1 ~]# /usr/local/nginx/sbin/nginx

打开nginx服务。

2.修改代理主机server2的配置

[root@server2 nginx-1.16.0]# vim /usr/local/nginx/conf/nginx.conf
 upstream redhat {							
                 server 172.25.62.1:80;		##真实主机的ip
 }

在http中添加
在这里插入图片描述

118     server {
119         listen 80;
120         server_name www.redhat.org;		##设置访问域名,直接访问这个域名访问到的是server2主机。
121 
122         location / {
123                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
124                 proxy_pass http://redhat;	##这里定义的名字要和上面配置设置的相符。
125         }
126         }

添加虚拟主机,之后我们要实现的效果是,访问www.redhat.org,可以访问到主机server1。

[root@server2 nginx-1.16.0]# /usr/local/nginx/sbin/nginx  -t
[root@server2 nginx-1.16.0]# /usr/local/nginx/sbin/nginx

同样的,打开服务就可以了

3.在两台主机的发布目录上编写测试页

如在server1:

vim /usr/local/nginx/html/index.html

里面的内容为方便测试,我就写的server1,在server2,就填server2,这样在测试时就可以准确判断访问的到底是哪台主机。

测试:

使用客户主机进行测试,测试时要先添加一下域名解析,因为我们要使用域名www.redhat.org进行访问。

[root@foundation62 ~]# vim /etc/hosts

在这里插入图片描述
访问:
在这里插入图片描述
反向代理成功。

nginx的https加密

1.修改配置文件

[root@server1 conf]# vim /usr/local/nginx/conf/nginx.conf
108     server {
109         listen       443 ssl;
110         server_name  www.redhat.org;			##设置访问的域名
111 
112         ssl_certificate      cert.pem;
113         ssl_certificate_key  cert.pem;	
114 
115         ssl_session_cache    shared:SSL:1m;
116         ssl_session_timeout  5m;
117 
118         ssl_ciphers  HIGH:!aNULL:!MD5;
119         ssl_prefer_server_ciphers  on;
120 
121         location / {
122             root   /web;		##设置发布目录
123             index  index.html index.htm;
124         }
125     }

打开nginx的加密功能
2.创建发布目录,编写发布页

[root@server1 conf]# mkdir /web
[root@server1 conf]# vim /web/index.html

在这里插入图片描述

3.生成加密证书

首先进入要生成证书的目录

[root@server1 conf]# cd /etc/pki/tls/certs/
[root@server1 certs]# make cert.pem

生成加密证书
在这里插入图片描述
生成加密证书,生成过程中要填写一些信息。
在这里插入图片描述
生成证书cert.pem。
之后再将将生成的证书cert.pem复制到/usr/local/nginx/conf/目录就可以了
在这里插入图片描述
最后重新加载配置。

测试:

首先,要在做本地解析
在这里插入图片描述
在浏览器输入https://www.redhat.org进行测试
在这里插入图片描述

在这里插入图片描述
选择证书就可以进入页面,这样就完成了加密。
在这里插入图片描述

nginx的域名重定向

1.临时重定向

[root@server1 conf]# vim /usr/local/nginx/conf/nginx.conf
108     server {
109         listen       443 ssl;
110         server_name  localhost;
111 
112         ssl_certificate      cert.pem;
113         ssl_certificate_key  cert.pem;
114 
115         ssl_session_cache    shared:SSL:1m;
116         ssl_session_timeout  5m;
117 
118         ssl_ciphers  HIGH:!aNULL:!MD5;
119         ssl_prefer_server_ciphers  on;
120 
121         location / {
122             root   /web;
123             index  index.html index.htm;
124         }
125     }
126     server{
127         listen 80;
128         server_name www.redhat.org;
129         rewrite ^/(.*)$ https://www.redhat.org/$1;
130     }

测试:
在这里插入图片描述
输入www.redhat.org会自动定向到https://www.redhat.org,302表示临时重定向
2.永久重定向
和临时重定向不同的是,永久重定向只是在rewrite后面加了一个permanent参数
在这里插入图片描述
测试:
在这里插入图片描述
301表示永久重定向。
不同域名的重定向

[root@server1 conf]# vim /usr/local/nginx/conf/nginx.conf
126     server{
127         listen 80;
128         server_name www.redhat.org bbs.redhat.org;
129         root    /bbs;
130         rewrite ^/bbs$ https://bbs.redhat.org/index.html permanent;
131     }

修改配置文件。

[root@server1 conf]# mkdir /bbs
[root@server1 conf]# vim /bbs/index.html

在这里插入图片描述
创建发布目录,编写测试页。

[root@server1 conf]# /usr/local/nginx/sbin/nginx -s reload

重新加载配置。
之后在浏览器输入www.redhat.org/bbs,可以定向到https://bbs.redhat.org。
在进行测试时要注意是否添加了本地解析。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值