什么是反向代理?Nginx 反向代理如何配置?
nginx 在日常工作中是一个不可缺少的服务,其中使用 nginx 做的事情最多的就是反反向代理,今天笔者带大家详细学习一下 nginx 反向代理。
让我们直接开始!
安装 nginx
在开始本文前,请先保证你的服务器已经安装好 nginx,安装 nginx 非常简单。
本文我将以 ubantu 系统为例,那么怎么在 ubantu 系统安装 nginx 呢?
只需要一条命令即可:
这里我就不带大家安装了,安装好后,执行一条命令:
如果出现以下结果:
则代表你的 nginx 安装成功了,我这里安装的是 1.14.0 的版本。
用apt-get install nginx
命令安装完 nginx 后,有几个默认的目录需要大家记一下:
主程序:
/usr/sbin/nginx
配置文件:
/etc/nginx
静态文件:
/usr/share/nginx
日志文件:
/var/log/nginx
这几个目录记好,后面配置的时候可能会用到。
当然了,用源码部署的方式安装你就可以自己定义路径了。
Nginx 几个重要的命令
启动:
./usr/sbin/nginx
或者service nginx start
重启:
./usr/sbin/nginx -s reload
或者service nginx restart
强行停止:
./usr/sbin/nginx -s stop
或者service nginx stop
优雅停止:
./usr/sbin/nginx -s quit
检测配置文件是否有错误:
./usr/sbin/nginx -t
指定配置文件:
./usr/sbin/nginx -c xxx.conf
什么是反向代理
代理服务器
要理解反向代理这个术语,首先了解一下什么是代理服务器?
代理服务器是放置在用户和网站之间来实现匿名的中间服务器,当通过代理服务器访问网站时,请求会发送到代理服务器,然后代理服务器会将其转发到网站,对于网站,请求看起来像来自代理服务器,这就是转发代理,也叫正向代理。
反向代理
服务器有时需要匿名来增强其安全性,这样,这样在目的服务器前置一般会放一个代理服务器,让用户感觉这个代理服务器就是目的服务器,保证了匿名性,这样的过程称为反向代理。
正向代理和反向代理的区别
简单的区别方法是正向代理位于客户端前面,确保服务器不直接与客户端通信。而反向代理位于服务器前面,并确保没有客户端直接与该服务器通信。
用两张图形象解释一下:
正向代理就好像,一个公司老板要去某个工地上要钱,老板不直接去,会派公司代表去,这个公司的代表其实就是代理服务器,代公司去处理事务,这个对于老板——>工地
是正向代理的关系。
反向代理就好像,去要钱的时候,工地很聪明,知道自己不想那么烦,就找了一个代账公司,这个代账公司对外就是代表这个工地,所以看起来和公司主体没有啥区别,那么这个代账公司就是反向代理的服务器。
Nginx 反向代理
Nginx 是一个开源的 Web 服务器,可以作为反向代理,根据知名统计网站统计,Nginx 的市场份额一直在稳步增长,并且已经超过 Apache:
Nginx 反向代理用途
负载均衡来控制路由传入请求
监控、重定向和记录流量
公开/保护您的后端服务
加快网络访问速度
Nginx 反向代理例子
如图,我们要达到一个效果,访问127.0.0.1:9999
,反向代理到我们的网站https://www.wljslmz.cn
.
先看下 nginx 的配置:
listen:表示 nginx 监听的端口,也就是你在浏览器输入的端口号。
server_name:表示 nginx 监听的地址,也就是你在浏览器输入的地址或者域名
location:用来匹配不同的 url,这里/代表根路径。
proxy_pass:代理的指令,我们这里是代理到
https://www.wljslmz.cn
这个时候,重载 nginx 配置,然后在浏览器输入:
代理后:
我们可以很清晰的看到代理成功!
这里我们通过案例,简单的介绍了 nginx 的反向代理,在生产测试的时候,还要根据不同的场景进行配置。
版权声明: 本文为 InfoQ 作者【wljslmz】的原创文章。
原文链接:【http://xie.infoq.cn/article/2381cc31642255e549ca12aea】。未经作者许可,禁止转载。
评论