[已解决][反向代理]反向代理中的跳转url替换无效

Moehentai2333 2018-6-20 2182

使用的是网站管理的反代环境,跳转url替换功能无效.
https://xxx.xxx/a.php-->https://xxx.xxx.xxx
是不是这样布星呀,哭哭惹,部署状态是通过的.:-)
最新回复 (6)
  • 虚竹 2018-6-20
    引用 2
    粘贴下源文配置看看。
  • Moehentai2333 2018-6-20
    引用 3
    本帖最后由 Moehentai2333 于 2018-6-20 14:47 编辑

    proxy_cache_path  /data/xxx/sites/xxx.xxx/proxy_cache levels=1:2 keys_zone=appnode_proxy_cache_zone_of_site_hentaissr.com:5m max_size=1g inactive=24h;
    
    server {
        listen                     80;
        listen                     443 ssl http2;
        server_name                xxx.xxx;
        server_name                www.xxxx.xxx;
        ssl_certificate            /data/xxx/sites/xxx.xxx/ssl/site.crt;
        ssl_certificate_key        /data/xxx/sites/xxx.xxx/ssl/site.key;
        ssl_prefer_server_ciphers  on;
        ssl_ciphers                ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
        ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
        ssl_session_cache          shared:SSL:5m;
        ssl_session_timeout        5m;
    
        if ($http_user_agent ~* (baiduspider|360spider|googlebot|soso|bing|sogou|yahoo|yisouspider|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) {
            return  404;
        }
    
        keepalive_timeout          75s;
        keepalive_requests         100;
        access_log                 /data/xxx/sites/xxx.xxx/log/nginx/access.log;
        error_log                  /data/xxx/sites/xxx.xxx/log/nginx/error.log;
    
        if ($scheme = http) {
            return  301 https://$host$request_uri;
        }
    
        location / {
            add_header                Strict-Transport-Security 'max-age=31536000; includeSubDomains';
            proxy_pass                $scheme://2.3.3.3:$server_port;
            proxy_set_header          Host $host;
            proxy_set_header          X-Real-IP $remote_addr;
            proxy_set_header          X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header          Upgrade $http_upgrade;
            proxy_set_header          Connection $connection_upgrade;
            proxy_redirect            https://xxx.xxx/a.php https://xxx.xxx.xxx;
            client_max_body_size      50m;
            proxy_cache_key           $scheme$host$request_uri;
            proxy_cache               appnode_proxy_cache_zone_of_site_hentaissr.com;
            proxy_cache_valid         200 301 302 24h;
            proxy_cache_valid         any 1m;
            proxy_cache_min_uses      1;
            proxy_cache_methods       GET HEAD;
            proxy_cache_use_stale     error timeout invalid_header updating http_500 http_502 http_503 http_504;
            proxy_cache_revalidate    on;
            proxy_cache_lock          on;
            proxy_cache_lock_timeout  5s;
        }
    }
  • 虚竹 2018-6-20
    引用 4
    看配置是正常的。

    实际在用 curl 测试访问反代前端的 URL 时,跳转到哪去了?
    Quotecurl -v https://前端URL/

  • Moehentai2333 2018-6-20
    引用 5
    Quote虚竹 发表于 2018-6-20 14:49
    看配置是正常的。

    实际在用 curl 测试访问反代前端的 URL 时,跳转到哪去了?


    https://xxx.xxx/a.php-->https://xxx.xxx.xxx
    这是鹅鹅理想状态
    鹅鹅curl https://xxx.xxx/a.php结果就是https://xxx.xxx/a.php
  • 虚竹 2018-6-20
    引用 6
    https://xxx.xxx/a.php 这是前端的访问URL吗?

    URL替换,是对后端网站的跳转做替换,而不是对前端的访问URL做替换。

    比如:
    浏览器 => http://frontend/a.php =>反代=> 后端 http://backend/a.php
    后端 http://backend/a.php 跳转到 http://backend/b.php

    假如没有设置URL跳转替换,那么访问 http://frontend/a.php 就会跳转到 http://backend/b.php。
    如果希望访问 http://frontend/a.php 跳转到 http://frontend/b.php,就需要做反代跳转URL替换:
    把 http://backend/b.php 替换为 http://frontend/b.php。

  • Moehentai2333 2018-6-20
    引用 7
    Quote虚竹 发表于 2018-6-20 14:58
    https://xxx.xxx/a.php 这是前端的访问URL吗?


    这是个内页链接呀...鹅鹅想把这个链接换掉
返回
发新帖