【发布时间】:2017-01-13 02:53:28
【问题描述】:
标题有点误导,但我想不出更好的。
我在 CloudFront 后面托管一个 nginx 服务器。可以通过 origin.website.com 访问 nginx 服务器,这是 CloudFront 的来源。 CloudFront 分发版托管在 website.com。
有没有办法让它在每次重定向时重定向到website.com/$uri 而不是origin.website.com/$uri?
我正在尝试涵盖我的所有基础,但我确实有一个特定的问题:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name origin.website.com website.com;
add_header X-server-choice "default";
add_header X-heard-uri "$uri";
root /var/www;
client_max_body_size 200M;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://localhost:8080;
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;
}
location /blog {
alias /var/www/blog;
index index.php;
try_files $uri $uri/ @site_rewrite;
}
location @site_rewrite {
rewrite ^/blog/(.*)$ /blog/index.php?$1;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
每当我转到 website.com/blog 时,它都会重定向到 origin.website.com/blog/。它似乎正在通过location /blog 并在try_files $uri $uri/ @site_rewrite 中重定向而不通过site_rewrite。
有什么想法吗?谢谢!
【问题讨论】:
-
是
website.comClodFront 的分发 CNAME 吗? -
@DmitryMiksIr 是的。大多数时候它都有效。只有在 website.com/blog 上才会搞砸
-
好吧,我认为这个重定向是由你的 php 博客生成的。
-
@DmitryMiksIr 哦,这真的很聪明,我没想到。谢谢!
标签: nginx