django - 最后带有点的请求会给出错误的请求 400
问题描述
如果我访问,这是我的配置
https://www.example.com.
最后的点不起作用
# the upstream component nginx needs to connect to
upstream django {
server unix:///tmp/example.sock; # for a file socket
}
# Redirect
server {
listen 80;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example.key;
rewrite ^(.*) $scheme://www.example.com$1 permanent;
}
# SSL Request
server {
listen 443;
server_name www.example.com;
root /var/www/example;
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
ssl on;
ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example.key;
ssl_protocols TLSv1.2 TLSv1.1;
# Django media
location /uploads {
alias /var/www/example/uploads; # your Django project's media files - amend as required
expires 7d;
}
location /static {
alias /var/www/example/static; # your Django project's static files - amend as required
expires 7d;
}
location /favicon.ico {
alias /var/www/example/static/img/favicon.ico; # your Django project's static files - amend as required
}
location /robots.txt {
alias /var/www/example/robots.txt; # robots.txt
}
location /ntat {
uwsgi_pass django;
include uwsgi_params;
}
location / {
rewrite ^(.*) http//www.example.com$1;
}
}
# Normal Request
server {
# the port your site will be served on
listen 80;
# the domain name it will serve for
server_name www.example.com
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
location /ntat {
rewrite ^(.*) https://www.example.com$1;
}
# Django media
location /uploads {
alias /var/www/example/uploads; # your Django project's media files - amend as required
expires 7d;
}
location /ntat {
rewrite ^(.*) https://www.example.com$1;
}
# Django media
location /uploads {
alias /var/www/exam/uploads; # your Django project's media files - amend as required
expires 7d;
}
location /static {
alias /var/www/example/static; # your Django project's static files - amend as required
expires 7d;
}
location /favicon.ico {
alias /var/www/example/static/img/favicon.ico; # your Django project's static files - amend as required
}
location /robots.txt {
alias /var/www/example/robots.txt; # robots.txt
}
location /timepass {
alias /var/www/timepass; # Snake Game
}
# Finally, send all non-media requests to the Django server.
location / {
rewrite ^(.*) https://www.example.com$1;
uwsgi_pass django;
include uwsgi_params;
uwsgi_read_timeout 180;
}
}
解决方案
default_server
根据需要确保- 不要
rewrite
在可以简单的地方使用return
。 - 始终指定以确保s
server_name
之间没有不同的优先级server
- 备注
http//www.example.com$1;
(缺失:
)
NGINX的服务器名称与 不同www.example.com.
,但您没有专门侦听点分域的服务器名称,因此最好使用默认服务器来标记确保正确匹配的块。www.example.com
server
server
# the upstream component nginx needs to connect to
upstream django {
server unix:///tmp/example.sock; # for a file socket
}
# Redirect for example.com -> www.example.com (both ports)
server {
listen 80;
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example.key;
return 301 $scheme://www.example.com$request_uri permanent;
}
# SSL Request
server {
listen 443 default_server;
server_name www.example.com;
root /var/www/example;
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
ssl on;
ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example.key;
ssl_protocols TLSv1.2 TLSv1.1;
# Django media
location /uploads {
alias /var/www/example/uploads; # your Django project's media files - amend as required
expires 7d;
}
location /static {
alias /var/www/example/static; # your Django project's static files - amend as required
expires 7d;
}
location /favicon.ico {
alias /var/www/example/static/img/favicon.ico; # your Django project's static files - amend as required
}
location /robots.txt {
alias /var/www/example/robots.txt; # robots.txt
}
location /ntat {
uwsgi_pass django;
include uwsgi_params;
}
location / {
rewrite ^(.*) http//www.example.com$1;
}
}
# Normal Request
server {
# the port your site will be served on
listen 80 default_server;
# the domain name it will serve for
server_name www.example.com
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
location /ntat {
rewrite ^(.*) https://www.example.com$1;
}
# Django media
location /uploads {
alias /var/www/example/uploads; # your Django project's media files - amend as required
expires 7d;
}
location /ntat {
rewrite ^(.*) https://www.example.com$1;
}
# Django media
location /uploads {
alias /var/www/exam/uploads; # your Django project's media files - amend as required
expires 7d;
}
location /static {
alias /var/www/example/static; # your Django project's static files - amend as required
expires 7d;
}
location /favicon.ico {
alias /var/www/example/static/img/favicon.ico; # your Django project's static files - amend as required
}
location /robots.txt {
alias /var/www/example/robots.txt; # robots.txt
}
location /timepass {
alias /var/www/timepass; # Snake Game
}
# Finally, send all non-media requests to the Django server.
location / {
rewrite ^(.*) https://www.example.com$1;
uwsgi_pass django;
include uwsgi_params;
uwsgi_read_timeout 180;
}
}
推荐阅读
- r - 重复唯一的列名
- python - 从 laravel 的 Flask REST 服务中获取数据
- r - 添加执行 SQL 过程的代码时无法显示地图
- database-normalization - 如果您有一个具有大特征(100+)的数据对象,是通过添加列还是以行格式存储来扩展此数据更好?
- python - 使用 pyodbc 检索 SQL Server 数据返回意外的数据值
- json - 逻辑应用程序:如何在 JSON 变量中添加根节点?
- python - AttributeError:模块“pygame.font”没有属性“Sysfont”,
- node.js - getParametersByPath 页面大小
- sql-server - 配置链接服务器时提供程序字符串是什么
- javascript - 根据键从对象创建一个值数组