我试图在多个服务器上镜像SNMP陷阱。它使用TCP/IP通信量。我正在使用nginx来完成这个任务,但是我得到了以下错误
vsrsadmin@TRAP02:~$ sudo nginx -t
nginx: [emerg] "location" directive is not allowed here in /etc/nginx/nginx.conf:118
nginx: configuration file /etc/nginx/nginx.conf test failedstream{
upstream dns_servers {
least_conn;
server 192.168.49.19:162 max_fails=1 fail_timeout=30s;
}
upstream mir_dns_servers {
least_conn;
server 192.168.49.15:162 max_fails=1 fail_timeout=30s;
}
#}
server {
listen 162;
# proxy_bind $remote_addr:$remote_port transparent;
# proxy_pass dns_servers;
location / {
mirror /mirror;
mirror_request_body on;
proxy_pass dns_servers;
}
location = /mirror {
mirror /mirror;
mirror_request_body on;
proxy_pass mir_dns_servers;
proxy_connect_timeout 200ms;
proxy_read_timeout 200ms;发布于 2023-02-13 18:51:30
stream用于中继原始的TCP流量。
ngx_http_mirror_module用于将HTTP请求镜像到不同的目的地。
原始TCP流量不包含HTTP流量,因此不能与mirror模块一起使用。
我不认为nginx可以用于您试图执行的镜像操作。我不知道有没有达到你目标的工具。
发布于 2023-02-13 19:07:00
配置文件的问题似乎是“位置”指令被放置在“流”上下文中。"location“指令仅适用于"http”上下文,因此不能在“流”上下文中使用。
但是您可以在"http“块中移动"location”指令,看看会发生什么。
https://serverfault.com/questions/1122692
复制相似问题