首頁  >  問答  >  主體

nginx 下如何在訪問 url.com 時跳到 url.com:9000(類似 301 跳那種)

期望結果:

訪問http://url.com 自動將網址跳到http://url.com:9000,類似301 跳轉的那種,網址列也跟著變。

由於 url.com 這個網址是不存在的,所以本地寫了 host 指向 IP

在 nginx 裡寫瞭如下內容:

server {
    listen 80;
    server_name url.com;
    location / {
        proxy_pass http://url.com:9000;
    }
}

但是測試 nginx 設定檔時提示:

$ sudo nginx -t
nginx: [emerg] host not found in upstream "seafile.sfdev.com" in /etc/nginx/sites-enabled/seafile.conf:5
nginx: configuration file /etc/nginx/nginx.conf test failed
给我你的怀抱给我你的怀抱2713 天前590

全部回覆(4)我來回復

  • 我想大声告诉你

    我想大声告诉你2017-05-16 17:18:59

        if ($host ~* url.com) {
            rewrite ^/(.*)$ http://url.com:9000/ permanent;
        }

    或直接選用:

    rewrite ^/(.*)$ http://url.com:9000/ permanent;

    如果是直接跳轉,不需要添加location字段,直接:

    server {
        listen 80;
        server_name url.com;
        rewrite ^/(.*)$ http://url.com:9000/ permanent;
    }

    而你設定檔中的:proxy_pass是將請求轉送到代理伺服器的,詳情請看這裡:
    http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

    回覆
    0
  • 黄舟

    黄舟2017-05-16 17:18:59

    雷雷

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 17:18:59

    試試 rewrite ^ url redirect

    回覆
    0
  • 大家讲道理

    大家讲道理2017-05-16 17:18:59

    這你不用代理,重寫url就好 rewrite ^/(.*)$ http://url.com:9000/$1 permanent;

    回覆
    0
  • 取消回覆