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
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
stream配置是用于配置Nginx作为TCP或UDP代理服务器的一种配置方式。通过stream模块可以实现将客户端请求转发到后端的服务器。根据引用和引用的内容,可以得到以下关于nginx stream配置的详解: 1. 配置位置:stream配置通常位于Nginx配置文件中,可以在/etc/nginx/nginx.conf或/usr/local/nginx/nginx.conf中找到。 2. upstream指令:使用upstream指令定义后端服务器的地址和端口。在引用和引用中的示例中,后端服务器的地址为192.168.208.1,端口为3000。 3. server指令:使用server指令定义代理服务器的监听端口。在引用和引用中的示例中,监听的端口为2000,使用UDP协议。 4. proxy_connect_timeout和proxy_timeout指令:这两个指令分别用于设置与后端服务器建立连接的超时时间和代理请求的超时时间。在示例中,连接超时时间设置为5秒,请求超时时间设置为300秒。 5. proxy_pass指令:使用proxy_pass指令将客户端的请求转发到后端的服务器。在引用和引用中的示例中,请求会被转发到名为back的upstream集群。 总结起来,stream配置主要包括定义后端服务器和代理服务器的指令。通过使用stream模块,可以实现TCP和UDP代理服务器的配置和管理。123 #### 引用[.reference_title] - *1* *2* *3* [Nginx安装并配置stream详细教程](https://blog.csdn.net/qq_42703181/article/details/119422790)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值