标签: nginx-location

如何在nginx中将请求正文的内容添加为响应头?

我正在尝试添加一个标头“X-Body”并将其设置为 nginx conf 中请求的响应正文。

pid logs/nginx.pid.test;
 error_log logs/error.log.test debug;
worker_rlimit_core 500M;
worker_processes  1;
master_process off;


events {
    worker_connections  1024;
}

http {
    include            mime.types;
    default_type       application/json;
    sendfile           on;
    keepalive_timeout  65;
    variables_hash_max_size 2048;

    server {
        listen       65311;
        server_name  test;
        access_log   logs/test;

        location / {
            echo "Nginx response";
            proxy_pass_request_headers on;
            default_type application/json;

            echo_read_request_body;
            add_header X-Body $request_body;
            return 200;
        }
     }
}
Run Code Online (Sandbox Code Playgroud)

以下 curl 请求需要标头 X-Body。但是找不到。

curl -vk "localhost:65311" -d '{"key":"value"}' -H "Content-Type: application/json"
* Rebuilt URL to: localhost:65311/
*   Trying ::1...
* …
Run Code Online (Sandbox Code Playgroud)

nginx nginx-location nginx-config

1
推荐指数
1
解决办法
4923
查看次数

NGINX 配置不起作用

我正在尝试在 Digital Ocean 上使用 nginx 设置 nodejs 站点,但它似乎不起作用。IP:端口很好,我指向本地主机的 127.0.0.1。但是在重新启动 ngnix 后,我得到了默认值。

这是我的配置。我希望有人能够看到我在这里做错了什么。

server {
    listen 80;
    server_name mydomain.me;

    location / {
        proxy_pass http://0.0.0.0:3000/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
Run Code Online (Sandbox Code Playgroud)

nginx nginx-location

0
推荐指数
1
解决办法
3054
查看次数

使用Django服务受保护的媒体文件

我希望Django仅为登录用户提供一些媒体文件(例如,用户上传的文件)。由于我的网站流量很少,我想我会保持简单,不要django-sendfile告诉Nginx什么时候提供文件。相反,我将让Django / Gunicorn完成这项工作。在我看来,这似乎要简单得多,对于人流量少的网站,这可能更安全。

但是,组织文件存储位置的最佳方法是什么?媒体文件都存储在下面MEDIA_ROOT,该目录由Nginx在生产中提供。如果我将文件上传到,MEDIA_ROOT/protected/我必须告诉Nginx不要在子目录中提供文件protected

但这是个好主意吗?对我来说,首先允许Nginx访问/media/然后保护子目录似乎有点冒险/media/protected/。不使用的子目录MEDIA_ROOT存储受保护的文件会更好吗?

但是,如果我在模型中尝试类似以下操作:

upload_to='../protected/documents/%Y/%m/'
Run Code Online (Sandbox Code Playgroud)

Django抱怨:

SuspiciousFileOperation at /admin/core/document/add/
The joined path (/home/me/projects/project/protected/documents/2016/09/test.file) is located outside of the base path component (/home/me/projects/project/media)
Run Code Online (Sandbox Code Playgroud)

因此,我认为“离开”这不是一个好习惯MEDIA_ROOT

存储和提供受保护的媒体文件的最佳解决方案是什么?

python django nginx python-3.x nginx-location

0
推荐指数
2
解决办法
4410
查看次数

找不到NGINX命令

NGINX是使用debian 9服务器上的最新稳定版本从源代码构建的。找不到sudo nginx命令。NGINX安装位于/ usr / local / nginx中。如何配置服务器以遵循标准的sudo nginx [command]规则?我已经尝试添加PATH = / usr / sbin /:$ PATH,因为NGINX不在sbin中,因此无法正常工作。谢谢

nginx nginx-location

0
推荐指数
1
解决办法
9543
查看次数

Nginx使用返回301重定向

我需要从URL进行永久重定向:

https://SiteName.com/shop/forklift-tires/XXX/
to
https://SiteName.com/shop/tires/forklift-tires/XXX/
Run Code Online (Sandbox Code Playgroud)

要么

https://SiteName.com/shop/forklift-tires/YYY/
to
https://SiteName.com/shop/tires/forklift-tires/YYY/
Run Code Online (Sandbox Code Playgroud)

我该如何使用下面的结构呢?

location *something* {
        return 301 *something*;
}
Run Code Online (Sandbox Code Playgroud)

从文章“陷阱和常见错误”中我了解到,最好使用return而不是rewrite

nginx nginx-location

0
推荐指数
1
解决办法
4796
查看次数