当前位置: 首页 > news >正文

nginx配置stream代理

项目中遇到某些服务在内网,需要外网访问的情况,需要配置代理访问。可用nginx搭建代理服务。

TCP代理

通过nginx的stream模块可以直接代理TCP服务,步骤如下:

  1. /etc/nginx/下新建proxy文件夹,用于存放代理配置。
  2. 此处以mysql为例,假设mysql服务在mysqlserver,新建mysqlproxy.conf文件,编辑以下内容:
    upstream mysqlproxy {server  mysqlserver:3306;}server {listen     3306;proxy_pass mysqlproxy;proxy_connect_timeout 1h;proxy_timeout 1h;}
  1. 编辑/etc/nginx/nginx.conf,最后添加如下配置,包含proxy目录内的所有配置。
    stream {include /etc/nginx/proxy/*.conf;}
  1. nginx -t检查nginx配置是否正确,没有问题则执行nginx -s reload重新加载nginx

可能出现的问题

  • unknown directive "stream" in /etc/nginx/nginx.conf
    对于比较老版本的nginx,可能会出现此错误。需要手动安装nginx的stream模块:
    yum install nginx-mod-stream
  • nginx: [emerg] bind() to 0.0.0.0:3306 failed (13: Permission denied)
    由于SELinux导致,查看端口是否已经被semanage 管理:
sudo semanage port -l | grep http_port_t

如果不在,需要添加:

sudo semanage port -a -t http_port_t  -p tcp 3306
  • (13: Permission denied) while connecting to upstream:[nginx]
    在nginx错误日志中看到以上错误,可能是SELinux安全机制导致,可执行:
setsebool -P httpd_can_network_connect 1
http://www.lryc.cn/news/389866.html

相关文章:

  • 【瑞吉外卖 | day01】项目介绍+后台登录退出功能
  • 关于批量采集1688商品主图及链接的方式:软件采集/1688官方API接口数据采集
  • Shell 获取Hive表的location 信息
  • 从零搭建教育管理系统:Java + Vue.js 教学-02
  • VSCode + GDB + J-Link 单片机程序调试实践
  • grpc学习golang版( 五、多proto文件示例 )
  • LeetCode 106 从中序与后序遍历序列构造二叉树
  • Vue Router的深度解析
  • YOLO-V2
  • pmp考试的通过标准是什么?
  • 不懂PyQt5垂直布局?只需3分钟即可学会
  • 从零开始实现大语言模型(二):文本数据处理
  • 生物分子生物学实验过程的自动化与智能监控系统设计
  • linux的shell脚本编程详解
  • Redis 7.x 系列【11】数据类型之位图(Bitmap)
  • 如何评定旅游卡的品质与服务?
  • 适合学生暑假适用的护眼大路灯有哪些?五款好用护眼灯分享!
  • linux服务器 部署jenkins
  • 电商控价:系统监测的必要性与优势
  • 港股下半年能恢复上涨趋势吗?
  • 软件测试项目实战:银行贷款业务测试介绍-2
  • 如何将Hive表的分区字段插入PG表对应的时间戳字段?
  • Spring Boot与MyBatis的集成应用
  • 在昇腾服务器上使用llama-factory对baichuan2-13b模型进行lora微调
  • Kafka 管理TCP连接
  • electron教程(一)创建项目
  • 如何在Oracle、MySQL、PostgreSQL上终止会话或取消SQL查询
  • 3、FTL基本工作过程
  • 微信小程序的跳转页面
  • 深入理解 Java 中的线程间通信:`wait()`, `notify()`, `notifyAll()`