只要对nginx.conf稍作简单的配置就可以实现http反向代理了。但是我们现在的应用场景不一样,我们现在需要tcp的反向代理。
因为tcp反向代理默认不在nginx的模块里面,而需要自己编译进去,可喜的是,阿里的大牛已经将tcp反向代理弄好了。我们只要直接拿来用就好了,这个时候就是发扬鲁迅先生的拿来主义就好了。
0. 测试的环境
ubuntu 12.04
1. TCP代理知识普及
接着前面那句话,TCP代理,就是中间有个代理。客户所有的服务都交给代理来做,而代理再把这些服务转交给真正的后端服务器来处理,中间的代理只做一个转发的操作。
详细的大家可以看参考5里面。
2. 下载相应的安装包
nginx最新的版本为1.9.3,我将其和在参考2里面下载的nginx_tcp_proxy_module一起编译,就是编译不过。
最终,我还是下载了1.7.2版本的nginx。
这里的nginx-1.7.2-exe是编译时生成的文件夹。
3. 将tcp模块编译进nginx中
- $ wget 'http://nginx.org/download/nginx-0.7.65.tar.gz'
- $ tar -xzvf nginx-0.7.65.tar.gz
- $ cd nginx-0.7.65/
- $ patch -p1 < /path/to/nginx_tcp_proxy_module/tcp.patch
- $ ./configure --add-module=/path/to/nginx_tcp_proxy_module
- $ make
- $ make install
网上的代码一般是这样安装tcp模块的。
这里需要注意的就是/path,其实就是tcp_proxy模块所在的位置.
我的tcp代理模块解压后的路径为:/home/hwh/pt_Nginx/test0/nginx_tcp_proxy_module-master
其他的和上面一样就可以了。
所以我的步骤为:
$cd /home/hwh/pt_Nginx/test0/nginx-1.7.2
$patch -p1 < /home/hwh/pt_Nginx/test0/nginx_tcp_proxy_module-master/tcp.patch
&./configure --prefix=/home/hwh/pt_Nginx/test0/nginx-1.7.2-exe --add-module=/home/hwh/pt_Nginx/test0/nginx_tcp_proxy_module-master
$make
$make install
根据这些步骤,就可以安装好了。
4. 添加tcp代理
只要打开/home/hwh/pt_Nginx/test0/nginx-1.7.2-exe/conf/nginx.conf这个文件,在最末尾添加
- tcp {
- upstream tcp_proxy_oldmtn {
- # simple round-robin
- server localhost:8201;
- #check interval=3000 rise=2 fall=5 timeout=1000;
- }
- server {
- listen 8200;
- proxy_pass tcp_proxy_oldmtn;
- }
- }
这个表示,当客户端使用tcp(非浏览器访问)时,若访问到nginx服务器的8200端口是,就会将其转交给后端服务器的8201端口(这里后端服务器也是本机)。
5. 编写代码测试
因为是在ubuntu下面的,而使用qt非常方便,我就使用Qt写了个小的客户端简单测试了一下。
客户端:
服务端:
经过测试可以看到,我们的tcp服务端仅在8201监听,而客户端却连的是8200端口,该端口是nginx的监听端口。
结果是可以正却联通的。
至此nginx的tcp反向代理搞定。
参考:
1.nginx tcp代理模块nginx_tcp_proxy_module安装及使用
http://m.blog.csdn.net/blog/xtjsxtj/40743735
http://yaoweibin.github.io/nginx_tcp_proxy_module/
3.http://yaoweibin.github.io/nginx_tcp_proxy_module/README.html
http://www.firefoxbug.com/index.php/archives/2775/
http://www.oschina.net/question/1457467_234303
http://blog.csdn.net/zhuweisky/article/details/25787787
http://blog.csdn.net/oldmtn/article/details/47613509
相关推荐
nginx多网站反向代理
1. 在第一层 Nginx 反向代理节点(例如:21.67.38.47)上配置 Nginx,设置监听 80 端口,并将所有流入的 80 端口流量转发到第二层 Nginx 反向代理的域名(如 host.second.com:80)。 ``` upstream default_pools...
【Nginx 配置反向代理】 在服务器运维中,遇到高并发访问的压力时,Apache 服务器可能无法单独应对。在这种情况下,可以利用 Nginx 的反向代理功能来分担压力,优化服务器架构。Nginx 以其轻量级、高性能的特点,常...
本资源是专门针对本博文的, nginx的反向代理的简单配置文件,给大家使用时做参考,拿走不谢,怎么一定要50字呢?
`nginx`作为一款高性能的反向代理服务器和负载均衡器,常用于处理静态资源,而`tomcat`则作为Java应用服务器,主要负责运行Java Web应用。下面我们将详细探讨`nginx1.6`的安装、`tomcat7`的安装以及它们之间的反向...
Nginx构建反向代理缓存服务器电子书,电子书很详细的介绍了nginx构建反向代理的过程与知识
两边通过同一个nginx进行反向代理,nginx配置大致如下, location /health/ { proxy_pass http://192.168.40.159:8081/health/; #无问题的配置 } location /health-dev/ { proxy_pass ...
### Nginx反向代理服务器配置基础教程 #### 一、系统架构 在现代Web服务部署中,Nginx作为一款高性能的HTTP和反向代理Web服务器,被广泛应用于负载均衡、反向代理以及静态资源服务等多个场景。本文将详细介绍如何...
### Windows 下配置 Nginx 反向代理 Tomcat 在 Windows 环境下配置 Nginx 作为 Tomcat 的反向代理服务器是一项常见的任务,主要用于实现负载均衡、提高安全性及提升性能等目的。本文将从下载 Nginx 开始,详细介绍...
网上找到的nginx反向代理配置文件通常只能通过80端口进行访问,映射到其他端口时系统可能获取不到,经过找资料以及试验,找到了能够解决的配置方法。
本文将详细介绍Nginx如何实现正向代理和反向代理,以及这两种代理方式的应用场景。 **正向代理** 正向代理的主要作用是让内部网络中的设备(如服务器B)通过一个具有外部网络访问权限的设备(如服务器A)来访问...
在搭建Nginx反向代理服务器的过程中,通常需要配置Nginx的配置文件(通常是nginx.conf),在此配置文件中定义服务器、反向代理和负载均衡的相关设置。例如,可以设置监听某个端口、处理HTTP请求,并将请求转发到特定...
### Nginx反向代理不能访问项目的解决办法 在配置Nginx作为反向代理服务器时,有时会遇到可以通过域名正常访问Linux系统下部署的Tomcat服务器,但是却无法访问到部署在Tomcat上的具体项目的情况。这种情况通常是...
通过使用Nginx 反向代理来解决JS跨域问题 http://blog.csdn.net/mzhaocai/article/details/79238338
此文比较详细讲述了Nginx与proxy共同搭建反向代理服务的配置方法
因为架构的需要采用多级 Nginx 反向代理,但是后端的程序获取到的客户端 IP 都是前端 Nginx 的 IP,问题的根源在于后端的 Nginx 在 HTTP Header 中取客户端 IP 时没有取对正确的值。 同样适用于前端是 Squid 或者...
本文将深入探讨“Nginx做反向代理时如何获取真实IP”的主题,这对于网站日志分析、安全监控以及实现个性化服务至关重要。 Nginx是一款流行的开源HTTP服务器,常用于反向代理、负载均衡和缓存服务。反向代理是指...
(1)使用Nginx反向代理,根据访问的路径跳转到不同端口的服务中,Nginx监听端口为8001。 访问 http://127.0.0.1:9001/deu/ 直接跳转到127.0.0.1:8016 访问 http://127.0.0.1:9001/vod/ 直接跳转到127.0.0
在IT行业中,HTTPS通信是确保网站数据安全传输的重要手段,而Nginx作为一款高性能的HTTP和反向代理服务器,常被用来实现这种安全通信。本文将深入探讨如何通过Nginx配置HTTPS服务器,实现443端口的反向代理,以及与...