源码安装Nginx加TCP反向代理模块
说明:
安装方式是源码编译安装,因此先安装相关依赖,否则报错。
yum -y install gcc* patch openssl openssl-devel
安装步骤:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 下载nginx源码包: wget http: //nginx.org/download/nginx-1.2.9.tar.gz 下载插件源码包: wget https: //codeload.github.com/chobits/ngx_http_proxy_connect_module/zip/master -O ngx_http_proxy_connect.zip 解压nginx源码包: tar -zxvf nginx-1.15.5.tar.gz 解压nginx插件源码包: unzip ngx_http_proxy_connect.zip -d ./ 添加插件补丁:先进入nginx的源码包,cd nginx-1.2.9,然后运行下面命令: patch -p1 < ../ngx_http_proxy_connect_module-master/patch/proxy_connect_rewrite_1015.patch patch -p1 < ../nginx_tcp_proxy_module-master/tcp.patch 运行配置nginx: ./configure --with-http_ssl_module --add-module=../ngx_http_proxy_connect_module-master/ --add-module=../nginx_tcp_proxy_module-master/ --without-http_rewrite_module 编译及安装: make && make install |
默认安装的路径是:/usr/local/nginx
将文档中提供的nginx.conf放置到安装好的conf目录下,
启动:./sbin/nginx
关闭:./sbin/nginx -s quit
平滑重启:./sbin/nginx -s reload
参考配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | #user nobody; worker_processes 1; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { #正向代理 server { #正向代理的端口 listen 9080; #dns,支持配置多个 resolver 132.29.29.29; #开启插件支持https tunnel #proxy_connect; #proxy_connect_allow 443; #proxy_connect_connect_timeout 10s; #proxy_connect_read_timeout 40s; #proxy_connect_send_timeout 40s; #location / { # proxy_pass http://$host; # proxy_set_header Host $host; # proxy_buffers 256 4k; # proxy_max_temp_file_size 0; #} } #反向代理上游服务器-反向代理tpp-zuul-pre,支持配置多个 upstream srv_tpp-zuul-pre { ip_hash; server 172.168.168.108:80; server 172.168.168.114:80; } #反向代理 server { listen 8080; listen 443 ssl; #ssl on; ssl_certificate 1613208__hcepay.com.pem; ssl_certificate_key 1613208__hcepay.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on ; server_name 127.0.0.1; location / { proxy_pass http: //srv_tpp-zuul-pre; } } upstream srv_fama { ip_hash; server 172.168.168.112:8080; server 172.168.168.119:8080; } server { listen 8081; server_name 127.0.0.1; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for; proxy_pass http: //srv_fama; } } upstream srv_acc-pre { ip_hash; server 172.168.168.107:8764; server 172.168.168.113:8764; } server { listen 8764; server_name 127.0.0.1; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for; proxy_pass http: //srv_acc-pre; } } upstream srv_redis { ip_hash; server 172.168.168.119:7000; server 172.168.168.119:7001; server 172.168.168.119:7002; server 172.168.168.119:7003; server 172.168.168.119:7004; server 172.168.168.119:7005; } server { listen 6379; server_name 127.0.0.1; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for; proxy_pass http: //srv_redis; } } } tcp { upstream srv_tpp-webgate { ip_hash; server 172.168.168.108:5001; server 172.168.168.114:5001; check interval=3000 rise=2 fall=5 timeout=1000; } server { listen 5001; proxy_pass srv_tpp-webgate; tcp_nodelay on ; } } |
安装参考:
http://nginx.org/en/docs/configure.html
https://github.com/chobits/ngx_http_proxy_connect_module
如对您有帮助,支持下呗!
微信

支付宝

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
2018-03-19 查看linux系统是运行在物理机还是虚拟机方法