nginx的反向代理可以直接telnet么

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx的反向代理可以直接telnet么相关的知识,希望对你有一定的参考价值。

不可以。nginx的反向代理是一个可以将客户端请求转发到内部服务器的服务器,而不能用于telnet协议。 参考技术A 您好,Nginx的反向代理是一种技术,它可以将客户端的请求转发到后端的服务器上,从而实现负载均衡和安全性的提升。它不能直接使用Telnet,因为Telnet是一种协议,它只能用于连接远程主机,而Nginx的反向代理只能用于转发请求,而不能用于连接远程主机。但是,Nginx可以使用其他协议,如HTTP,HTTPS,FTP等,来实现反向代理的功能。

使用Nginx反向代理的一些小记...

先来讲一下配置:

服务器 单核2G(*1);

Nginx1.12.0;

    对的,就是辣么简单,就是辣么任性,有时候我们总把事情想的太复杂,那是因为你都没有去做过,便妄下断言。而当你真正去做了之后才知道事情远没有我们想象的复杂......当然没有Nginx的强大想完成我们的目标也不是不行,但别忘了还有学习成本,确实我们有大量的时间,但是却没有时间可供我们去挥霍,把拥有的时间用在“正事”上,这听起来没毛病。

    正如人生,我们总是在不对的尝试,在感觉是一条对的道路上愈走愈远,直至交叉路口。

    话不多说,马上进入主题。一开始我通过Nginx.org找到Nginx的upstream模块配置方法,准确的说这是Nginx Load Balancing(负载均衡),接下来我就二话不说开干了,在访问域名显示的目标服务器上的Nginx欢迎信息时我是比较欢喜的,我在心里想着:第一次就Success了,太Cool了。但是总感觉哪里不对劲,对啊,我是要代理网站的内容呈现啊,你给我Nginx Server的欢迎界面干么,和你很熟啊?

    继续改进,这次我用到了群面向编程,向大神请教,他一看我的Nginx前端配置就问我:你要Load Balancing吗?我说不啊,我只要代理这一个Features。他说那你按我的来,嗖嗖的给我发来一段配置,如下:

    servver {

        listen 80; 

        server_name $host; 

        location / { 

            proxy_pass http://xxx.com/; 

            proxy_set_header Host $host; 

            proxy_redirect off; 

            proxy_set_header X-Real-IP $remote_addr; 

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

            proxy_connect_timeout 60; 

            proxy_read_timeout 600; 

            proxy_send_timeout 600; 

    }

    我一看,得,这是根本不需要用Upstream模块啊,看来我是老孔雀开屏——自作多情。修改了我的配置后继续进行访问域名测试,咦,怎么还是Nginx的欢迎界面,我TM真和你不是很熟......仔细想想,时间如白驹过隙,眨眼30min过去了,才想到我代理的只是AWS给我的CNAME,但是目标服务器(美东)上并没有什么写具体的接受我代理的Nginx配置啊,那就写上呗,目标服务器上Listen 80 Port,server_name修改为测试域名。

    再测试,O了,可以正常访问了。我的心里长长的出了一口气,终于......

    是日,客户突然Call过来,说我的网站怎么无法访问了,一访问就跳到你们的官网了,当时我就想到是昨晚做反向代理时没有配置SSL证书,所以解析过去的域名不能正确的访问到客户网站的内容。我想这不行啊,虽然网站还没正式上线,但总得让客户随时都可以访问的状态吧,那我就信誓旦旦的说,明天准好。确实有了底气就是不一样,神清气爽的。

    晚上回来接着研究,在网上找到了以下解决方案,即最终解决方案,话不多说,上Code:

    server {

        listen 80;

        server_name dayal-timber.com www.dayal-timber.com;


        if ( $scheme = http ) {

    return 301 https://www.dayal-timber.com$request_uri;

        }

    }


    server {

        listen 443;

        server_name dayal-timber.com www.dayal-timber.com;


        access_log      logs/ssl-access.log;

        error_log       logs/ssl-error.log;


        ssl on;

        ssl_certificate         /usr/local/nginx/ssl/dayal-timber/214176381230424.pem;

        ssl_certificate_key     /usr/local/nginx/ssl/dayal-timber/214176381230424.key;

        ssl_session_timeout 5m;

        ssl_protocols SSLv2 SSLv3 TLSv1;

        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

        ssl_prefer_server_ciphers on;    


        location / {

    proxy_pass https://CNAME;

    proxy_redirect off; 

    proxy_set_header Host $http_host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_connect_timeout 60; 

      proxy_read_timeout 600; 

    proxy_send_timeout 600;


        }

    }

    再测试访问,OK,Perfect。不过事情还没有结束,明天接着测试使用Hong Kong服务器代理看看效果。正所谓人生总需尝试,不尝试就妄下结论,那不是睿智,最起码在我看来是二逼。

    总结一下:Reverse Proxy这条路是对的,就看怎么走,在老铁看来是没毛病的。今天看了V社的一个帖子,说他们公司的测试太NB了,一段功能测试出57个BUG,下面评论说哥们你遇上贵人了......

    我想真是贵人相助了......

    

以上是关于nginx的反向代理可以直接telnet么的主要内容,如果未能解决你的问题,请参考以下文章

nginx反向代理为啥不成功

Nginx正向代理与反向代理

谁能解释一下nginx反向代理是啥意思?

Nginx的正向代理和反向代理

运维工作笔记-------nginx的反向代理

使用Nginx反向代理的一些小记...