nginx 重定向到索引页面

问题描述 投票:0回答:2

我正在努力实现从非索引页面到我的索引页面的自动 nginx 重定向,/admin 除外

例如,example.com/test 应重定向到 example.com,但 example.com/admin 不应重定向到 example.com

这是我当前的nginx配置文件:

upstream app_server {
    server unix:/tmp/mysite.sock;
}

proxy_cache_path /var/www/example.com/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; 

server {
    listen 80;
    server_name www.example.com example.com;

    # redirects both www and non-www to https
    return 301 https://www.example.com$request_uri;
    
}

server {
    listen 443;
    server_name example.com;
    return 301 https://www.example.com$request_uri;
    }

server {

    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;

    server_name  www.example.com;
    
    ssl_certificate     /etc/letsencrypt/live/www.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;

    charset     utf-8;

    client_max_body_size 75M;

    location /media  {
        alias /var/www/example.com/media;
    }

    location /static {
        alias /var/www/example.com/static;
    }

    location / {
        proxy_cache my_cache;
        include proxy_params;
        proxy_pass http://app_server;
        proxy_ssl_server_name on;
    }
}

我尝试在我的

try_files
块中添加
location /
语句以及其他内容,但似乎都不起作用。我是不是错过了什么?

nginx proxy reverse-proxy gunicorn
2个回答
2
投票

您尝试将

proxy_pass
try_files
混合使用,它不会在同一个
location
块中工作。您可以改用命名位置,并使用否定正则表达式断言将任何不以
/admin
开头的 URI 重写为根 URI:

location / {
    try_files $uri @app;
}
location @app {
    rewrite ^(?!/admin) / break;
    proxy_cache my_cache;
    include proxy_params;
    proxy_pass http://app_server;
}

您不需要单独的

location /media { ... }
location /static { ... }
块,因为正如 nginx 文档 states:

当位置与指令值的最后部分匹配时:

location /images/ {
    alias /data/w3/images/;
}

最好使用

root
指令来代替:

location /images/ {
    root /data/w3;
}

相反,您只需要定义公共服务器根(在任何

location
块之外):

root /var/www/example.com;

您也不需要使用

proxy_ssl_server_name
指令,因为您没有使用 HTTPS 协议将请求代理到上游。


0
投票

代理管理索引页面索引页面index.com

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.