AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[web-services](server)

Martin Hope
Honza Zidek
Asked: 2021-11-27 01:24:43 +0800 CST

NGINX 可以在调度前调用另一个服务吗

  • 1

我们使用 NGINX 作为反向代理,它将来自外部的调用分派到我们内部的 Java 微服务:

在此处输入图像描述

我们想添加一项特殊服务,作为“中间人”,但仅限于请求部分。它的目的是装饰原始请求(身份验证、添加/修改 HTTP 标头、验证访问权限)。“装饰任务”涉及复杂的业务逻辑,无法在 NGINX 本身上进行配置。

我们希望首先调用该服务,然后将其响应(尤其是 HTTP 标头!)作为请求转发给其中一个微服务。也许还可以选择使用原始主体调用分派的服务,但使用从装饰器服务返回的 HTTP 标头。

当服务返回一个 HTTP 错误时,它应该直接返回给调用者而不用分派。

该服务被实现为 Java Spring Boot 应用程序。这是一个常规的网络服务。

是否可以在 NGINX 中配置,如何配置?

需要明确的是:我不是在问如何实施这项特定服务。我只需要知道是否可以(以及如何)配置 NGINX,以便它在调度调用之前调用另一个服务,并且 NGINX 将从该服务返回的标头(可能还有正文,但不一定)传递给调用。

在此处输入图像描述

web-services nginx
  • 1 个回答
  • 254 Views
Martin Hope
derekmc
Asked: 2020-11-25 07:33:06 +0800 CST

如何锁定 SSH 和/或 telnet 用户只运行自定义 shell 而没有其他命令或程序?

  • 0

我在堆栈溢出时问过这个问题,但我认为在 serverfault 上可能更合适,因为它与系统管理和安全性有关。

我正在寻找一个 web 服务的原型,而不必处理 HTTP 和其他 web 问题,这样用户就可以登录并使用一个只通过 stdin 和 stdout 交互的简单程序。

经过一番研究,我意识到,这就是“shell”的作用(即它通过标准输入和标准输出提供用户与系统的交互),所以我决定创建一个特定的用户并将他们的 shell 设置为我的程序,我可以轻松地原型这种“网络服务”,甚至可能允许许多用户不同的用户在程序本身内部进行身份验证,并且都使用相同的 ssh 用户。

我的问题是,将用户的 shell 设置为我的自定义程序,而不是从该程序中调用任何其他脚本或程序,是否足以限制对系统的访问,以便用户无法直接读取或写入文件,例如例子?

为了解决这个问题,我编写了一个自定义的“shell”,它从标准输入读取整数 n,并输出第 n 个斐波那契数。将其设置为用户的 shell 后,似乎 sftp 和通过 ssh 运行自定义命令不起作用,但我对 ssh 或 telnet 的了解不够,无法确信用户没有其他方法可以提升对系统的访问权限.

例如,这是我自定义的“fibonacci shell”程序:


#include <stdio.h>

long fibonacci(int n){
   long a = 0;
   long b = 1;
   for(int i=0; i<n; ++i){
       if(i%2) a += b;
       else    b += a; 
       if(a<0 || b<0) return -1;
   }
   return (long[]){a, b}[n%2];
}

int main(int argc, char * argv[]){
   char line[1024];

   int x;
   printf("Welcome to the fibonacci shell.\n");
   printf("Type an integer n, and I will tell you the nth fibonacci number.\n");
   while(1){
       printf("> ");
       if(fgets(line, sizeof line, stdin) <= 0) break;
       int result = sscanf(line, "%d", &x);
       if(result <= 0){
           printf("fibshell: Please type a number.\n"); }
       else{
           printf("fib(%d) = %ld\n", x, fibonacci(x)); }
   }

   return 0;
}

由于其他安全问题,我不会用 c 编写我的原型,但我希望对此有所了解。

我已经对 ssh“ForceCommand”设置进行了一些研究,但这在这里似乎不合适,因为它似乎使用用户配置的 shell 调用命令。

是否将用户的 shell 设置为不调用其他命令的简单程序,足以限制对 sftp 等其他设施的访问?是否有可能大规模安全地执行此操作,比如说成百上千的用户,可能多达 5-10 个同时用户使用相同的 ssh 登录访问该程序?

我知道 telnet 服务不是很常见,但我在几个不同的环境中见过它们。我找到了一个用于下棋的在线 telnet 服务,而我工作的一家制造公司在内部曾短暂使用 telnet 服务来报告订单状态。“telnet 服务”或“ssh 服务”通常是如何编写的?是否为用户编写自定义外壳,并以其他方式限制用户的权限和系统访问,通常是如何完成的?

编辑:我应该提到我使用的是linux系统,在这种情况下是manjaro(即arch),但我想知道openssh和unix系统的一般情况,是否有办法绕过用户的shell设置并运行其他命令或直接编程。

ssh web-services shell telnet
  • 1 个回答
  • 137 Views
Martin Hope
mfinni
Asked: 2017-06-09 10:28:18 +0800 CST

开始在两个 SaaS 应用程序之间使用 REST?

  • 0

问题的一般形式:如果您打算让 2 个 SaaS 应用程序相互通信,大多数人会尝试让其中一个启动和控制,还是他们会制作(或购买)第三方集成应用程序?

我有 ServiceNow Express,它有一个人口众多的 CMDB。我也有 Confluence Hosted,它是新的和空的。SNC Express 不适合我想要的关于我的环境的那种 wiki-d 链接文档。因此,我希望将我的业务服务、应用程序和服务器记录在 Confluence 中,作为页面(我认为)。我不想将我所有的 CMDB 条目从 SNC 导出/导入到 Confluence 中,或者至少不超过一次。

我知道如何编写代码,但我不会做太多,只是简单的 bash 或 PoSH 脚本。我在 REST 方面做得很少,我真的不知道如何开始。我知道 Confluence 和 SNC 都可以响应 REST 请求,但是这些请求是从哪里来的呢?在 SNC Express 中,我可以创建一个业务规则(服务器端脚本),当创建一个新的 CMDB 条目时,继续向 Confluence 发送一个 REST 创建方法来创建一个新页面。如果我想让它走另一条路,我在 Confluence 中看不到任何运行服务器端代码的东西;我错过了什么还是他们没有提供?

web-services
  • 1 个回答
  • 84 Views
Martin Hope
Peter Xander
Asked: 2017-04-01 18:16:07 +0800 CST

与 Debian Jessie 的零星慢速网络连接

  • 0

我的小型服务器配备 i7 6700K 处理器和 32Gb RAM,运行 Apache 2.4.25 有一些奇怪的连接问题。它似乎取决于通过 IPv4/IPv6 连接或用户的位置。当我尝试从科隆(net cologne)的朋友家连接时,我每隔大约 5 分钟就会随机断开连接。我问另一位目前在西班牙的朋友是否可以尝试重现该错误。奇怪的是,他获得了 1.2MB/s 的完整下载速度并且没有断开连接。所以也许它也取决于位置或个别网络提供商使用不同的方式发送包,其中一些干扰网卡驱动程序。

web-services
  • 1 个回答
  • 199 Views
Martin Hope
Mulflar
Asked: 2016-07-14 00:24:19 +0800 CST

Windows Server 2008 asp.net 超时

  • 0

我开发了一个简单的 asp.net 网络服务,我们将其安装在客户服务器中,以便他们可以使用移动应用程序。

我在 windows server 2012 上测试了 web 服务,一切正常。然后我转移到拥有 windows server 2008 r2 的客户服务器,我激活了 IIS,创建了启用 32b 应用程序的新应用程序池,安装了应用程序并在 localhost 上尝试,一切正常。

它适用于

localhost/service/someservice.asmx

或者

127.0.0.1/service/someservice.asmx

但它不起作用

customer.dyndns.org/service/someservice.asmx

或者

xx.xx.xx.xx/service/someservice.asmx

给我连接超时错误。

  • 我增加了 web.config 的超时时间
  • 我尝试了对 customer.dyndns.org 的 ping 操作,没问题
  • 我还尝试访问 customer.dyndns.org/emptyfile.txt 只是为了尝试这不是“大小”问题。
  • 我检查了防火墙,它允许在 http 上使用 80 端口

所以……我不知道我还能做什么……

我们有一些像这样的 web 服务在其他服务器上使用 windows server 2003、2008 和 2012 并且它们可以正常工作。

asp.net web-services timeout windows-server-2008-r2
  • 1 个回答
  • 46 Views
Martin Hope
Torben Gundtofte-Bruun
Asked: 2012-06-28 01:02:39 +0800 CST

HTTP 错误:413 请求实体太大

  • 2

我有什么:
我有一个 iPhone 应用程序,可以将 HTTP POST 请求(XML 格式)发送到用 PHP 编写的 Web 服务。这是在托管的虚拟专用服务器上,因此我可以编辑httpd.conf服务器上的其他文件,然后重新启动 Apache。

问题:
只要请求不是太大,Web 服务就可以完美运行,但 1MB 左右是限制。之后,服务器响应:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>413 Request Entity Too Large</title>
</head><body>
<h1>Request Entity Too Large</h1>
The requested resource<br />/<br />
does not allow request data with POST requests, or the amount of data
provided in the request exceeds the capacity limit.
</body></html>

Web 服务写入自己的日志文件,我可以看到小消息处理得很好。较大的消息根本没有记录,所以我猜 Apache 中的某些东西甚至在它们到达 Web 服务之前就拒绝了它们?

我尝试过但没有成功的事情:(
每次更改后我都重新启动了 Apache。这些步骤是增量的。)

  1. 托管服务提供商基于 Web 的配置面板:禁用 mod_security
  2. httpd.conf:LimitXMLRequestBody 0和LimitRequestBody 0
  3. httpd.conf:LimitXMLRequestBody 100000000和LimitRequestBody 100000000
  4. httpd.conf:SecRequestBodyLimit 100000000

在此阶段,Apacheerror.log包含一条消息:
ModSecurity: Request body no files data length is larger than the configured limit (1048576)

ModSecurity 有一个错误声明这一事实表明我的第 1 步并没有真正采取。Apacheaccess.log看起来像这样,有 3 条成功的小消息和 2 条失败的大消息:

"POST / HTTP/1.1" 200 310 "-" "Audiopad/1.0 CFNetwork/548.0.4 Darwin/11.0.0"
"POST / HTTP/1.1" 200 310 "-" "Audiopad/1.0 CFNetwork/548.0.4 Darwin/11.0.0"
"POST / HTTP/1.1" 200 310 "-" "Audiopad/1.0 CFNetwork/548.0.4 Darwin/11.0.0"
"POST / HTTP/1.1" 413 464 "-" "Audiopad/1.0 CFNetwork/548.0.4 Darwin/11.0.0"
"POST / HTTP/1.1" 413 464 "-" "Audiopad/1.0 CFNetwork/548.0.4 Darwin/11.0.0"

Apacheerror.log有关于大消息的信息:

[error] [client 194.24.138.43] ModSecurity: Request body no files data length is larger than the configured limit (1048576). [hostname "webservice-audiopad.golfbravo.net"] [uri "/"]
[error] [client 194.24.138.43] ModSecurity: Request body no files data length is larger than the configured limit (1048576). [hostname "webservice-audiopad.golfbravo.net"] [uri "/"]

但是,我1048576在httpd.conf.

我还能尝试什么,让 Web 服务接收大消息?

php apache-2.2 web-services vps httpd.conf
  • 4 个回答
  • 42887 Views
Martin Hope
Marcus
Asked: 2012-06-15 12:24:12 +0800 CST

配置 Apache 以代理对 VPN 后面的 Web 服务的调用

  • 1

我有一个不寻常的情况。我需要从嵌入式平台访问需要 VPN 身份验证的 WebService。我无法从嵌入式平台连接到 VPN,因为它只支持 Windows 客户端。

我认为唯一的解决方案是使用 Windows PC 连接到 VPN 并充当嵌入式平台的代理。

VPN 登录是通过 Check Point 网络客户端完成的(仅适用于 Internet Explorer)。我需要访问的服务器通过 VPN 公开为:

http://10.2.77.66/service.svc

我已经设法让 VPN 正常工作。我可以从 PC 网络浏览器访问以下地址:

http://10.2.77.66/service.svc?wsdl

但是我真的不知道如何配置代理服务器以便嵌入式平台可以访问 WebService。

谁能给我一些提示?

非常感谢。

vpn apache-2.2 proxy web-services
  • 1 个回答
  • 484 Views
Martin Hope
embedded
Asked: 2012-06-05 23:40:47 +0800 CST

Solaris 11 ldap 客户端配置

  • 0

我正在尝试将一些连接到我们的 ldap 以进行用户身份验证的 Web 服务(如 wordpress / dokuwiki)从 solaris 10 迁移到 solaris 11。在 solaris 10 中,您可以将客户端配置为不请求或检查任何服务器证书。这是通过 TLS_REQCERT 完成的,从来没有在 ldap 配置(/etc/opt/csw/openldap/ldap.conf)中。

有谁知道如何在 solaris 11 中配置它?或者如何配置客户端使用我们的证书?我在我们的 solaris 11 主机上找不到任何 ldap 配置,也找不到如何在主机上安装证书以用于 ldap 连接的文档。

solaris ldap web-services configuration certificate
  • 1 个回答
  • 1713 Views
Martin Hope
scott_lotus
Asked: 2012-05-16 02:48:34 +0800 CST

TCP 窗口缩放。由于 Windows 2008 服务器上的动态 TCP 帧大小,不支持 TCP 比例因子

  • 0

问题

从我们托管在 Windows 2008 Server 上的 WCF 服务调用由 ISP 托管的 asp web 服务显示超时/web 服务无响应。

诊断

使用 Windows 网络监视器来捕获数据包并隔离发送到 Web 服务的数据包,我可以看到:


TLS 握手你好

TCP传输

TCP重传

TCP重传

TCP重传

TCP重传

TCP重传

TCP 协商比例因子

不支持 TCP 比例因子


这似乎没有显示对 TCP 负载的响应,这意味着 IP 块。

解决方案

联系网络服务提供商后,他们建议没有 IP 块,这个问题特定于 Microsoft Windows 2008 Server、动态 TCP 帧大小及其特定负载平衡器。

经过一些进一步的研究,我相信下面会解决。

要查看 autoTuningLevel 参数的当前配置,请执行以下步骤:


点击开始

单击所有程序,然后单击附件。

右键单击命令提示符,然后单击以管理员身份运行。

如果系统提示您输入管理员密码或进行确认,请键入密码,或单击继续。

在命令提示符下,键入以下命令,然后按 ENTER:netsh interface tcp show global

autoTuningLevel 参数的值列为接收窗口自动调整级别。

我们希望将其设置为正常

在命令提示符下,键入以下命令,然后按 ENTER:netsh interface tcp set global autotuninglevel=disabled


以下列表包括 autoTuningLevel 参数的所有可能值:

/disabled:将接收窗口设置为默认值。

/highlyrestricted:让接收窗口增长到超过默认值,但这样做非常保守。

/restricted:让接收窗口增长到超过默认值,但在某些情况下限制这种增长。

/normal:让接收窗口增长以适应大多数情况。

/experimental:让接收窗口增长以适应极端情况。


注意 实验值可能会降低常见场景中的性能。此值应仅用于研究目的。

问题

只需从独立来源寻找有关此问题的更多信息。

希望它会在某个时候被 MS 修补。

谢谢斯科特

参考: http: //support.microsoft.com/kb/935400

windows-server-2008 web-services tcp scaling wcf
  • 1 个回答
  • 5243 Views
Martin Hope
Onion-Knight
Asked: 2012-05-09 10:33:14 +0800 CST

IIS Admin 运行时出现“IIS Admin Service is Disabled”错误

  • 2

问题:

我试图Default Website在 IIS 上启动,但出现以下错误:

IIS 重置问题

如您所见,它表示 IIS Admin 在实际运行时被禁用。

问题:

有没有办法让 IIS 运行?

我们的 VeryImportantWebsite™ 已经关闭了几天,作为一名程序员,我并不像我希望的那样倾向于 IT。

service windows-xp iis web-services
  • 1 个回答
  • 1407 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve