标签: nginx

nginx:使用所有标头记录完整的请求/响应?

我们有一个有时会挂起的应用程序服务器。我们怀疑这是由于来自客户的错误请求。

nginx 能否将完整的请求/响应(如 fiddler 捕获)记录到文件中,以便我们可以看到挂起之前发送的请求?

(我们可能需要避免 pcap 和这种方法,并在 nginx 中完成所有操作)

如果 nginx 不是用于此的正确工具,那么可能是什么(除了网络分析器)?

nginx

59
推荐指数
2
解决办法
14万
查看次数

nginx 配置上的可疑符号

我有以下 nginx 配置,例如

server {
        listen   80;
        server_name example.com
        allow 127.0.0.0/8;
Run Code Online (Sandbox Code Playgroud)

当我重新启动时,它警告我:

Restarting nginx: nginx: [warn] server name "127.0.0.0/8" has suspicious 
symbols in /etc/nginx/sites-enabled/xxx
Run Code Online (Sandbox Code Playgroud)

任何的想法?

nginx

58
推荐指数
2
解决办法
5万
查看次数

104:从上游(Nginx)读取响应头时对等方重置连接

我有一台服务器一直正常工作,直到 2013 年 10 月 3 日上午 10:50,它开始间歇性地向客户端返回“502 Bad Gateway”错误。

大约五分之四的浏览器请求成功,但大约五分之一的请求失败并显示 502。

nginx 错误日志包含数百个这样的错误;

2013/10/05 06:28:17 [error] 3111#0: *54528 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 66.249.66.75, server: www.bec-components.co.uk  request: ""GET /?_n=Fridgefreezer/Hotpoint/8591P;_i=x8078 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.bec-components.co.uk"
Run Code Online (Sandbox Code Playgroud)

但是 PHP 错误日志不包含任何匹配的错误。

有没有办法让 PHP 给我更多关于它为什么要重置连接的信息?

这是nginx.conf;

user              www-data;
worker_processes  4;
error_log         /var/log/nginx/error.log;
pid               /var/run/nginx.pid;

events {
   worker_connections  1024;
}

http {
  include          /etc/nginx/mime.types;
  access_log       /var/log/nginx/access.log;

  sendfile               on;
  keepalive_timeout      30;
  tcp_nodelay            on;
  client_max_body_size   100m; …
Run Code Online (Sandbox Code Playgroud)

php http nginx

58
推荐指数
4
解决办法
25万
查看次数

如何使用 nginx 代理到需要身份验证的主机?

如何设置一个 nginx proxy_pass 指令,该指令还将包含发送到代理主机的 HTTP 基本身份验证信息?

这是我需要代理到的 URL 示例:

http://username:password@192.168.0.5/export?uuid=1234567890
Run Code Online (Sandbox Code Playgroud)

最终目标是允许一台服务器在不暴露代理服务器的 URI 的情况下,允许另一台服务器(我们代理的服务器)显示文件。通过遵循此处找到的 Nginx 配置,我现在可以正确运行 90%:

http://kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote/

我只需要添加 HTTP Basic 身份验证以发送到代理服务器

nginx proxy

55
推荐指数
4
解决办法
12万
查看次数

订购: 1. nginx 2. 清漆 3. haproxy 4. 网络服务器?

我见过有人建议将所有这些组合在一个流程中,但它们似乎有很多重叠的功能,所以我想深入了解为什么您可能想要在访问实际 Web 服务器之前通过 3 个不同的程序。

nginx:

  • ssl:是的
  • 压缩:是
  • 缓存:是
  • 后端池:是

漆:

  • ssl:不(stunnel?)
  • 压缩:?
  • 缓存:是(主要功能)
  • 后端池:是

快乐代理:

  • ssl:没有(stunnel)
  • 压缩:?
  • 缓存:无
  • 后端池:是(主要功能)

将所有这些链接到您的主要 Web 服务器之前是否只是为了获得它们的一些主要功能优势?

让这么多守护进程一起做类似的事情似乎很脆弱。

您的部署和订购偏好是什么?为什么?

nginx web varnish haproxy

53
推荐指数
5
解决办法
2万
查看次数

Nginx 位置正则表达式不适用于代理传递

我正在尝试让这 2 个位置指令在 Nginx 中工作,但是在启动 Nginx 时出现了一些错误。

   location ~ ^/smx/(test|production) {
        proxy_pass   http://localhost:8181/cxf;
    }

    location ~ ^/es/(test|production) {
        proxy_pass   http://localhost:9200/;
    }
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误:

nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block
Run Code Online (Sandbox Code Playgroud)

有没有人觉得很熟悉?我在这里错过了什么?

nginx proxy regex proxypass

53
推荐指数
2
解决办法
8万
查看次数

让我们使用 nginx 反向代理进行加密

介绍

我有一个开发服务器(目前运行 Ubuntu 14.04 LTS),我已经使用了一段时间来在不同端口上托管各种开发工具。因为端口很难记住,所以我决定将端口 80 用于我的所有服务,并根据主机名在内部进行端口转发。

而不是写 domain.com:5432,我可以简单地通过 sub.domain.com 访问它

例如,使用端口 7547 并在 sub.domain.com 上运行的应用程序 X 具有以下 nginx 配置:

upstream sub {
    server 127.0.0.1:7547;
}

server {
    listen 80;
    server_name sub.domain.com www.sub.domain.com;
    access_log /var/log/nginx/sub.log combined;
    location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:7547;
            proxy_set_header Authorization "";
    }
}
Run Code Online (Sandbox Code Playgroud)

问题

鉴于我选择的当前配置结构,是否可以使用 letencrypt 并在 https 下运行不同的服务?

nginx https jira lets-encrypt

53
推荐指数
1
解决办法
8万
查看次数

在配置文件中调试 nginx 重写规则的最佳方法?

我有一堆重写规则,我必须将它们从 apache 移植到 nginx。

这是一个相当痛苦的过程,因为我无法查看我的重写规则和“如果”条件是否按我希望的那样工作。

Apache 确实对其重写模块进行了调试。我可以为 nginx 做什么?

linux mod-rewrite nginx lamp apache-2.2

52
推荐指数
3
解决办法
8万
查看次数

如何更改 NGINX 用户?

我有一个 PHP 脚本,它创建一个目录并将图像输出到该目录。这在 Apache 下运行得很好,但我们最近决定切换到 NGINX 以更多地利用我们有限的 RAM。我正在使用 PHP mkdir() 命令来创建目录:

mkdir(dirname($path['image']['server']), 0755, true);
Run Code Online (Sandbox Code Playgroud)

切换到 NGINX 后,我收到以下警告:

Warning: mkdir(): Permission denied in ...
Run Code Online (Sandbox Code Playgroud)

我已经检查了父目录的所有权限,所以我确定我可能需要更改 NGINX 或 PHP-FPM 'user' 但我不知道该怎么做(我从来没有指定用户APACHE 的权限)。我似乎找不到这方面的太多信息。任何帮助都会很棒!

(注意:除了这个小问题,切换到 NGINX 的过程非常顺畅;我是第一次使用它,实际上只用了 10 分钟就可以启动并运行 NGINX。现在我只是在熨烫解决问题。)

permissions nginx

52
推荐指数
3
解决办法
26万
查看次数

什么是最好的 nginx 压缩 gzip 级别?

我正在使用启用 gzip 的 nginx 反向代理缓存。但是,我从 Android 应用程序 HTTP 请求到我的 Rails JSON Web 服务时遇到了一些问题。似乎当我关闭反向代理缓存时,它工作正常,因为响应标头没有 gzip。因此,我认为问题是由gzip引起的。什么是最合适的 gzip 压缩级别?

gzip               on;
gzip_http_version  1.0;
gzip_vary          on;
gzip_comp_level    6;
gzip_proxied       any;
gzip_types         text/plain text/css text/javascript application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss;
Run Code Online (Sandbox Code Playgroud)

nginx gzip

51
推荐指数
3
解决办法
7万
查看次数

标签 统计

nginx ×10

proxy ×2

apache-2.2 ×1

gzip ×1

haproxy ×1

http ×1

https ×1

jira ×1

lamp ×1

lets-encrypt ×1

linux ×1

mod-rewrite ×1

permissions ×1

php ×1

proxypass ×1

regex ×1

varnish ×1

web ×1