nginx通过防护墙、F5设备过来之后,remote_addr 的地址是防护墙、F5的地址, 客户端真是的IP地址是在 x_forwarded_for中的, 这样这样 nginx 默认的 deny 和 allow 就不能用了。
我们需要在每个域名中判断一个 x_forwarded_for 钟是否有我们要拒绝的IP地址,如果有就返回403,不在往后代理。
我们定义一个map 拒绝的IP地址列表。
nginx通过防护墙、F5设备过来之后,remote_addr 的地址是防护墙、F5的地址, 客户端真是的IP地址是在 x_forwarded_for中的, 这样这样 nginx 默认的 deny 和 allow 就不能用了。
我们需要在每个域名中判断一个 x_forwarded_for 钟是否有我们要拒绝的IP地址,如果有就返回403,不在往后代理。
我们定义一个map 拒绝的IP地址列表。
marathon-lb代理https域名, 需要将证书当道lb上。nginx不需要开启443端口,nginx需要配置 vhost 才能访问。
marathon添加证书连接: marathon-lb上添加多个证书
域名都是通过 vhost 虚拟主机方式访问。这样nginx才能拿到 x_forwarded_for 客户端的IP地址。LB才会通过HTTP方式代理,否则会走TCP代理。
nginx上回有很多个域名,我们不能添加一个域名就修改一次 vhosts ,所以我们尝试添加 泛域名。
marathon-lb代理https域名, 需要将证书当道lb上。nginx不需要开启443端口,nginx需要配置 vhost 才能访问。
vhost 需要再nginx发布的时候通过标签形式发布的,但是一个nginx上可能多个域名,不是很灵活,(当你的服务全部都在mesos集群中的话,不用nginx,直接用LB+服务 方式,就可以在每个服务发布的时候声明vhosts。),之后我们研究了nginx发布的时候发布泛域名来解决这个问题。连接 : nginx实现marathon-lb的vhosts泛域名代理
marathon-lb 和 nginx 域名都是通过 vhost 虚拟主机方式访问。这样nginx才能拿到 x_forwarded_for 客户端的IP地址。LB才会通过HTTP方式代理,否则会走TCP代理。
marahton-lb 可以加载多个证书,–ssl-certs 用“,”逗号隔开证书路径
marathon 在集群中,marathon可以部署多个节点。
-m 参数是指定marathon地址的,后面跟上marathon地址就可以了, 当你有多个marathon地址的时候,用“空格”隔开就可以了。
marathon json文件中是这样写的。
Elasticsearch是免费的,但是有些插件是需要license的,否则你只能试用,不能长期试用。如 marvel、x-pack、shield等插件。
我么可以在Elasticsearch官网上注册申请免费license
申请地址:https://register.elastic.co/marvel_register
安装表格填写姓名、邮箱、公司、国家
之后你的邮箱会收到来之Elastic团队反馈的license信息。
如:
nginx 默认输出acces日志格式是message格式。现在都做日志统一分析ELK了,message格式就不是很适用了。 所以输出json格式对于后期分析就很友好了。
其他就不说了,直接上配置了
修改 nginx.conf 配置文件, 注释掉之前 log_format 重新写一个 json格式的log_format
最近我们nginx上来容器,日志实时传走,但是本地还需要留一份另作他用,这样用原来logrotate或cronolog方式切分日志就很麻烦了, 我就开始再nginx配置文件中想办法。
发现可以利用 $time_iso8601 变量来切分日志, 它就是每条日志的时间戳,取它的年、月、日、小时做变量,生成带时间戳得日志文件。就可以每小时、每天输出到不同文件里了。
这是一个显示 $time_iso8601格式的示例:
1 | 2019-05-04T18:12:02+02:00 |