-1

私は非常に単純なことをしようとしています: Nginx found *.php => Redirect to Apache Nginx found *.jpg => Try in static, if not exist => Apache にリダイレクト

しかし、コードを複製せずに解決策を見つけることはできません:

    location ~* \.(css|js|png|jpeg|gif)$ {
            access_log off;
            expires 30d;
            try_files $uri @proxy;
    }

    location / {
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:8080;
    }

    location @proxy {
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:8080;
    }

in location / to use @proxy location と言いたいのですが、これを行う方法が見つかりません。何か案が?

ありがとう。

コルコ

4

1 に答える 1

1

重複の少ないコードにするために採用した解決策の1つは、すべてのプロキシ設定をサーバーブロック内(またはこの例のhttp://wiki.nginx.org/FullExampleproxy_passのように補助ファイル内)に配置し、その場所にのみ残すことです。 。IPも1か所に配置するには、アップストリーム(デフォルトのモジュール)を使用できます: http ://wiki.nginx.org/HttpUpstreamModule

proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

upstream _backend {
    server 127.0.0.1:8080;
}

location ~* \.(css|js|png|jpeg|gif)$ {
    access_log off;
    expires 30d;
    try_files $uri @proxy;
}

location / {
    proxy_pass http://backend;
}

location @proxy {
    proxy_pass http://backend;
}
于 2012-12-02T23:35:53.447 に答える