Ngin入门套餐
快速了解Nginx
- 一、代理
- 1.1 正向代理
- 1.2 反向代理
- 1.3 正向代理和反向代理的区别
- 二、Nginx负载均衡策略
- 2.1 轮询(Round Robin)
- 2.2 加权轮询(Weighted Round Robin)
- 2.3 IP 哈希(IP Hash)
- 2.4 最少连接(Least Connections)
- 2.5 随机(Random)
- 三、动静分离
- 四、配置文件解析
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的。
特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。
Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接数的响应。
一、代理
1.1 正向代理
正向代理是一种网络代理模式,代理服务器位于客户端和目标服务器之间。它的主要功能是接受客户端请求,并将这些请求转发到目标服务器,然后将响应返回给客户端。正向代理通常用于实现访问控制、隐私保护、缓存等功能。
工作原理:
- 客户端请求:客户端(例如浏览器)向正向代理服务器发送请求,而不是直接请求目标服务器。
- 代理处理请求:正向代理接收到请求后,会将其转发到目标服务器。这时,目标服务器并不知道是哪个客户端在请求。
- 目标服务器响应:目标服务器将响应发送回正向代理服务器。
- 代理服务器返回响应:正向代理接收到从目标服务器返回的响应,并将其转发给客户端。
应用场景:
- 访问控制,通过设置代理服务器规则实现外来请求是否能够访问目标服务器。
- 匿名访问,代理服务器作为访问中介,双方都只知道代理服务器的 ip 信息。
- 加速访问,代理服务器能够缓存常见请求的响应,减少通信延迟,提高访问速度。
- 跨地域访问,有些内容会因为地域限制而无法访问,用户可以通过正向代理伪装成其他地区的用户来访问被限制的内容。
1.2 反向代理
反向代理是一种服务器配置,它可以接收客户端的请求,并将这些请求转发到后端的一个或多个服务器上。反向代理通常用于负载均衡、安全性、缓存等目的。
工作原理:
- 客户端请求:客户端(如用户的浏览器)发送一个HTTP请求,请求的数据可能是网页、图像或其他资源。
- 到达反向代理服务器:请求首先到达反向代理服务器,而不是直接到达后端应用服务器。
- 请求转发:反向代理服务器根据配置的规则,决定将请求转发到哪一台后端服务器。这些规则可以基于URL路径、负载均衡策略等。
- 后端处理:被选中的后端服务器接收到请求并进行处理。这可能涉及查询数据库、计算、调用其他服务等。
- 返回响应:后端服务器完成请求处理后,将相应的数据(如HTML页面、JSON 数据、文件等)返回给反向代理服务器。
- 响应转发给客户端:反向代理服务器接收到后端服务器的响应后,可能会对其进行缓存、修改或记录日志,然后再将响应发送回客户端。
- 客户端接收响应:客户端最终收到来自反向代理服务器的响应,呈现给用户。
应用场景:
- 负载均衡,反向代理可以将客户端请求分发到多个后端服务器,从而实现负载均衡。这种方法可以提高系统的可用性和性能,确保没有单一服务器过载。
- SSL/TLS终止,反向代理可以处理HTTPS请求,为后端服务器减轻了SSL/TLS加密和解密的负担。通过集中管理证书,使得更新和维护变得更加简单。
- 安全防护,使用反向代理可以隐藏后端服务器的真实地址,提供额外的安全层。它可以过滤恶意请求、进行身份验证或防止DDoS攻击等。
- 跨跨域资源共享(CORS),在某些情况下,反向代理可以用于解决跨域请求的问题。通过设置适当的HTTP头,允许特定源访问后端资源。
- 微服务架构,在微服务架构中,反向代理可以帮助路由请求到不同的服务。它也可以充当API网关,统一管理所有的API请求。
1.3 正向代理和反向代理的区别
正向代理是客户端与互联网之间的中介。客户端通过正向代理访问其他网站或服务,而不是直接访问目标服务器。
客户端在访问互联网时,使用正向代理服务器作为请求的发起端,这样目标服务器就无法识别到客户端的真实IP信息,对客户端的身份起到一定的保护作用。
反向代理是位于客户端和一组后端服务器之间的中间层。客户端向反向代理发送请求,而反向代理将请求转发给适当的后端服务器。
客户端在访问后端服务器时,访问的并不是真实的后端服务器地址,而是反向代理服务器,所有的服务访问都通过反向代理服务进行范围,由其进行转发。这样后端服务器架构就能够被很好的保护起来。
反向代理和正向代理的主要区别在于它们的工作方向及其角色定位,而不是仅仅依赖于请求的发起者(客户端或后端服务器)。
正向代理代理的是客户端,反向代理代理的是服务器端。
二、Nginx负载均衡策略
为了让资源更多的服务器接收到更多的访问请求,让每台服务器能够利用好自身的资源。 Nginx 提供了多种负载均衡策略,可以根据不同的需求和场景选择合适的策略。
2.1 轮询(Round Robin)
这是 Nginx 的默认负载均衡方法。请求按照顺序分配给后端服务器,即第一个请求发送给第一台服务器,第二个请求发送给第二台,以此类推。如果有多个请求并发到达,则会循环遍历后端服务器。
upstream backend {server backend1.example.com;server backend2.example.com;server backend3.example.com;
}
适用于无状态的访问请求,即没有保留相关数据在目标服务器上的访问请求,如果请求存在状态保存在目标服务器,那么下次访问时可能相应的不是上次的服务器,导致状态丢失。
2.2 加权轮询(Weighted Round Robin)
与简单的轮询类似,指定轮询几率,weight和访问比率成正比,但每台后端服务器可以被分配不同的权重。权重越高,被分配到请求的概率就越大。这对于性能差异较大的服务器特别有效。
upstream backend {server backend1.example.com weight=3 down; # 权重为3server backend2.example.com weight=2 backup; # 权重为2server backend3.example.com weight=1; # 权重为1
}
down:表示当前的server暂时不参与负载
weight:默认为1.weight越大,负载的权重就越大。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。
2.3 IP 哈希(IP Hash)
这种方法使用客户端的 IP 地址计算哈希值,将请求总是分配给同一台后端服务器。这样可以保证相同用户的请求始终落在同一服务器上,可以解决session不共享的问题,适合需要会话保持的场景(如购物车应用)。
IPHash的轮询方式确实能解决Session问题,但是考虑到服务器可能存在宕掉的风险导致数据丢失,因此一般采用Redis对Session进行共享。
upstream backend {ip_hash;server backend1.example.com;server backend2.example.com;server backend3.example.com;
}
2.4 最少连接(Least Connections)
策略将请求路由到当前连接数最少的后端服务器。这对于处理长连接或高延迟请求非常有效,因为它可以确保负载在所有服务器之间尽可能均匀分配。
upstream backend {least_conn;server backend1.example.com;server backend2.example.com;server backend3.example.com;
}
2.5 随机(Random)
这个策略随机选择一台后端服务器来处理请求。这种方式可以在负载相对均衡的情况下减轻某些特定服务器的压力。
upstream backend {server backend1.example.com;server backend2.example.com;server backend3.example.com;# 配置随机负载均衡# 注意:Nginx 默认没有提供随机算法,需要使用第三方模块
}
三、动静分离
动静分离,在我们的软件开发中,有些请求是需要后台处理的,有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件。
让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。
静态内容:如 HTML 文件、CSS 文件、JavaScript 文件、图片等,这些资源不需要服务器端处理,可以直接由 Nginx 提供。
动态内容:如 PHP、Python、Node.js 等,通过后端应用程序生成的内容,这些内容通常需要 web 应用服务器进行处理。
文件配置:
server {# 静态文件配置当URL为/时,提供静态文件/var/www/html/index.html供访问location / {root /var/www/html; # 指向静态文件目录index index.html index.htm;try_files $uri $uri/ =404; # 如果文件不存在,返回 404}# 针对特定目录的静态文件处理当访问URL为/static/XX时,根据下边配置的静态资源文件夹中的文件提供访问location /static/ {alias /var/www/static/; # 指向静态资源文件夹}# 动态内容处理(例如 PHP)location ~ \.php$ { #此处是可以使用正则表达式的include snippets/fastcgi-php.conf; # 引入 FastCGI 配置fastcgi_pass unix:/run/php/php7.4-fpm.sock; # PHP-FPM 的 socket 地址fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params; # 包含 FastCGI 参数}
}
静态内容处理:
/ 路径下的请求会被直接处理为静态文件。如果请求的文件存在,则返回该文件;否则返回 404 错误。
/static/ 路径用于处理静态文件,使用 alias 指令将 URI 映射到实际文件系统的位置。
动态内容处理:
使用正则表达式匹配以 .php 结尾的请求,并通过 fastcgi_pass 将请求转发给 PHP-FPM(FastCGI Process Manager),以便处理 PHP 文件。
对于其他动态请求(如 API 请求),我们通过 proxy_pass 将请求代理到 Node.js 应用程序或其他后端服务。
具体可以看下边的配置文件解析哈
四、配置文件解析
#全局配置
user www-data; #指定运行 Nginx 工作进程的用户和组,通常选择一个权限较低的用户(如 www-data)以增强安全性。
worker_processes auto; #设置工作进程的数量。使用 auto 可以根据系统的 CPU 核心数自动调整,通常建议设置为 CPU 核心数,以提高性能。#错误日志配置 #
error_log /var/log/nginx/error.log warn; #配置错误日志的路径及其日志级别,级别包括 debug, info, notice, warn, error, crit, alert, emerg
pid /var/run/nginx.pid; #指定存放 Nginx 主进程 PID(进程标识符)的文件路径。#处理事件配置
events {worker_connections 1024; #表示每个工作进程能够同时处理的最大连接数
}#定义上游服务器,用于负载均衡
upstream backend { #此处的backend名称可用于下边的server调用# 定义后端服务器server backend1.example.com; # 服务器 1server backend2.example.com; # 服务器 2server 192.168.1.100:8080; # 服务器 3(IP 地址)# 可以指定权重,数字越大表示优先级越高server backend3.example.com weight=3; # 权重为 3
}#网络请求配置
http {include mime.types; t-Type。default_type application/octet-stream; #未明确指定类型时使用的默认 MIME 类型。#访问日志的格式log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main; #设置访问日志的存放路径和使用的日志格式。此处使用前面定义的 main 格式。sendfile on; # 启用高效的文件传输方式,将文件从磁盘直接发送到网络,而无需经过用户空间,减少 CPU 占用率,提高性能。tcp_nopush on; # 在发送大文件时,尽可能将数据一起发送,减少 TCP 分段,提高效率。tcp_nodelay on; # 禁用 Nagle 算法,以便尽快发送小的数据包,适用于交互型应用。keepalive_timeout 65; # 设置 HTTP Keep-Alive 连接的超时时间,单位为秒。即在这段时间内,如果没有新的请求,则连接会被关闭。#GZip压缩设置gzip on; #开启 Gzip 压缩功能,可以减小传输的数据量,提高加载速度。gzip_types text/plain application/json application/javascript text/css application/xml text/xml application/xhtml+xml; #指定哪些 MIME 类型的响应内容应进行 Gzip 压缩。gzip_min_length 1000; #指定 Gzip 压缩的最小响应体长度,只有当响应体长度超过该值时,才会进行压缩。#服务器访问设置server {listen 80; #指定Nginx监听的 IP 地址和端口号,80 表示监听 HTTP 请求。server_name localhost; #定义服务器的名称,通常是域名或 IP 地址。当多个虚拟主机存在时,用于匹配请求的主机名。#用于定义如何处理特定 URI 的请求,可以根据请求的 URI 路径进行不同的处理。location / {root /var/www/html; #定义文档根目录,Nginx 将从该目录提供静态文件。index index.html index.htm; #定义默认的索引文件,例如 index.html 或 index.htm,当请求目录时会返回这些文件(/var/www/html/index.html)。try_files $uri $uri/ =404; #如果文件不存在,返回 404}#提供静态文件配置location /static/ {alias /var/www/static/; #将 URI 映射到实际文件系统的位置。}error_page 404 /404.html; #定义特定错误代码(如 404)的定制错误页面,可用于改善用户体验。#当访问URL等于/404.html时,internal用于标记该位置块为内部重定向使用。location = /404.html {internal; #它不能直接通过 HTTP 请求访问。例如,如果用户在浏览器中直接访问 /404.html,Nginx 将返回 404 错误,而不是显示该页面。}#指定以 /api/ 开头的请求的处理方式,这里使用了反向代理。location /api/ { #当URL为 Nginx服务器:80/api 时触发反向代理proxy_pass http://127.0.0.1:3000; #将请求转发到指定的后端服务器,通常用于将负载分发到应用程序服务器。proxy_set_header Host $host; #设置代理请求中的 HTTP 头部信息,用于传递原始请求的信息,例如请求头部的 Host 和用户的真实 IP 地址。proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}#指定以 /server/ 开头的请求的处理方式。location /server/ { #当URL为 Nginx服务器:80/server 时触发负载均衡proxy_pass http://backend; # 将请求转发到定义的 upstream, 即按照预定的规则(轮询,权重,随机等)转发到定义的集群中的对应节点proxy_set_header Host $host; # 传递主机头信息proxy_set_header X-Real-IP $remote_addr; # 传递真实用户 IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 传递 X-Forwarded-For 头}}
}
相关文章:

Ngin入门套餐
快速了解Nginx 一、代理1.1 正向代理1.2 反向代理1.3 正向代理和反向代理的区别 二、Nginx负载均衡策略2.1 轮询(Round Robin)2.2 加权轮询(Weighted Round Robin)2.3 IP 哈希(IP Hash)2.4 最少连接&#x…...

使用linux编译main.cpp文件
1、首先创建一个简单的test.cpp,使用终端命令形式: touch test.cpp 创建结束,记得ls一下,如下: 2、找到创建结束的test.cpp文件,然后右键编辑,输入一个简单的代码,如下 #include …...

服务器部署Traefik 实现子级域名路由服务(对外子域名80,路由对内大端口)
文章目录 1.Traefik安装2.启动nginx配置路由 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 前言,领导让我调研在线发布得…...
@RequestParam @PathVirable @RequestBody @ApiParam的区别
RequestParam 最常用用value指定参数名字,required字段指定参数是否必须,默认为true,当requiredfalse时,一般配合着defaultValue"xx"使用对应的url是这样的: https://localhost/requestParam/test?key1va…...

Vulnhub靶场案例渗透[5]- DC4
文章目录 1. 靶场搭建2. 信息收集2.1 确定靶机ip2.2 主机信息收集2.3 主机目录探测 3. 渗透过程3.1 sql注入检测3.2 burp爆破3.3 反弹shell3.4 提权 4. 总结 1. 靶场搭建 靶场源地址 检验下载文件的检验码,对比没问题使用vmware打开 # windwos 命令 Get-FileHash …...

http协议概述与状态码
目录 1.HTTP概述 1.1请求报文起始行与开头 1.2响应报文起始行 1.3响应报文开头 2.http状态协议码 1.HTTP概述 默认端口 80 HTTP超文本传输与协议: 数据请求和响应 传输:将网站的数据传递给用户 超文本:图片 视频等 请求request:打开网站 访问网站 响应r…...
Golang 进阶5—— 反射
Golang 进阶5—— 反射 注意,该文档只适合有编程基础的同学,这里的go教程只给出有区别的知识点 反射: 反射可以在运行时动态获取变量的各种信息, 比如变量的类型、 类别等信息。如果是结构体变量,还可以获取结构体本…...
react 封装防抖
封装防抖 import React, { useRef, useEffect, useCallback } from react;function useDebounce(fn, delay) {const delayRef useRef(delay);const fnRef useRef(fn);// 更新ref值useEffect(() > {delayRef.current delay;}, [delay]);useEffect(() > {fnRef.current…...

Java项目-----图形验证码登陆实现
原理: 验证码在前端显示,但是是在后端生成, 将生成的验证码存入redis,待登录时,前端提交验证码,与后端生成的验证码比较. 详细解释: 图形验证码的原理(如下图代码).前端发起获取验证码的请求后, 1 后端接收请求,生成一个键key(随机的键) 然后生成一个验证码作为map的valu…...

【网络代理模块】反向代理(上)
1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当…...

2-112基于matlab的协同干扰功率分配模型
基于matlab的协同干扰功率分配模型,带操作界面的功率分配GUI,可以实现对已有功率的分配优化,可以手动输入参数值。4个干扰山区分二批总干扰功率,每个扇区包括威胁总系数、综合压制概率、目标函数增量等。程序已调通,可…...
数据结构之——二叉树
一、二叉树的基本概念 二叉树是数据结构中的重要概念,每个节点最多有两个子树,分别为左子树和右子树。这种结构具有明确的层次性和特定的性质。 二叉树有五种基本形态: 空二叉树:没有任何节点。只有一个根结点的二叉树ÿ…...
多层感知机(MLP)实现考勤预测二分类任务(sklearn)
1、基础应用: https://blog.csdn.net/qq_36158230/article/details/118670801 多层感知机(MLP)实现考勤预测二分类任务(sklearn) 2、分类器参数:https://scikit-learn.org/dev/modules/generated/sklearn.neural_network.MLPClassifier.html 3、损失函数…...

文件与目录的基本操作
前提:使用su root 切换到权限最大的root用户 1.显示当前工作目录的绝对路径(pwd) 用途:用于显示当前工作目录的绝对路径的命令。无论用户在文件系统的哪个位置,pwd 命令都能提供当前所在位置的完整路径信息。 用法&a…...
Python入门笔记(三)
文章目录 第八章 字典dict8.1 创建字典:{}、dict()、字典生成式、zip()8.2 获取键对应的值:get()8.3 in, not in判断键是否在字典中8.4 增加键值对:fromkeys()、setdefault()、update()8.5 删除键值对:del语句、clear(…...

PostgreSQL 任意命令执行漏洞(CVE-2019-9193)
记一次授权攻击通过PostgreSql弱口令拿到服务器权限的事件。 使用靶机复现攻击过程。 过程 在信息收集过程中,获取到在公网服务器上开启了5432端口,尝试进行暴破,获取到数据库名为默认postgres,密码为1 随后连接进PostgreSql …...

使用tgz包下载安装clickhouse低版本
1.下载安装包 官方下载地址:https://packages.clickhouse.com/tgz/stable 阿里云下载地址:clickhouse-tgz-stable安装包下载_开源镜像站-阿里云 共需要下载四个文件 clickhouse-common-static-20.3.10.75.tgz clickhouse-common-static-dbg-20.3.10.7…...

外包功能测试干了6个月,技术退步太明显了。。。。。
先说一下自己的情况,本科生,23年通过校招进入武汉某软件公司,干了差不多6个月的功能测试,今年中秋,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我就在一个外包企业干了6个月的功…...
动态规划和贪心算法
目录 动态规划和贪心算法 动态规划 贪心算法 两者之间的区别 动态规划和贪心算法 是两种经典的算法设计策略,它们各自具有独特的特点和适用场景。 动态规划 动态规划是一种将复杂问题分解为更简单子问题的求解方法。它特别适用于那些具有重叠子问题和最优子结构特性的问…...

python爬虫--tx动漫完整信息抓取
python爬虫--tx动漫完整信息抓取 一、采集主页信息二、采集详情页信息三、完整代码一、采集主页信息 先看一下采集到的信息,结果保存为csv文件: 打开开发者工具,找到数据接口。 使用xpath提取详情页url。 二、采集详情页信息 如上图所示,使用xpath提取详情页的标题、作…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...

通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...