タグ付けされた質問 「nginx」

Nginx( "eNgine x")は、軽量で高性能なHTTPサーバー、リバースプロキシ、TCPストリームプロキシ、メールプロキシで、BSDライクなライセンスの下でリリースされています。

1
nginx構成ファイルの長い行を分割する
ガベージをバックエンドに渡さないために、locationディレクティブに厳密な正規表現があります。次のようになります。 location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/...(more|restrict).ext { # other directives } 80文字で行を折りたいのですが、構成を分割する方法はありますか?以下は構文エラーになりますが、私が探しているものです: location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/"\ "...(more|restrict).ext" { # results in a literal newline (%0A) being accepted location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/ ...(more|restrict).ext" { ドキュメントにヒントを見つけることができませんでした(http://wiki.nginx.org/ConfigNotationもhttp://wiki.nginx.org/HttpCoreModule#locationには折り畳み線に関する記述があります)

3
nginxの大文字と小文字を区別しない書き換え
私はnginxリダイレクトをできるだけきれいにしようとしています。〜*は大文字と小文字を区別しないことを理解していますが、例2でのみ動作させることができます。 例1 rewrite ^/foobar http://www.youtube.com/watch?v=oHg5SJYRHA0 redirect; 例2-これは機能しますが、上記の行ほど効率的ではありません。 if ( $request_filename ~* foobar ) { rewrite ^ http://www.youtube.com/watch?v=oHg5SJYRHA0 redirect; } 例1で大文字と小文字を区別しないリダイレクトを行う方法はありますか? ありがとう。
15 nginx  rewrite 

3
非標準ポートでnginx SSLを実行する方法
これは少なくとも他のいくつかの質問の複製のように見えますが、私はそれらを何度か読んで、まだ何か間違ったことをしています。 以下に、myexample.comのnginx構成ファイルの内容を示します/etc/nginx/sites-available。 server { listen 443 ssl; listen [::]:443 ssl; server_name myexample.com www.myexample.com; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; ssl_certificate /etc/letsencrypt/live/myexample.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/myexample.com/privkey.pem; #Configures the publicly served root directory #Configures the index file to be served root /var/www/myexample.com; index index.html index.htm; } 私がに行くときには、作品https://myexample.comコンテンツが提供され、接続が安全です。そのため、この設定は良いようです。 SSLポートを9443に変更してnginx構成をリロードすると、エラーなしで構成がリロードされますが、https: //myexample.comにアクセスするとブラウザーにエラーが表示されます(このサイトにアクセスできません/myexample.comは拒否されました接続します。ERR_CONNECTION_REFUSED) ここ、ここ、およびここ(特に)で提案とドキュメントを試しましたが、常にERR_CONNECTION_REFUSEDエラーが発生します。 非標準ポートを使用し、そのポートをhttps://myexample.com:9443などの URLに明示的に入力できることに注意してください。しかし、私はそれをしたくありません。ユーザーがmyexample.comを任意のブラウザーに入力し、nginxが安全な接続に自動的にリダイレクトできるようにしたいのです。 繰り返しますが、標準の443 SSLポートを使用しても問題はありません。 編集: debian …
15 nginx  ssl 

3
ユーザーエージェントに基づくNginxリダイレクト
ここに私の現在のnginx confがあります: server { listen 90; server_name www.domain.com www.domain2.com; root /root/app; location / { try_files $uri =404; } location ~ /([-\w]+)/(\w+)/ { proxy_pass bla bla } } それが正常に動作します、両方のwww.domain.comとwww.domain2.com同じコンテンツを提供します。 今、私は追加したいと思います ユーザーがwww.domain.comにアクセスしており、ユーザーエージェントがxxxの場合、www.domain2.comにリダイレクトします 私は多くの方法を検索して試しましたが、どれも機能しません。
15 nginx 

2
Nginxはデータをキャッシュしません
nginxプロキシの背後にREST APIがあります。プロキシは正常に機能しますが、応答をキャッシュできません。どんな助けも大歓迎です: Nginxの構成: worker_processes 10; error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; pid logs/nginx.pid; events { worker_connections 1024; } http { proxy_cache_path /path/to/cache/dir keys_zone=one:60m; proxy_cache_methods GET HEAD POST; upstream backend { server server1 backup; server server2 weight=5; } access_log logs/access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip …
15 nginx  proxy  cache  solr 

1
Nginx-単一のURLをファイルにマップします
単一のURLを単一の静的ファイルにマップする方法を見つけることができません。私は試した: location /feeds/seznam/ { alias /path/to/file/feed.xml; } しかし、これは機能しません(ログでは、index.htmlをパスに追加することがわかります)。
15 nginx 

3
nginx構成で$ uriからロケーションブロックを削除する方法は?
ngix confファイルに書き直しましたが、$ uri変数の一部としてロケーションブロックが含まれているように見えることを除いて、正常に動作します。ロケーションブロックの後にのみパスが必要です。私の現在の構成コードは次のとおりです。 location /cargo { try_files $uri $uri/ /cargo/index.php?_REWRITE_COMMAND=$uri&args; } http://localhost/cargo/testpageリダイレクトのURLの例を使用すると機能しますが、私のphpファイルが受け取る「_REWRITE_COMMAND」パラメーターの値は「/ cargo / testpage」です。ロケーションブロックを取り除き、$ uriとして「testpage」のみを取得する必要があります。 $ uriを分割し、$ 1 $ 2などを使用して新しい変数に割り当てる正規表現構文があると確信していますが、書き換えの一部ではない正規表現を使用して変数の割り当てを行うだけの例は見つかりませんステートメント。私は何時間も探してみましたが、この最後のステップを乗り越えることができないようです。 また、アプリケーションコードでこれを削除することもできますが、nginx confで修正しようとする理由は、Apacheでも実行されるため、互換性のためです。私はそれを行うための本当にハックな方法を見つけたと言うべきですが、ファイルの存在をチェックするための「if」ステートメントが含まれており、ドキュメントは具体的にはそうしないと述べています。
15 nginx 

2
nginx内でHTTPリダイレクトを追跡する方法は?
nginxベースのHTTPプロキシがあり、その内部ですべてのHTTPリダイレクトを処理して、クライアントがリダイレクトチェーンの最後の応答のみを取得するようにします。 基本的なコードは次のようになります。 location /proxy { rewrite ^/proxy/([^/]+) $1 break; proxy_pass http://$uri/; } 次の1レベルのリダイレクトの試みはこれです。 error_page 301 302 307 =200 @redir; ...そして、この名前の場所を持つ: location @redir { proxy_pass $proxy_location; } $ proxy_location変数がないだけで、作成方法を見つけることができませんでした。Location:アップストリームから受信したヘッダーの値が含まれている必要があります。 何かご意見は?
15 nginx 

2
Ubuntu 16.04でDjangoおよびnginxと連動するようにuWSGIを配線する
私は従うことをしようとしていますこのチュートリアルを設定するuWSGIとDjangoとnginxにUbuntu16.04。 このコマンドを実行しようとする最後のステップ(皮肉なことに...)まではすべて正常に動作します。 sudo service uwsgi start 次のエラーで失敗する場合: uwsgi.serviceの開始に失敗しました:ユニットuwsgi.serviceが見つかりません。 他にも同様のエラーが発生するようです: uwsgi.serviceの開始に失敗しました:ユニットuwsgi.serviceのロードに失敗しました:そのようなファイルまたはディレクトリはありません。 この問題はUbuntuのバージョンに関連しているようです。そのチュートリアルは、Ubuntuの14.04を目指しているが、それはそれは新しいバージョンでは動作しませんようですので、バージョン15でUbuntuが切り替わるupstartまでのinitデーモンsystemdのinitデーモン。 systemdnginxとDjangoで動作するようにuWSGIを起動するにはどうすればよいですか?
14 ubuntu  nginx  django  uwsgi  wsgi 

1
「低アドレスビットは意味がない」とはどういう意味ですか?
インターネットからブログのログインページへのアクセスを制限し、イントラネットからのみアクセスできるようにしています。 したがって、私は次の場所を定義しました location ~/ghost/signing { allow 192.168.0.1/24; deny all; } Nginxを再起動すると、次の警告が表示さ192.168.0.1/24れます。/etc/nginx/sites-enabled/site また、イントラネットから場所にアクセスできません。 したがって、allowステートメントは「ロード」されておらず、/ghost/signinページへのすべてのアクセスを拒否することになります。 下位アドレスビットが意味をなさないのはなぜですか。また、ステートメントを意図したとおりに機能させるには、ステートメントをどのように表現すればよいですか 下位アドレスのビットをグーグルで検索しようとしましたが、ロシア語であると推定されるものにしか投稿されず、ロシア語から翻訳する方法がわかりません。
14 nginx 

5
Nginxにアセットを提供する前に数秒間待機するように指示するにはどうすればよいですか?
したがって、私が書いているアプリでAjaxなどをローカルでテストしているとき、sleepステートメントを使用してサーバー側スクリプトに遅延を追加することがよくあります。遅い接続などをシミュレートするのに役立ちます。 Nginx configで同様の遅延動作を直接指定する方法はありますか?それは提供しているフラットなHTMLファイルで動作しますか? ネットワークレベルで同様の遅延シミュレーションを実行できることは承知しています(こちらを参照)
14 nginx 

4
nginx変数が設定されているかどうかをテストします
変数がまだ設定されていない場合は、変数をデフォルト値に設定する必要があります。次の設定は仕事をします: if ($foo ~ "^$") { set $foo default-value; } ただし、ランタイム警告が生成されます。 初期化されていない「foo」変数を使用する 警告を生成せずに、グローバルに警告をオフにせずに変数が設定されているかどうかをテストする方法はありますか? uninitialized_variable_warn off;
14 nginx 

2
nginx:複数のサーバーディレクティブを持つアップストリーム?
私はnginxをプロキシとして使用する2つのアプリケーションをパッケージ化し、それぞれに設定ファイルを配信しようとしています/etc/nginx/conf.d/。 これを1つのファイル(combined.conf)で行うとうまくいきます: upstream backend1 { http://localhost:8989; } upstream backend2 { http://localhost:8990; } server { location /backend1/ { proxy_pass http://backend1; } location /backend2/ { proxy_pass http://backend2; } ただし、2つのファイルに分割すると、リダイレクトの1つが体系的に失敗します。 backend1.conf: upstream backend1 { http://localhost:8989; } server { location /backend1/ { proxy_pass http://backend1; } backend2.conf: upstream backend2 { http://localhost:8990; } server { location …
14 nginx 

3
これはネットワーク帯域幅のボトルネックを証明していますか?
私の内部ABテストは、サーバーが1秒あたり3kヒットで1kの同時実行を処理できることを意味すると誤って想定していました。 現時点での私の理論は、ネットワークがボトルネックであるということです。サーバーは十分な速度で十分なデータを送信できません。 1kの同時実行でのblitz.ioからの外部テストでは、サーバーが1秒あたり180しか返せないため、ページの応答時間が長くなるにつれて、ヒット/秒が180で上限に達することが示されています。 私はnginxから空のファイルを提供し、それをベンチに入れました:それは並行性で1:1にスケーリングします。 IO / memcachedのボトルネック(nginxは通常memcachedからプルします)を排除するために、ファイルシステムからキャッシュされたページの静的バージョンを提供します。 結果は元のテストと非常に似ています。約180 RPSに制限されています。 HTMLページを半分に分割すると、RPSが2倍になるため、ページのサイズによって制限されます。 ローカルサーバーから内部的にApacheBenchを実行すると、フルページとハーフページの両方で、高い転送レートで約4k RPSの一貫した結果が得られます。転送速度:62586.14 [Kバイト/秒]受信 外部サーバーからABにアクセスすると、約180RPSになります-blitz.ioの結果と同じです。 意図的なスロットルではないことをどのように確認できますか? 複数の外部サーバーからベンチマークを実行すると、すべての結果が悪くなり、ベンチマークサーバー/ blitz.ioのダウンロード速度の問題ではなく、MYサーバーのアウトバウンドトラフィックに問題があると思われます。 だから、サーバーが十分な速度でデータを送信できないという結論に戻りました。 私は正しいですか?このデータを解釈する他の方法はありますか?毎秒180ヒットを処理できる複数のサーバーと負荷分散をセットアップするソリューション/最適化ですか? 私はサーバーの最適化にかなり慣れていないので、このデータを解釈する確認をいただければ幸いです。 アウトバウンドトラフィック アウトバウンド帯域幅についての詳細は次のとおりです。ネットワークグラフには、16 Mb / sの最大出力:16メガビット/秒が表示されます。全然聞こえない。 スロットルについての提案のため、私はこれを調べて、linodeのキャップが50 Mbpsであることを発見しました(明らかに、ヒットに近づいていません)。100 Mbpsに上げました。 linodeはトラフィックを制限し、ヒットさえしませんので、これは私のサーバーが実際に最大100mbpsを出力できるはずですが、他の内部ボトルネックによって制限されることを意味しますか?私はこの大規模なネットワークがどのように機能するのか理解していない。文字通り、HDDから読み取れる速度でデータを送信できますか?ネットワークパイプはそれほど大きいですか? 結論として 1:上記に基づいて、LBの背後にあるサーバーごとに正確に180RPSのマルチnginxサーバーセットアップの上にnginxロードバランサーを追加することで、180RPSを確実に上げることができると考えています。 2:linodeに50 / 100mbitの制限があり、それがまったくヒットしない場合は、単一のサーバーセットアップでその制限にヒットするためにできることがあるはずです。ローカルで十分な速さでデータの読み取り/送信ができ、linodeが50mbit / 100mbitのキャップを持つことさえ気にする場合、検出する方法がわからないキャップをヒットできない内部ボトルネックが存在する必要があります。正しい? この質問は今や巨大で曖昧なものであることに気づきましたが、それをどのように凝縮するのかわかりません。私が行った結論については、ご意見をお寄せください。

7
Nginx + php5-fpm =「ファイルが見つかりません」
私はnginx / fpmを使用してサイトをセットアップしている間に壁にぶつかりました。ページに「ファイルが見つかりません」と表示され、nginx error.logに表示されます。 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream 私はnginxとfpmの両方に慣れていないので、そのエラーメッセージは私には何の意味もありません(グーグルマシンさえ助けていない!)。誰もが何が起こっているのかについて光を当てることができますか?
14 nginx  php-fpm  socket 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.