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
    • 最新
    • 标签
主页 / computer / 问题

问题[nginx](computer)

Martin Hope
n-l-i
Asked: 2024-10-20 22:17:09 +0800 CST

如何让Nginx不响应不需要的请求?

  • 5

我在托管网站的服务器前面设置了一些代理服务器。我在网站服务器上设置了 Nginx,这样,如果请求不是来自我的代理服务器的 IP 地址,则这些请求将被拒绝,因为我希望所有流量都通过这些代理服务器。

是否可以进行设置,使我的服务器根本不响应不必要的请求?

我想使该 IP 地址看起来好像没有任何服务器在监听。

nginx
  • 1 个回答
  • 22 Views
Martin Hope
madgangmixers
Asked: 2024-09-26 14:52:18 +0800 CST

将 nginx 负载均衡器配置为标头上的 ip_hash,而不是 ip 地址

  • 6

我已经在反向代理后面设置了 NGINX 负载均衡器。

因此,所有传入请求都具有相同的 IP 地址(反向代理的 IP 地址)。

所有这些请求都包含一个“X-Forwarded-For”标头,其中包含发起请求的客户端的 IP 地址。

是否可以配置 NGINX 以针对“X-Forwarded-For”标头的内容而不是传入请求的 IP 地址执行 ip_hash?

如果 NGINX 无法实现,那么使用其他负载均衡器(apache 等)可以吗?

注意:我无法控制反向代理设置。

nginx
  • 1 个回答
  • 11 Views
Martin Hope
Calamity Jane
Asked: 2023-12-05 21:13:23 +0800 CST

如何修复“客户端请求正文缓冲到临时文件”?

  • 6

我有一个在谷歌云中运行的容器,并在同一云中运行一个Mysql Db。它通过 API 接收 json 数据。处理数据时,我将数据写入数据库。

5 分钟内大约两次我收到以下日志条目:

2023/11/27 12:27:09 [warn] 15#15: *39 a client request body is buffered to a temporary file /var/lib/nginx/client_body_temp/0000000020, 

尽管这只是一个警告,但它在我的日志中作为错误出现。所以它会向我的日志发送错误信息,我想摆脱它。

我对 nginx 还没有太多经验,所以我查找了值“client_body_buffer_size”,发现它是 proxy.conf 的一部分

我的设置还没有代理配置,所以我添加了一个简单的配置:proxy.conf 并将其放置在位于 /etc/nginx/proxy.conf 的 Docker 构建脚本中

proxy_redirect          off;
proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size    1m;
client_body_buffer_size 1m;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffers           32 4k;

之后,我烦人的错误消失了,但我遇到了一个更严重的错误:我的数据库收到“操作超时”错误,并且我的数据无法再写入。因此,我当然恢复了该配置并删除了 proxy.conf,现在又回到了第一个错误。

消除标题错误的正确方法和位置是什么?我可以将 client_body_buffer_size 参数添加到 httpd.conf 中吗?

我应该补充一点,发送回的数据不像图像那样大。它的大小可能为 250kb,甚至更大一些。

我已经在姐妹网站上提出了问题:https ://stackoverflow.com/questions/77556980/how-to-fix-a-client-request-body-is-buffered-to-a-temporary-file

nginx
  • 1 个回答
  • 28 Views
Martin Hope
intelfx
Asked: 2023-06-23 02:52:59 +0800 CST

使用 nginx 自动代理 WebSockets 端点

  • 5

我正在尝试为 Web 应用程序(特别是 JupyterLab,但这个问题是通用的)编写 Nginx 反向代理配置。

Web 应用程序在多个不相交的 URL 层次结构中使用多个 WebSocket 端点。例如,

  • /jupyter/api/yjs/...
  • /jupyter/terminals/...
  • /jupyter/api/collaboration/room/...
  • (和别的)

都是 WebSocket 端点。我写了一个临时配置,如下所示:

                location /jupyter/ {
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $scheme;
                        proxy_set_header Host $host;
                        client_max_body_size 0;
                        proxy_pass http://jupyter;
                }

                location ~ ^/jupyter/api/yjs/ {
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $scheme;
                        proxy_set_header Host $host;
                        proxy_http_version 1.1;
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "Upgrade";
                        proxy_pass http://jupyter;
                }

                <repeated sections for other WebSockets endpoints>

然而,WebSockets 端点的完整列表并未记录在案。我尝试分析 nginx 和应用程序日志并推断哪些 URL 需要被代理为 WebSocket,但这显然不可靠。


有没有办法编写 nginx 配置,以便将所有传入的 WebSockets 请求代理为 WebSockets,将纯 HTTP 请求代理为纯 HTTP,而不需要在 nginx 配置中对 WebSockets 位置进行硬编码?

nginx
  • 2 个回答
  • 15 Views
Martin Hope
Bathinda Helper
Asked: 2023-03-01 18:53:55 +0800 CST

`=` 和 `^~` Nginx 修饰符之间的确切区别是什么?

  • 5

据我所读/理解, 和=都是^~普通的字符串前缀修饰符( 'reg-exp'修饰符都不是)。两者都只允许完全匹配(否则它被认为是不匹配)。如果找到完全匹配,则两者都会停止进一步的匹配过程,并立即提供伴随的“位置”。

那么这2个修饰符有什么区别呢?

nginx
  • 2 个回答
  • 25 Views
Martin Hope
nadermx
Asked: 2023-02-17 11:20:06 +0800 CST

使用上游时 Nginx cors 问题

  • 6

我对此感到非常沮丧,因为我似乎无法弄清楚为什么会这样。

我有一个运行良好的 Django webapp。当我尝试更改 worker_connections 时,我开始遇到 CORS 问题。我恢复了这个号码,但仍然遇到 CORS 问题。

我的 nginx 配置如下所示

upstream backend {
    #ip_hash;
    #server 38.106.79.195;
    server unix:/home/www/api.to/app.sock;
}

server {
    server_name api.pdf.to;

    client_max_body_size 10000m;
    gzip_disable "msie6";
    access_log off;
    error_log on;
    gzip_vary on;
    gzip on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_min_length 256;
    gzip_types application/javascript application/font-ttf ttf text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;

    location /word/report.html {
       alias /var/log/nginx/report.html;
    }

    location / {
          add_header 'Access-Control-Allow-Origin' '*'  always;
          add_header 'Access-Control-Max-Age' '3600'  always;
          add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
          add_header 'Access-Control-Allow-Headers' '*' always;

          if ($request_method = OPTIONS ) {
              return 200;
          }


        proxy_pass http://backend;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header REMOTE_ADDR $remote_addr;
        proxy_read_timeout 1000; # this
    }


    location /static/downloads {
        alias /home/www/api.to/static/downloads/;
   add_header Content-disposition "attachment; filename=$1";
   default_type application/octet-stream;
  }





    location /static/ {
        alias /home/www/api.to/static/;
        expires 35d;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
        access_log off;
    }


    location /static/downloads {
        alias /home/www/api.to/static/downloads/;
   add_header Content-disposition "attachment; filename=$1";
   default_type application/octet-stream;
  }





    location /static/ {
        alias /home/www/api.to/static/;
        expires 35d;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
        access_log off;
    }


    listen 443 ssl http2; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/api.pdf.to-0001/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/api.pdf.to-0001/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}

我在我的 Django 应用程序中禁用了 CORS,它工作正常,但在重新加载后它不起作用。我必须添加到我的 nginx

          add_header 'Access-Control-Allow-Origin' '*'  always;
          add_header 'Access-Control-Max-Age' '3600'  always;
          add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
          add_header 'Access-Control-Allow-Headers' '*' always;

          if ($request_method = OPTIONS ) {
              return 200;
          }

这使得它在我将它发送到本地框时有效,但如果我将它发送到上游框(具有相同的 nginx 配置),它会给我一个 404 或 CORS 错误。

nginx
  • 1 个回答
  • 15 Views
Martin Hope
hanshenrik
Asked: 2022-12-27 11:58:54 +0800 CST

Nginx 如何使用“Content-Type: text/plain; charset=UTF-8”标题?

  • 5

如何在 Nginx 中.txt提供带有标题的文本 ( ) 文件?Content-Type: text/plain; Charset=UTF-8

我有一个在 Ubuntu 20.04 上运行的 nginx/1.18.0,nginx.conf我有这个集合:

http {
(...)
        include /etc/nginx/mime.types;

我mime.types有这个:

types {
(...)
    text/plain                            txt;

但是当我访问文本文件时,它会提供这些标题:

HTTP/1.1 200 OK
(...)
Content-Type: text/plain

但我想为它提供这些标头:

Content-Type: text/plain; charset=UTF-8

我怎样才能做到这一点?

nginx
  • 1 个回答
  • 32 Views
Martin Hope
Stackerito
Asked: 2022-12-16 14:37:19 +0800 CST

如何屏蔽受保护的文件夹路径以使其看起来像是从其他位置提供的?

  • 5

我正在使用 X-Accel 来提供包含图像的受保护文件夹:https ://www.nginx.com/resources/wiki/start/topics/examples/x-accel/

目前我将文件存储在文件/protected_files夹中。所以现在为了使用 X-Accel 查看文件,我传递了包含/protected_filesURL 的路径,例如protected_files/image1.jpg.

这就是我在受保护文件夹上设置保护的方式:

location /protected_files {
  internal;
}

然后为了使用 X-Accel 查看文件,我传递了带有X-Accel-Redirect.

有没有办法屏蔽 URL,使其看起来像是从另一个 URL 提供的?喜欢/fake_folder/image1.jpg?

我尝试但没有用的是创建另一个具有所需假名称的文件夹,然后将别名添加到真实名称:

location /fake_folder {
  internal;
  alias /protected_files;
}

然后我用 传递 URL /fake_folder/image1.jpg,但我收到错误 404

nginx
  • 1 个回答
  • 21 Views
Martin Hope
user1724348
Asked: 2022-08-25 10:44:47 +0800 CST

这个带有代理设置的 nginx 配置安全吗?

  • 5

我已经使用 LetsEncrypt 为证书设置了一个 Node/Express HTTPS / SSL 服务器,在端口 3000 上运行。它可以工作,我可以通过www.example.com:3000. 但我真的希望能够直接从www.example.com.

通过创建自己的 nginx 配置并运行sudo systemctl restart nginx.

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        server_name _;                        // *

        location / {
                allow all;                    // *
        }
}

server {
    server_name www.example.com;

    listen [::]:443 ssl;
    listen 443 ssl;

    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass  https://127.0.0.1:3000;

        allow all;                            // *
    }
}

设置证书时,我从 Certbot 自动生成的服务器改编了第二台服务器。

我是 nginx 配置文件的新手。任何人都可以就我的实施安全提供建议吗?我错过了什么吗?我特别想知道我附加的行// *。提前致谢。

nginx
  • 1 个回答
  • 35 Views
Martin Hope
Jack N
Asked: 2022-08-08 10:27:35 +0800 CST

如何使 Nginx 服务器在公共 IP 上可用

  • 6

我正在尝试从我的家庭 WiFi 运行一个小型网站,所以我设置了一个从 localhost:8000 到端口 93 的反向 Nginx 代理。

我想知道如何从我的公共 IP 地址访问该服务器,而不仅仅是我的 localhost 端口 93。

目前,我将服务器配置中的 server_name 设置为映射到我的公共 IP 地址的名称/etc/hosts。是否需要端口转发才能从我的公共 IP 地址访问服务器?如果是这样,我该如何设置。

我正在使用 Ubuntu 20.04。谢谢您的帮助。

杰克

nginx web-hosting
  • 1 个回答
  • 286 Views

Sidebar

Stats

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

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve