我尝试将所有类似/<uuid4>
的HTTP请求定向到localhost上运行的特定HTTP服务器。下面是我的nginx.conf中的相关location
行:
# nginx.conf
upstream django {
server unix:///app/django.sock; # for a file socket
}
server {
access_log /var/log/access.log;
error_log /var/log/error.log;
listen 80;
server_name 127.0.0.1;
charset utf-8;
client_max_body_size 75M;
# Django media
location /media {
alias /app/media;
}
location /static {
alias /app/static;
}
location ~* "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$" { # matches UUIDv4
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass localhost:8000;
}
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include /app/conf/uwsgi_params;
}
}
启动nginx时,出现以下错误:nginx: [emerg] unknown directive "8}-([0-9a-f]" in /etc/nginx/sites-enabled/nginx.conf:30
是什么给出了?
答案 0 :(得分:3)
其实你还有其他错误。我检查了你的服务器块并得到了以下信息:
$ sudo nginx -t
nginx: [emerg] invalid URL prefix in /etc/nginx/sites-enabled/test:23
nginx: configuration file /etc/nginx/nginx.conf test failed
这是关于proxy_pass localhost:8000;
行中缺少协议的错误。将其修复为proxy_pass http://localhost:8000;
后,测试通过。
您可能正在查看旧的(或错误的)错误日志。