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

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

1
nginxログのSSLエラー
nginxエラーログでこのログエントリを取得しています: 2016/03/19 09:46:33 [crit] 14355#14355: *7761 SSL_shutdown() failed (SSL: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init) while SSL handshaking, client: 178.63.105.85, server: 0.0.0.0:443 どういう意味かわかりません。私はグーグルしようとしましたが、成功しませんでした。

1
ChromeはMP4ビデオ(〜34MB)のダウンロード中に要求が多すぎます(〜22000)
私たちのサイトではいくつかのビデオファイル(mp4)をホストしています。 Google Chromeではすべてのファイルの読み込みが非常に遅いため、FFではすべて問題ありません。 サイズが34MBのファイルのダウンロードをテストしました(直接リンクでファイルを開きました)。結果は次のとおりです。 Chromeは〜22000 (!)のリクエストを行い、982MBが転送されました。 Firefoxは5つのリクエストしか行いませんでした。 サーバーとして、デフォルトの(ビデオファイルの配信に関連する)設定でnginxを使用します。 ここでは、インタラクション(最初の5つのリクエスト)がChromeとサーバーの間で行われます。のみRange、Content-Length、Content-Rangeヘッダが含まれています。 (<-Chromeによって送信されるヘッダー、<-サーバーによって送信されるヘッダー): > Initial request for file, usual GET < Content-Length:35690389 < Content-Type:video/mp4 Then a bunch of similar requests, on which the server responded with 206 status code: --- > Range:bytes=0- < Content-Length:35690389 < Content-Range:bytes 0-35690388/35690389 --- > Range:bytes=29100305- < Content-Length:6590084 < …

3
NGINXが非常に非効率的に大きなmp4ファイルを提供する
私は現在、Centos 6.6 OSでnginx / 1.0.15を実行しています。サーバーには次の仕様があります。 Intel(R)Atom(TM)CPU C2750 @ 2.40GHz(8コア) 32GB RAM 5 x 6000 GB 7200 RPM(RAID 10) 問題 サーバーは1ギガビット/秒の接続を備えていますが、400〜500メガビット/秒の後に最高の状態になり、ボトルネックになります。約100接続でサービスが低下し始めます。サーバーとの速度は劇的に低下します(50%の帯域幅がまだ利用可能であるにもかかわらず)。 NGINXサーバーは、静的な.mp4ファイルを提供するためのものです。各ファイルは通常400〜1200 MB(平均は700 MB) 私は多くの設定を試してみましたが、それらすべてについて同じ結果が得られました。非常にイライラしています。 サーバーの負荷も0.3を超えることはありません。 私の構成に露骨に間違っている、または見当違いの何かがありますか?何かが役立つかもしれません。 構成 /etc/nginx/nginx.conf user nginx; worker_processes 9; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 51200; use epoll; } worker_rlimit_nofile 600000; http { include /etc/nginx/mime.types; default_type …


2
nginx try_filesがSSLターミネーションロードバランサーの背後にある場合に間違ったスキームを使用してリダイレクトする(haproxy)
SSL終了を行うロードバランサーの背後でバックエンドとして実行されているnginx 1.6.2サーバーがあります。バックエンドサーバーへのすべての通信はHTTP経由で行われます。 何が起こっているかの図: /--http---> frontend:80 --\ client --+ +--http---> backend:8000 \--https--> frontend:443 --/ LOAD BALANCER BACKENDS テストのために、私は現時点で1つのバックエンドしか持っていません。ロードバランサーはHAProxy 1.5を実行します。 バックエンドのnginx構成のブロックにかなり典型的なtry_filesディレクティブがありますserver: server { server_name frontend; ... try_files $uri $uri/ =404; ... } 現在、デフォルトで、末尾にスラッシュがないディレクトリにアクセスすると、たとえばhttps://frontend/somedir、nginxはHTTP 301リダイレクトをのような絶対URLに送信しようとしますhttp://frontend:8000/somedir/。 nginxに8000のポート番号を省略させるには、を使用しport_in_redirect offます。 ただしhttp://、nginxが生成しているリダイレクトの最初にスキームを修正することはできません。私がnginxにできる最高のことは、SSLを効果的に取り除くことからhttps://frontend/somedirへのリダイレクトhttp://frontend/somedir/です! ロードバランサーはX-Forwarded-Protoヘッダーを送信していますが、nginxがリダイレクトを作成するときにそれを参照する方法がありません。実際には、2012年の回答でnginxは完全にこれを行うことはできません。解決策はロードバランサーをnginxに置き換えることです。これは、スタックの大幅な変更を保証するのに些細なことです。 2012年以降、ここで何か変化はありますか?これらのリダイレクトをHAProxyレベルで書き直したくありません。Webアプリケーションからの実際の意図的なHTTPSからHTTPへのリダイレクトは、Location:応答ヘッダーのスキームを常に同じに書き換えると、「re-HTTPSed」になる可能性があります。リクエストが行われた。 編集: 以下は、nginxが絶対Location:URLを生成することを示す最小化された構成です。書き換えはないことに注意してください。 user nobody nobody; worker_processes auto; worker_rlimit_nofile 4096; error_log /var/log/nginx/error.log warn; pid …
8 nginx  haproxy 

1
グループを無効にしている間に特定のSSL暗号を有効にする方法は?
Windows XPでIE8をサポートするために、nginx SSL環境でSSL暗号EDH-DSS-DES-CBC3-SHA(別名TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA)を有効にしたいと思います。 nginxの基本SSL暗号は次のとおりです。 ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK EDH-DSS-DES-CBC3-SHAで無効になってい!DESます。私は(間の無効ルールの前でその暗号を入れてみましたんDHE-RSA-AES256-SHAや!aNULLけど(非常に最後の引数として))と後のどちらも働きました。 他の暗号をEDH-DSS-DES-CBC3-SHAすべて有効にしDESたり手動で無効にしたりせずに暗号を有効にするにはどうすればよいDESですか? バージョン情報:nginx 1.7.8、OpenSSL 1.0.1e
8 nginx  openssl  ssl 

2
nginx構成で末尾のスラッシュを使用する
location /product { proxy_pass http://10.0.0.25:8080; } 製品フォルダの最初の場所の説明を使用する場合、使用する必要http://mysdomain.com/product/がありhttp://mysdomain.com/product、ブラウザから使用できません 。つまり、URLの末尾をスラッシュにする必要があります。2つの条件で製品フォルダにアクセスしたい。 これには違いがありますか? location /product/ { proxy_pass http://10.0.0.25:8080; }
8 nginx  proxy 

2
Nginx + php-fpm-各php-fpmは実行時に70-100%cpuを処理します
次の状況が発生しています。 私たちは8コア、8 GBのRAM、2.6 GHzのlinodeを使用しています-nginx + php-fpmを使用しています-CPU使用率の非常に高いグラフを取得しています(これは、このような悪いVPSネイバーになりたくない)... 一度に約100人未満のユーザーがサイトにいるため、この状況も非常に厄介であり、CPU使用率が非常に高くなっています。 私たちは、ワードプレスやdrupalなどのよく知られ、よく文書化され、巧妙に細工された他のフレームワークではなく、非常に未知の、おそらくCPUを集中的に使用するphp指向の恐ろしいフレームワークを使用しています。キャッシングを処理する)nginx + php_fpmプラットフォーム上のphp。 したがって、実行中のphp-fpmプロセスは約6つあり、個別に大量(30以上、多くの場合99%に近い)のCPUを消費します。CPUの使用量を抑える方法については、私にはまったくわかりません。 。これらのスパイクが常に発生しているため、どのphpスクリプトがこれらのスパイクを引き起こしているのかわかりません。通常は1つまたは2つしか実行されていません。ただし、6つすべて実行すると、8つすべてのCPUが最大化されます。 私のpool.d / www.confファイルには次の設定があります。 pm = dynamic pm.max_children = 10 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 6 私がそれを解釈している方法で、私たちのメモリは実際に素晴らしいです(使用されている472/7000 + mb、スワッピングなしなど)、さらに多くのプロセスを処理し、取得するために待機している行を分解できるため処理済み-しかし、残念ながら、実行中の各プロセスはCPUで非常に負荷が高いため、最終的にCPUが屋根を通り抜けてしまうため、十分なプロセスを処理できません。 質問 - プロセスphp-fpm cpuの使用を減らすために一体何ができるので、php-fpmのそのプールconfファイルの設定を増やすことができます -さらに、/ var / log / php5 -fpm.log子供たちを増やし、最小/最大/開始サーバーを調整/増加するように叫んでいます。しかし、そうすると、前述のように負荷平均が狂ってしまいます。必ずしもキャッシュを使用せずにこれを行うにはどうすればよいですか? 私の考えは?私はcpulimitを使用して、割り当てられた量以上のCPUを使用するプロセスがないことを確認しました。または、そうすることで、いくつかのプロセスを実行する能力を高めることができます-2つのプールを実行することも考えました-1つは前向きのWebサイト(顧客が体験するもの)用で、もう1つはバックエンド(時間の前向きのサイトに影響を与える)用ですを消費するレポートが実行されています)。 私はこのトピックについて数日間研究、グーグルなどを費やしてきました-そして、すべての人の状況は彼らのシステムに非常に独特であるので難しいです-問題は、そのような特定の前代未聞の、おそらく不十分に書かれた-フレームワーク-が作っていることです解決策を見つけるのは難しい。まだこのフレームワークをスクラップすることもできません。何らかの解決策を見つけなければなりません。 更新:私はphpセッションを保存するためにmemcacheを実装しました-フレームワークはユーザーセッションに大きく依存しており、システムの性質上、従業員は一度に複数のタブを使用することが多いので、各セッションをチェックして能力/ユーザーデータなどを確認します...したがって、これによってパフォーマンスがある程度向上することを期待しています-必要に応じてコメントを歓迎します-ボリュームのピークタイムが増えたときに明日どうなるかを確認します。

2
ロケーションブロックごとのNginx client_max_body_size(php frontcontrollerパターンを使用)
この問題の解決策を探しています。その質問の設定が機能しない理由を理解していますが、私はそれを機能させることができる解決策を見つけようとします。 アイデアは、特定のURLでのみ大きなファイルのアップロードを許可することです。私はlocationこれにブロックを使用できますが、問題は次のとおりです:私はphpフロントコントローラーのパターンを持っています: location ~ \.php { # ... fastcgi_pass unix:/tmp/php5-fpm.sock; } 私の合計構成は次のようになります: # ... http { # ... client_max_body_size 512K; server { server_name example.com; root /var/www/example.com/public; location / { try_files $uri /index.php?$query_string; } location /admin/upload { client_max_body_size 256M; } location ~ \.php { # ... fastcgi_pass unix:/tmp/php5-fpm.sock; } } } …
8 nginx  upload 

1
Nginxを停止してポート80をリッスンする方法は?
私はnginxがポート80をリッスンするのをやめたいと思っています。バグのある人しか見つかりませんでしたが、故意にそれを行うことについてのドキュメントはありません。私はそれを無効にすることはできません、そして私も読みます: #listen 80; ## listen for ipv4; this line is default and implied 英語は私の母国語ではありませんが、「暗黙的」はこれを宣言する必要がないことを意味することを理解しています。そのため、解説ではありますが、サーバーは引き続き80をリッスンします。これを無効にするにはどうすればよいですか?ありがとうございました。
8 nginx  http 

1
Nginxのproxy_intercept_errorsディレクティブが正しく機能するために書き換えが必要なのはなぜですか?
以下は、Nginxサーバー構成のサンプルです。「魔法のタリスマン」ロケーションブロックがない場合、プロキシ化されたエラーコンテンツは、カスタマイズされたエラーページではなく、Nginx 404ページを提供します。 proxy_intercept_errorsディレクティブを削除すると、適切なhttpエラーコードヘッダーを含む適切なプロキシエラーページが提供されます。 プロキシされていないエラーページは、魔法のお守りの存在に関係なく適切にレンダリングされます。 正確には何が起こっているのかについてのアイデアはありますか? server { server_name mydomain.com ""; listen 80; root /var/www; error_page 400 401 402 403 404 500 501 502 503 504 /admin/error_page.htm; proxy_intercept_errors on; location /proxy/ { proxy_read_timeout 60s; proxy_set_header Host $host; proxy_pass http://myservers; } location /test404/ { return 404; } location /admin/ { # this …

3
Nginxサーバーの応答を遅くする
サイトにスパマーがいる。私は 'deny'を使用して彼のIPをブロックすることができましたが、その後彼は彼のIPを変更するだけなので、猫とマウスを彼と一緒にプレイし続ける必要があります。 代わりに、nginxが彼のIPにもっとゆっくりと応答するように設定する方法があるかどうか知りたいです。 そうすれば、サイトが正しく機能していないと判断して、私を一人にしてしまうかもしれません。 ありがとう
8 nginx 

1
nginxのtry_filesの書き換え
私は非常に単純な書き換えを以前のnginxバージョンから現在のバージョンに以下のように変換しようとしています: location / { if ( !-f $request_filename ) { rewrite ^/([a-z]*)$ /index.php?action=$1; rewrite ^/([a-z]*)/(.*)$ /index.php?action=$1&item=$2; } } これは私がどれだけ進んだかです。インデックスページが表示されますが、上記のように書き換える必要があるページは代わりに404をスローします。 server { listen 80 default; root /var/www; index index.php; server_name _; location / { try_files $uri $uri/ /index.php?action=$uri&item=$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } } …
8 nginx 

1
ユーザーごとに動的にnginxのアップロード/ダウンロード速度を制限するにはどうすればよいですか?
特定の場所のレート制限を使用して速度を制限することが可能です。 しかし、どうすれば動的に実行できますか? 有料ユーザーと非有料ユーザーがいて、有料ユーザーにより高い帯域幅を提供したいとします。 データベースを動的にチェックインし、この特定のユーザーグループに一定の速度を許可する必要があります。 nginxモジュールを念頭に置いていますか?

1
NginxはURIで指定されたパスを追加します
私はphpMyAdminを設定しようとしているので、フロー位置をNginxに設定しましたが、「pma」がルートディレクトリに付加されています。 2012/08/14 13:59:49 [error] 10151#0: *2 "/usr/share/phpMyAdmin/pma/index.php" is not found (2: No such file or directory), client: 192.168.1.2, server: domain.com, request: "GET /pma/ HTTP/1.1", host: "192.168.1.24" 構成: location ^~ /pma { root /usr/share/phpMyAdmin; location ~ \.php$ { root /usr/share/phpMyAdmin; fastcgi_pass unix:/var/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param HTTPS …
8 nginx 

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