Nginx配置反向代理访问内部服务
Posted Helloweba
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx配置反向代理访问内部服务相关的知识,希望对你有一定的参考价值。
nginx可以提供高性能的反向代理服务,将客户机请求转发给内部网络中隐藏在幕后的真正的服务器,并将从服务器上得到的结果数据返回给Internet上请求的客户端,在用户看来,Nginx扮演的就是真实服务器。
现在许多大型web网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。本文主要给大家介绍使用Nginx配置反向代理。
实际开发中,我们有很多应用服务在后端,提供特定的端口访问,而由于防火墙的阻拦,一般情况下,用户无法访问内部服务器上的应用。比如:nodejs提供的内网访问环境,swoole提供的内部服务等。
准备
然后修改本地host,使得可以通过域名访问到服务器。
192.168.11.34 mytest.com
配置反向代理
在/usr/local/nginx/conf/vhost/下新建mytest.com.conf配置文件,内容如下:
server
{ listen 80; server_name mytest.com;
location / { proxy_pass http://192.168.11.34:8181/;
}
location /my { proxy_pass http://192.168.11.34:8282/;
}
error_page 404 /404.html;
}
保存并重新加载Nginx配置:
/usr/local/nginx/sbin/nginx -s reload
验证
开启防火墙,只允许对外开放80端口,其他端口不允许外部访问,如何设置防火墙?
打开浏览器,访问:http://mytest.com/
浏览器访问:http://mytest.com/my
这样我们就实现了nginx的反向代理功能。我们可以看到,使用域名访问80端口,可以得到内部后端服务器不同端口返回的数据,并不需要访问内部端口的方式得到数据,实际上这些内部端口也不会对外开放,这样给用户的感觉就是访问了域名对应的服务器。
以上是关于Nginx配置反向代理访问内部服务的主要内容,如果未能解决你的问题,请参考以下文章