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

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

4
ウェブサーバーは異なる仮想ホストにランダムにサービスを提供します
Ubuntu Trustyでnginxを実行しています。1つのIPアドレスで実行され、https経由で複数のWebサイトにサービスを提供します。 ランダムに、それは作業負荷にわずかに関連しているように見えますが、単一の要求が間違ったvhostで発生することがあります。これにより、サービスの提供が要求さlustrum.thalia.nuれthalia.nu、その逆も同様です。これにより、ユーザーが突然別のWebサイトにアクセスするため、厄介なエラーページが表示されます。を押すとF5、ユーザーは元のターゲットに戻ります。 ブラウザやオペレーティングシステムに関連しているようには見えません。Firefox(Linux、Windows、Mac)、Edge(Windows)、Chrome(Linux、Windows、Android)、Safari(iOS)で発生することが確認されています。 この問題は、システムに負荷がかかるとより頻繁に発生するようであり、何らかの競合状態を示しています。 lustrum.thalia.nu server { server_name lustrum.thalia.nu; listen 443 ssl; ssl on; ssl_certificate /etc/nginx/certs/lustrum.thalia.nu.crt; ssl_certificate_key /etc/nginx/certs/lustrum.thalia.nu.key; add_header Strict-Transport-Security "max-age=63072000; preload"; root /var/www/thalia-lustrum/public_html; location / { index index.php; try_files $uri $uri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$host$uri/ permanent; # Pass all .php …

2
nginx proxy_passは、サーバーがまだアクティブであっても、最終的にGATEWAY_TIMEOUTを返します
nginxが最初にロードされたときに正常に機能するnginxプロキシパススルーを設定しましたが、最終的に(おそらく1日後かどうか?この時点では不明確)、プロキシパススルーである場所は504 GATEWAY_TIMEOUT応答のみを返します。奇妙なことに、私は複数のproxy_passロケーションをセットアップしており、何がダウンし、何がアップし続けるかはランダムです。 nginx設定ファイルは次のとおりです。 server { listen 80; server_name example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /srv/www/frontend/current/; location / { try_files $uri $uri/ /index.html; } # Block all svn access if ($request_uri ~* ^.*\.svn.*$) { return 404; } # Block all git access if ($request_uri ~* ^.*\.git.*$) { return 404; } location …

3
複数のロードバランサーを使用してトラフィックをアプリケーションサーバーにリダイレクトすることはできますか?
ロードバランシングは初めてですが、複数のロードバランサーを使用してトラフィックをアプリケーションサーバーにリダイレクトできるかどうか疑問に思っています。どうすればいいのか分かりません。ドメイン名は、特定のサーバーのIPアドレス(この場合は1つのロードバランサーのIP)と1対1で一致する必要はありませんか?各ロードバランシングサーバーのIPが異なる場合、両方のロードバランサー(または10ロードバランサーまたは50または100)がリクエストをどのように受信できますか?

1
404エラー時のHAProxy URLの書き換え
最初のファイルにファイルがない場合、HAProxyを別のバックエンドに書き換えさせるにはどうすればよいですか?私が必要なのはerrorloc、リダイレクトの代わりに書き換えを行うことです。そのため、クライアントはリダイレクトを認識しません。 NginXを念頭に置いてアプリケーションを開発しました。これは、静的ファイル用のリバースプロキシとWebサーバーの両方の負荷分散でした。アプリケーションは、Cookieに基づくスティッキーセッションを必要とするOpaフレームワークに基づいています-NginXとHAproxyの両方でサポートされています。私たちが問題とするアプリケーション機能は、動的コンテンツ生成です。オンデマンドで画像を生成しますが、生成後はディスクに保存され、確定的なパスで静的にアクセスできます。 問題はNginXで簡単に解決されました-ローカルファイルを読み取って、ファイルが欠落している(まだ生成されていない)場合にのみ、負荷分散されたバックエンドを使用しようとします。 server { server_name wkaliszu.pl; location /thumb { root /path_on_disk/to_cached_content; expires 7d; # try to access already generated content try_files $uri @wkaliszu; } location / { # reverse proxy to the application [...] } location @wkaliszu { # reverse proxy to the application [...] } } サーバーは移行され、負荷分散にHAPproxyを使用します。これは、Webサーバーではなく、この機能をサポートしていません。これで、クライアントがリソースにアクセスしようとするたびに動的なソフトウェア生成が実行されますが、これは非常に遅く、リソースを浪費します。最初の(静的ファイル用の単純なキャッシングWebサーバー)がエラー404で失敗した場合、次のバックエンドを使用できれば問題ありませんが、簡単な方法を見つけることができません。/thumb静的ファイルの読み取りを試み、新しいHTTPヘッダーでHAproxyに再度書き込むNginXへのリダイレクトだけが思い浮かびますが、もっと良いものを見つけたいと思います。
9 nginx  haproxy 


1
PHP5-FPMはどのようにnginxにエラーを送信しますか?
ウェブ上で適切な説明を見つけることができなかったため、php-fpmとnginxでのエラーロギングを少し試しました。ほとんどのガイドは、php5-fpmからnginxにエラーを送りたい場合は変更catch_workers_outputするyes必要があると述べています。しかし、私の実験中に、catch_workers_outputがに設定されていても、nonginxによってエラーが適切に記録されていることがわかりました。 これが私の仮想ホスト設定です: server { server_name domain.com; return 301 http://www.domain.com$request_uri; access_log off; } server { listen 80; listen [::]:80; root /home/websites/domain.com; index index.php index.html index.htm; error_log /home/websites/logs/domain.com/error.log warn; access_log /home/websites/logs/domain.com/access.log; #switch on gzip gzip on; gzip_min_length 1100; gzip_buffers 10 32k; gzip_types text/plain application/x-javascript text/xml text/css; gzip_vary on; location / { try_files …
9 nginx  php-fpm 

1
複数のサーバー間で共有されるNginxキャッシュ
リクエストを処理するためにPHP-FPMでFastCGIを使用するNginxを備えた8つのREST風APIサーバーがあります。現在NginxのFastCGIキャッシング(のようなディレクティブfastcgi_cache_path)を使用しています。つまり、API応答はキャッシュされますが、サーバーごとに個別のキャッシュがあります。 8つのサーバーすべてでキャッシュストレージを共有する良い方法はありますか? Redisを共有ストレージとして使用することを検討しましたが、使用可能なモジュールにはアプリケーションの変更が必要なようです。場合によっては、(HTTPを介して外部APIに)制御外で応答をキャッシュしたい場合があります。理想的には、FastCGIとHTTP応答のNginx組み込みキャッシュのドロップイン代替品が利用可能になるでしょう。
9 nginx  cache 

3
Nginx limit_req設定のバーストの定義は何ですか?
これの違いは何ですか: limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s; limit_req zone=flood nodelay そして: limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s; limit_req zone=flood burst=5 nodelay ドキュメントhttp://wiki.nginx.org/HttpLimitReqModule。
9 nginx 

2
php-fpmがnginxに空の応答を返す
nginxは/etc/nginx/fastcgi_params、ロケーションブロックの標準を使用して、fastcgi経由でphp-fpmに接続しています。 コマンドラインから/.status(php-fpm.ini :: ping.path)に接続するとcgi-fcgi -bind、結果は期待どおりに戻ります(X-Powered-Byセット、応答本文など)。 nginxでリクエストすると、結果は空に戻ります(X-Powered-Byセット、本文の長さまたはコンテンツなし)。nginxは「有効な」応答を受け取ったため、200を返します。 tcpdumpを監視して、パリティへの要求をFCGIヘッダーで分離しました(シェルによって設定されたユーザー関連の環境変数を除いています)。
9 php  nginx  php-fpm  fastcgi 

2
なぜ「proxy_pass_header Server」なのか
私はNGINXを始めたばかりであり、人々が使用するいくつかのサンプル設定で見ました proxy_pass_header Server; 要求を上流のサーバーにプロキシするとき?ここで正確に何をしますか?可能なユースケースは何ですか?
9 nginx 

6
PHP FPMは許可を拒否しますか?
PHP-FPMでアクセスが拒否された理由をいくつか読みましたが、解決できません。 エラーログは次のように読み取ります。 2013/04/20 23:33:28 [crit] 15479#0: *6 open() "/var/lib/nginx/tmp/fastcgi /2/00/0000000002" failed (13: Permission denied) while reading upstream, client: 99.999.999.999, server: example.net, request: "GET /wp-admin/ HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-fpm.sock:", host: "example.net", referrer: "http://example.net/" 私は少しですが失われました: / var / lib / nginx / tmpをec2-userに設定しました(チェックするすべてを+777にしても) /tmp/php-fpm.sockをec2-userに設定しました nginx confファイルはec2-userに設定されています php-confがユーザーおよびグループec2-userに設定されている ps auxはすべてのphp-fpmおよびnginxプロセスでec2-userを提供します 私のNginx構成には多くのファイルが含まれており、基本的な設定は次のとおりです。 user ec2-user ec2-user; …

2
接続が不足しているNginxとPHP-FPM
私はこのようなエラーに遭遇し続けます、 [02-Jun-2012 01:52:04] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 19 idle, and 49 total children [02-Jun-2012 01:52:05] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 19 idle, and …
9 nginx  php-fpm 

2
すべてのディレクトリ要求をnginxの単一のファイルにエイリアスできますか?
特定のディレクトリに対して行われたすべてのリクエストを取得し、リダイレクトなしでjson文字列をnginxで返す方法を理解しようとしています。 例: curl -i http://example.com/api/call1/ 期待される結果: HTTP/1.1 200 OK Accept-Ranges: bytes Content-Type: application/json Date: Fri, 13 Apr 2012 23:48:21 GMT Last-Modified: Fri, 13 Apr 2012 22:58:56 GMT Server: nginx X-UA-Compatible: IE=Edge,chrome=1 Content-Length: 38 Connection: keep-alive {"logout": true} これが私のnginx confにこれまでにあるものです: location ~ ^/api/(.*)$ { index /api_logout.json; alias /path/to/file/api_logout.json; types { } …

2
API管理ソリューション[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? サーバー障害のトピックになるように質問を更新します。 6年前休業。 私は現在APIを構築しており、(GUIで)監視してレート制限の使用を可能にするツールを探しています。私はいくつかのエンタープライズソリューションに出くわしました。 http://apigee.com/ http://mashery.com/ http://www.layer7tech.com/ http://www.3scale.net/ Apigeeエンタープライズプランはまさに私が探しているものですが、プランは月額3000ドルから始まり、これは私の価格帯を超えています。他のソリューションはすべて高すぎるか、私が探しているソリューションを提供していません。 これにより、以下を含むいくつかのオープンソースオプションを検討するようになりました。 http://apiaxle.com/ https://code.google.com/p/varnish-apikey/wiki/UsageManual ワニスはかなり完全なソリューションのようです。ただし、データを視覚化するGUIを構築する必要があります。 私の最後のオプションは、EventMachineとrubyを使用してゼロからソリューションを構築することです。 何かアドバイス?

1
Nginxでサーバー固有のENV値をどのように設定しますか?
環境変数を使用してデータベース接続などを設定するプロジェクトを開始しています。(人々は不注意でそれらを上書きするので、彼らは設定ファイルを使いたくありませんでした)。 とにかく、私はnginxを使用していて、それはenvをサポートしていますが、十分にサポートしているようには見えません。サーバーブロックごとに env値を設定することはできません。つまり、これは機能しません。 server { listen 80; server_name domain; env FOO = "bar"; } これを行う必要があります: env FOO = "bar"; http { server { listen 80; server_name domain; } } つまり、vhost固有の値を設定することはできません。したがって、各サイトのvhost構成全体を作成し、値を正しく設定するために、現時点で必要なものだけをアクティブにする必要があります。 これを回避する方法はありますか?

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