在Service Fabric服务中为每个端点启用gzip压缩

5 浏览
0 Comments

在Service Fabric服务中为每个端点启用gzip压缩

我们的应用程序以 Service Fabric 作为其基础,我们的微服务是 Service Fabric 服务。在前端使用 Lighthouse 进行一些审计后,我发现推荐启用文本压缩,并开始研究如何在一些响应中添加 gzip。

对于我们的 Node 服务器,我只需添加 compression 中间件并使用它。

对于其他服务,我进入 Web.config 并添加了以下内容:

重新加载我的 Web 应用程序后,我确实注意到响应现在是压缩的,但我不想压缩所有的响应。

当我设置任何一个端点时,我遵循以下格式:

[HttpGet]

[Route("{customer}/items")]

[Authorize]

public Task Get()

{

return _itemsService.GetAsync();

}

有没有一种方法可以按端点启用压缩,而不是按服务启用?

0
0 Comments

问题的原因是需要在Service Fabric服务的每个端点启用gzip压缩。

解决方法如下:

1. 编辑ServiceDefinition.csdef文件,在WebRole标签中添加以下内容:


  

2. 在Web角色中创建一个文本文件,将其保存为“EnableCompression.cmd”。

3. 编辑EnableCompression.cmd文件,将以下内容添加到文件中:

%windir%\system32\inetsrv\appcmd set config /section:urlCompression /doDynamicCompression:True /commit:apphost
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json; charset=utf-8',enabled='True']" /commit:apphost

通过上述简单的步骤,可以在Azure的Web角色中启用对返回的JSON进行动态压缩。

来源:

- [https://cloudmonix.com/blog/how-to-enable-gzip-http-compression-on-windows-azure-endpoint/](https://cloudmonix.com/blog/how-to-enable-gzip-http-compression-on-windows-azure-endpoint/)

- [https://basecamp.kony.com/s/question/0D56A00000RbtbBSAR/how-to-enable-gzip-compression-in-mobile-fabric](https://basecamp.kony.com/s/question/0D56A00000RbtbBSAR/how-to-enable-gzip-compression-in-mobile-fabric)

- [https://code.i-harness.com/en/q/2a58dd](https://code.i-harness.com/en/q/2a58dd)

- [https://stackoverflow.com/questions/2775261](https://stackoverflow.com/questions/2775261)

0