2016-08-09 5 views
0

すべてのトラフィックを1つの.phpファイルに渡したいのですが、これを試しましたが動作しません。私はここでnginx 1.10.0すべてを1つの場所に渡してください。

を使用していnginx -Vの出力です:

nginxのバージョン:nginxの/ 1.10.0(Ubuntuの) のOpenSSL 1.0.2g-FIPSで構築された2016年3月1日 TLS SNIサポートが を有効に--with-cc-opt = '-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror =フォーマットセキュリティ-Window -D_FORTIFY_SOURCE = 2' --with-ld-opt = ' -wl、-Bsymbolic-functions -fPIE -pie -Wl、-z、relro -Wl、-z、now --prefix =/usr/share/nginx --conf-path =/etc/nginx/nginx.conf --http-log-path =/var/log/nginx/access.log --error-log-path =/var/log/nginx/error.log - ロックパス=/var/lock/nginx.lock --pid-path =/run/nginx.pid - -http-client-body-temp-path =/var/lib/nginx/body -http-fastcgi-temp-path =/var/lib/nginx/fastcgi -http-proxy-temp-path =/var// var/lib/nginx/scsi -http-uwsgi-temp-path =/var/lib/nginx/uwsgi --with-debug -with- pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module - with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_secure_link_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module - メールと一緒に--with-mail_ssl_module --with-stream --with-stream_ssl_module --with-threads --add-module =/build/nginx-wAi2qr/nginx-1.10.0/debian/modules/headers-more- nginx-module/nginx-auth-pam -/bin/nginx-wAi2qr/nginx-1.10.0/debian/modules/nginx-auth-pam - add-module =/build/nginx-wAi2qr/nginx-1.10.0/debian/modules/nginx-cache-purge --add-module =/build/nginx-wAi2qr/nginx-1.10.0/debian/modules/nginx -dav-ext-module -add-module =/build/nginx-wAi2qr/nginx-1.10.0/debian/modules/nginx-development-kit --add-module =/build/nginx-wAi2qr/nginx-1.10 Debian/modules/nginx-echo -add-module =/build/nginx-wAi2qr/nginx-1.10.0/debian/modules/ngx-fancyindex --add-module =/build/nginx-wAi2qr/nginx/debian/modules/nginx-http-push --add-module =/build/nginx-wAi2qr/nginx-1.10.0/debian/modules/nginx-lua --add-module =/build/nginx -wAi2qr/nginx-1.10.0/debian/modules/nginx-upload-progress -add-module =/build/nginx-wAi2qr/nginx-1.10.0/debian/modules/nginx-upstream-fair -add-モジュール= /ビルド/ nginxの-wAi2qr/nginxの-1.10.0/Debianの/モジュール/ ngx_http_substitutions_filter_module

server { 
    listen 80 default_server; 

    server_name _; 

    location/{ 

     include /etc/nginx/snippets/fastcgi-php.conf; 

     fastcgi_param SCRIPT_FILENAME /location/to/php/cache.php;  
     fastcgi_pass unix:/run/php/php7.0-fpm.sock; 

    } 


    # Set maximum expire to all static files 

    location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { 
     access_log off; 
     log_not_found off; 
     expires max; 
    } 

} # server 
+0

正確に達成すると思われるものは何ですか?すべてのリクエスト(静的ファイルの場合でも)の実行フローをcache.phpに渡しますか?あなたのcache.phpには何がありますか? nginxのログには何がありますか?どのようなエラーがありますか? – oakymax

答えて

0

設定を以下試してみてください。

server { 
    listen 80 default_server; 

    server_name _; 

    root /location/to/php; 
    index cache.php; 

    location/{ 
     rewrite ^/(.*)$ /cache.php?requestedPath=$1 break; 
     include /etc/nginx/snippets/fastcgi-php.conf; 
     fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
    } 


    # Set maximum expire to all static files 

    location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|t gz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { 
     access_log off; 
     log_not_found off; 
     expires max; 
    } 

} # server 

次に、あなたがあなたのcache.phpでGET用のparamsからrequestedPathを使用することができます。

しかし、この設定では、静的ファイルの実行フローがPHPにリダイレクトされません。 cache.phpで画像やその他の静的ファイルを処理する場合は、最初の画像と同じ行を2番目の画像に追加することをお勧めします。location

関連する問題