我正在尝试添加一个标头“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) 我正在尝试在 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) 我希望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。
存储和提供受保护的媒体文件的最佳解决方案是什么?
NGINX是使用debian 9服务器上的最新稳定版本从源代码构建的。找不到sudo nginx命令。NGINX安装位于/ usr / local / nginx中。如何配置服务器以遵循标准的sudo nginx [command]规则?我已经尝试添加PATH = / usr / sbin /:$ PATH,因为NGINX不在sbin中,因此无法正常工作。谢谢
我需要从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。