正如最近向我解释的那样,当与应用程序服务器的连接被捆绑通过缓慢的网络连接向客户端提供数据时,就会发生“填鸭问题”。这对我来说很有意义,现在我明白了在我的应用程序服务器前面放置高并发代理的重要性。
我的问题是,第一个认识到这个问题的人是如何解决的?如果没有人向我解释,什么 *nix 工具和故障排除技术可以帮助我识别这个问题?
这是我的第一篇服务器故障帖子。我成为 Stack Overflow 的成员已经有一段时间了,我怀疑这个问题会飞到那里。
我将 PS3 和 XBOX 360 硬连接到 Linksys Wireless N 路由器。我想找到一种方法来确定在写入和接收游戏排行榜统计数据时连接到的服务器。这并不是为了破解排行榜,而是为了尝试找出如何抓取数据。没有用于访问 XBOX Live 或 PlaystationNetwork 统计数据的 API,因此我只是想尝试查看日志文件或实时观察连接的建立和断开。
我可以访问运行 10.6.3 的 Mac 和运行 Windows 7 的 PC。如果我必须将其中任何一个转换为代理,我都可以做到。我只需要找出需要什么软件来开始查看这些数据。
你们能指出我正确的方向吗?
有没有办法跟踪http://someserver.com/logs/server.log等资源?
这就是我对本地文件要做的事情。
tail -F /var/logs/somefile.log
Run Code Online (Sandbox Code Playgroud)
我想要类似于通过 http 协议访问的文件的内容
我正在尝试将 Nginx 设置为在 Unicorn 上运行的 Rails 应用程序的反向代理。
我的应用程序有一些公共页面,我想将它们缓存 60 分钟,因此我设置了 max-age 标头。
此外,我已将 proxy_cache 选项添加到 Nginx 中的服务器块中。
proxy_cache default;
Run Code Online (Sandbox Code Playgroud)
并定义了这个缓存
proxy_cache_path /var/www/nginx_cache keys_zone=default:10m max_size=500m;
Run Code Online (Sandbox Code Playgroud)
我已设置我的应用程序以将此标头添加到我的可缓存响应中
Cache-Control: max-age=3600, public
Run Code Online (Sandbox Code Playgroud)
当客户端第一次访问该页面时,将呈现该页面并返回响应。然而,在随后的请求中,nginx 不会减少 max-age 计数器。
因此,访问者可能会在页面过期前一分钟访问我的页面,这意味着他看到的是 59 分钟前的内容。但随后将此副本在他的浏览器中再保留 60 分钟,然后他就会获得新副本。
我可以让 Nginx 减去经过的时间,这样如果访问者访问已在 Nginx 缓存中 25 分钟的页面,则 max-age 将为 35 分钟(2100 秒)?
好吧,这是我的浏览器控制台出现的错误,我正在使用一个域,而该域只有一个子域,但我仍然无法访问该子域。实际上我收到了一些其他错误。
我的猜测是我的错误在于add_header Content-Security-Policy, 部分connect-src。:这是域部分,并且Content-Security-Policy:
server {
large_client_header_buffers 1 1K;
listen 80;
server_name www.just4bettors.mobi just4bettors.mobi;
root /home/c0pt/capilleira/capilleiraclickandgamblemobile/www;
location / {
index index.html index.htm;
...
}
add_header Content-Security-Policy
"default-src 'self' http://just4bettors.mobi:1337;
connect-src http://just4bettors.mobi
http://just4bettors.mobi:1337
http://www.just4bettors.mobi
http://www.just4bettors.mobi:1337";
}
Run Code Online (Sandbox Code Playgroud)
这是子域的部分:
server {
listen 80;
server_name www.desktop.just4bettors.mobi desktop.just4bettors.mobi;
root /home/c0pt/capilleira/capilleiraclickandgambleweb/dist;
location / {
index index.html index.htm;
...
}
add_header Content-Security-Policy add_header
"default-src 'self' http://www.just4bettors.mobi;
connect-src http://just4bettors.mobi
http://just4bettors.mobi:1337
http://www.just4bettors.mobi
http://www.just4bettors.mobi:1337
http://www.desktop.just4bettors.mobi:1337
http://www.desktop.just4bettors.mobi";
}
Run Code Online (Sandbox Code Playgroud)
我在控制台中遇到的这部分错误
Refused to connect to 'http://www.desktop.just4bettors.mobi/views/accFiguresModal.html' because …Run Code Online (Sandbox Code Playgroud) 我有一个后端服务器,由于各种原因,它只处理 GET 请求。该服务器位于 nginx 代理后面(即所有访问都对 nginx 进行,nginx 通过 代理将其发送到后端proxy_pass)。是否可以使 nginx 将 POST 请求重写为 GET 请求,即POST /foo主体内容类型application/x-www-form-urlencoded和主体foo=bar将被代理GET /foo?foo=bar?
对于使用 nginx 作为缓存代理,有没有一种方法可以配置 2 个上游服务器,使其始终尝试第一个上游服务器,除非该服务器返回 404,并且只有在这种情况下它才会尝试第二个上游服务器?
我知道backup上游配置块中的选项,但只有在第一个服务器不可用时才尝试该服务器。我说的是第一台服务器是否可用,但只是特定请求的文件返回 404。
我正在http通过wget1.2TB下载一个大文件。下载大约需要一个星期,现在已经包含了两次损坏(md5 检查失败,它需要数天才能自行运行)。
有没有一种好方法可以使用 say 来通过 http 验证文件的零碎curl?或者将其分解为单独的块,以便我可以识别特定的坏块并仅重新下载该部分?
该文件是一个tar档案,所以我相信在解包过程中可以按顺序识别每个块的损坏。
我试图弄清楚如何在通过curl.
这是我的目标服务器:
- Ubuntu 18.04.2 LTS
- 4.15.0-47-generic
- HA-Proxy version 1.8.19-1ppa1~bionic 2019/02/12
Run Code Online (Sandbox Code Playgroud)
这是我发布的客户端 1 curl(香草安装):
- Ubuntu 16.04.3 LTS
- 4.4.0-62-generic
- curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Run Code Online (Sandbox Code Playgroud)
这是我发布的客户端 2 curl(香草安装):
- Ubuntu 18.04 LTS
- 4.15.0-20-generic
- curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Run Code Online (Sandbox Code Playgroud)
要关闭 keepalive,我尝试使用-H "Connection: close",--no-keepalive并且--keepalive-time 1只有第一个选项似乎有效,但只能从客户端 1 使用。
在客户端 1 (Ubuntu 16) 上,连接没有保持打开状态,但在客户端 2 (Ubuntu 18) 上,连接保持打开状态,直到超时。我通过查看目标服务器watch -n …
我有一台运行 Debian 10 的服务器。它运行 Apache 2.4 以提供可在 下访问的 Web 服务https://example.com,这要归功于 LetsEncrypt 证书。
但它也运行一个应用程序 (Subsonic),它在端口 4040 上提供 Web UI,在它自己的 Web 服务器下,因为我没有它的 vhost,并且当 Apache 停止时它仍然可以访问。因此,目前该应用程序可通过 HTTP 访问http://example.com:4040。
我知道如何为 Apache 虚拟主机添加 SSL 支持,但如何为该应用程序添加 HTTPS 支持,以便可以在https://example.com:4040或上访问它https://example.com:1234?
另外,我是否应该使用与该域已有的 SSL 证书不同的 SSL 证书?
http ×10
nginx ×4
cache ×2
curl ×2
linux ×2
networking ×2
apache-2.2 ×1
apache-2.4 ×1
files ×1
https ×1
keepalive ×1
large-data ×1
performance ×1
proxy ×1
rewrite ×1
ssl ×1
tail ×1