Nginx反向代理80XX端口_Nginx反向代理Tomcat转发
2018-09-04 14:23:20  By: dwtedx

Nginx可以提供高性能的反向代理服务,将客户机请求转发给内部网络中隐藏在幕后的真正的服务器,并将从服务器上得到的结果数据返回给Internet上请求的客户端,在用户看来,Nginx扮演的就是真实服务器。现在许多大型web网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。本文主要给大家介绍使用Nginx配置反向代理。

实际开发中,我们有很多应用服务在后端,提供特定的端口访问,而由于防火墙的阻拦,一般情况下,用户无法访问内部服务器上的应用。比如:nodejs提供的内网访问环境,swoole提供的内部服务等。


准备

本文中,我们准备一台CentOS虚拟机(IP:192.168.11.34),安装好Nginx,并配置好两个站点:本机IP:8181和本机IP:8282。我们要实现的效果是:用户访问http://mytest.com域名,相当于访问端口号为8181的站点,用户访问http://mytest.com/my地址,相当于访问端口号为8282的站点。

然后修改本地host,使得可以通过域名访问到服务器。

192.168.11.34 mytest.com


Windows下hosts 的地址为 C:WindowsSystem32driversetc。


配置反向代理

在/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端口,可以得到内部后端服务器不同端口返回的数据,并不需要访问内部端口的方式得到数据,实际上这些内部端口也不会对外开放,这样给用户的感觉就是访问了域名对应的服务器。

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+