本文介绍Nginx的常用配置以及如何在ASM网关实现对应的功能。
|
Nginx配置 |
描述 |
ASM实现方案 |
|
allow-backend-server-header |
允许从后端返回标头 |
ASM网关默认为true。 |
|
allow-snippet-annotations |
允许在Ingress的Annotation中添加自定义脚本修改Nginx配置。 |
不支持该参数,ASM网关需要通过编辑IstioGateway YAML来修改网关配置。 |
|
compute-full-forwarded-for |
将远程地址附加到X-Forwarded-For标头而不是替换它。 |
取决于Envoy的use_remote_address配置,默认为true。Istio关于XFF头的处理,请参见network-topologies。 |
|
enable-underscores-inheaders |
允许Header出现下划线。 |
对应Envoy的headers_with_underscores_action,默认为允许。 |
|
forwarded-for-header |
设置用于标识客户端的原始IP地址的标头字段。 |
ASM网关不支持自定义forwarded-for Header,默认为X-Forwarded-For。 |
|
generate-request-id |
如果请求中不存在X-Request-ID,则随机生成X-Request-ID。 |
对应Envoy的generate_request_id,可以通过ASM插件进行修改,默认为true。 |
|
ignore-invalid-headers |
设置是否忽略带有非法名称的Header。合法的Header名称应该是由英文字母、数字、短划线(-),可能包含下划线(_)。 说明
下划线(_)由underscores_in_headers控制。 |
Envoy提供了一个Header Validator。若未配置Header Validator,会使用默认值。如果有非法Header,会提示
|
|
keep-alive-requests |
设置同一个keep-alive Connection最大可以处理多少个请求。达到最大请求数后,该连接将被关闭。 |
关于如何配置,请参见DestinationRule的 |
|
log-format-upstream |
自定义日志格式。 |
ASM支持自定义日志格式,您可以通过ASM控制台的可观测配置页面进行配置。具体操作,请参见可观测配置。 |
|
max-worker-connections |
设置同一个Worker进程可以打开的最大连接数。 |
ASM并未提供完全相同的配置,但是支持通过DestinationRule的 |
|
proxy-body-size |
设置客户端请求的最大Body Size,若超过该值,就会报413错误 |
不支持直接配置。建议分块传输,不要使用太大的Body。 |
|
proxy-connect-timeout |
定义与代理服务器建立连接的超时时间,不能超过75秒。 |
关于如何配置,请参见DestinationRule的 |
|
reuse-port |
设置Nginx为每个工作进程创建一个单独的监听Socket(使用SO_REUSEPORT参数),允许内核在工作进程之间分配传入的连接。默认为true。 |
ASM网关默认为true。 |
|
server-tokens |
在响应中发送Nginx服务器标头,并在错误页面中显示Nginx的版本,默认为disabled。 |
ASM网关默认会将服务器标头填写为Envoy的标头,但是错误页面不会显示Envoy版本。 |
|
ssl-redirect |
如果服务器由TLS证书,则将重定向的全局值设置为HTTPS。 |
关于如何配置,请参见网关规则的 |
|
upstream-keepalive-connections |
设置保留在每个工作进程的缓存中与上游服务器的最大的空闲Keepalive Connection数目。 |
ASM并未提供完全相同的配置,但DestinationRule提供了 |
|
upstream-keepalive-timeout |
设置一个超时,超时之后将关闭与上游服务器之间的空闲连接。 |
关于如何配置,请参见DestinationRule的 |
|
use-forwarded-headers |
|
Istio关于XFF头的处理,请参见network-topologies。 |
|
worker-cpu-affinity |
将Worker进程绑定到指定的CPU集合上。 |
容器环境中,通常不建议配置该选项。保持默认即可。 |
更多信息,请参见Ingress Nginx。