Nginx 的其中一个用途是做 HTTP 反向代理,下面简单介绍 Nginx 作为反向代理服务器的方法。
代理
代理服务器顾名思义,客户机在向目的主机发送请求的时候,不会直接发送,而是先发送给代理服务器,代理服务器接受客户机请求之后,再向之际发出。代理服务器同样可以接收主机返回的数据,存放在代理服务器的硬盘中,再发给客户机。核心是转发
。
反向代理
正向代理代理客户端,反向代理代理服务器。 正向代理,架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。
正向代理,架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。
对于反向代理,代理服务器站在服务器一侧,由服务器方运维人员管理,在客户端看来,代理服务器就是真实服务器,从而可以隐藏真实服务器。
Nginx
Nginx作为近年来较火的反向代理服务器,安装在目的主机端,主要用于转发客户机请求,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定哪台目标主机来处理当前请求。
示例
使用 nginx 反向代理 www.123.com 直接跳转到127.0.0.1:8080
- 启动一个 tomcat,浏览器地址栏输入 127.0.0.1:8080,出现如下界面
- 通过修改本地 host 文件,将 www.123.com 映射到 127.0.0.1
127.0.0.1 www.123.com
配置完成之后,我们便可以通过 www.123.com:8080 访问到第一步出现的 Tomcat初始界面。
那么如何只需要输入 www.123.com 便可以跳转到 Tomcat初始界面呢?便用到 nginx的反向代理。
- 在 nginx.conf 配置文件中增加如下配置:
server {
listen 80;
server_name www.123.com;
location / {
proxy_pass http://127.0.0.1:8080;
index index.html index.htm index.jsp;
}
}
如上配置,我们监听80端口,访问域名为www.123.com
,不加端口号时默认为80端口,故访问该域名时会跳转到127.0.0.1:8080路径上。
我们在浏览器端输入www.123.com
结果如下:
- 总结 其实这里更贴切的说是通过nginx代理端口,原先访问的是8080端口,通过nginx代理之后,通过80端口就可以访问了。 我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=5rq8lfk58flb