首页 > 其他分享 >了解一下基本的tcp代理配置

了解一下基本的tcp代理配置

时间:2023-01-03 14:22:51浏览次数:54  
标签:log 配置 端口 代理 tcp access 8699 upstream

我们首先用一个简单例子了解一下基本的tcp代理配置

worker_processes  1;        #nginx worker 数量
error_log logs/error.log;   #指定错误日志文件路径
events {
    worker_connections 1024;
}

stream {
    log_format main '$remote_addr [$time_local] $protocol $status';  #access_log format: 访问的远端服务地址 时间 协议 状态码
    access_log logs/access.log main buffer=16384 flush=3;            #access_log 文件配置

    upstream nature_upstream {
        server 127.0.0.1:6699; #upstream 配置为 hello world 服务
    }

    server {
		#监听端口,若你的8699端口已经被占用,则需要修改
        listen 8699 reuseport;

        proxy_pass nature_upstream; #转发到 upstream
    }
}

#为了大家方便理解和测试,我们引入一个hello world 服务
http {
    server {
		#监听端口,若你的6699端口已经被占用,则需要修改
        listen 6699;
        location / {
            default_type text/html;

            content_by_lua_block {
                ngx.say("HelloWorld")
            }
        }
    }
}

启动服务并测试

$ openresty -p ~/openresty-test -c openresty.conf #启动
$ curl http://localhost:8699 -i  #测试
HTTP/1.1 200 OK
Date: Fri, 16 Dec 2022 05:19:34 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive

HelloWorld

观察 access.log 文件可以看到有两条记录

$ cat logs/access.log
127.0.0.1 - - [16/Dec/2022:13:23:22 +0800] "GET / HTTP/1.1" 200 21 "-" "curl/7.68.0" # 6699端口的hello world 服务记录
127.0.0.1 [16/Dec/2022:13:23:22 +0800] TCP 200  # 8699端口的代理服务记录

如此基本的配置,大家就算了解了。

但是也可以看到如此配置,大家可以发现离一个优秀的gateway来说,

除了少了漂亮的UI之外,至少少了以下要点:

  1. 配置复杂,上手难度高,nginx配置毕竟算包含逻辑
  2. 多实例,动态配置变更不支持
  3. 不能动态变更处理逻辑(代码)

接下来就逐步来实践如何优化解决这些配置问题,当然也希望大家首先思考一下这些问题原因在哪儿

目录

标签:log,配置,端口,代理,tcp,access,8699,upstream
From: https://www.cnblogs.com/fs7744/p/17022038.html

相关文章

  • Maven安装配置
    Maven安装配置第一步:解压解压apache-maven-3.6.1.rar既安装完成解压缩后的目录结构如下:bin目录:存放的是可执行命令。mvn命令重点关注。conf目录:存放Ma......
  • spring 基础知识-- IOC 和 DI 的配置和使用。
    目录​​一、基本概念​​​​二、Spring核心概念 ​​​​1、问题分析​​​​2、IOC、IOC容器、Bean、DI​​​​3、IOC入门案例​​​​4、DI入门案例​​​​三、IO......
  • Openmeetings6.3.0版本部署、安装与配置(二)之安装SSL证书和coturn穿透服务器
    一、创建SSLLet'sEncrypt证书1)安装certbot,需要构建证书:sudoaptinstallcertbot 2)给域名创建证书。需要注意几点:1.此域名可以解析到公网IP;......
  • ngnix conf配置 vue router
    #usernobody;worker_processes1;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx......
  • redis集群配置
    redis集群配置1、三主三从redis集群配置1、新建6个docker容器实例##--cluster-enabledyes 开启redis集群##--nethost 使用宿主机的ip和端口默认##--appendonlyyes ......
  • Django的urls配置(斜杠/变量/正则)
    url中的斜杠若path中带了斜杠,浏览器输入的url也是带斜杠的则直接可访问 若path中带斜杠,浏览器中输入的url最后未带斜杠,则会301重定向一次到带斜杠的地址......
  • SDN实验OVS使用配置-openvswitch的原理和常⽤命令
    openvswitch的原理和常⽤命令(部分信息借鉴于网友技术分享)第一部分.Openvswitch⼯作原理openvSwitch是⼀个⾼质量的、多层虚拟交换机,使⽤开源Apache2.0许可协议,由NiciraNe......
  • Openmeetings6.3.0版本部署、安装与配置
    一、openmeetings简介OpenMeetings是一个多语言可定制的视频会议和协作系统。它支持音频、视频,能让你查看每个与会者的桌面。OpenMeetings还包含一个白板,通过白板可以导入......
  • 011websocket代理
    一、安装haproxysudoadd-apt-repositoryppa:vbernat/haproxy-2.6-ysudoaptinstallhaproxy-ysudosystemctlstatushaproxysudosystemctlenablehaproxycd......
  • pycharm每次打开项目都需要配置解释器和安装库问题
    前言最近在使用pycharm开发新项目的时候,每次打开新的工程都显示没有解释器,要不加了解释器就是代码一堆没有红色错误提示没有模块问题,找到了解决办法做一个记录.问题打开......