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

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

1
nginx proxy_cache_pathディレクティブについて
このnginx設定ファイルがあると仮定します proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=myCache:8m max_size=100m inactive=1h; どういうkeys_zone=myCache:8m意味ですか?ドキュメントにはあまり言及されていません: さらに、すべてのアクティブなキーとデータに関する情報は、名前とサイズがkeys_zoneパラメーターによって設定される共有メモリゾーンに保存されます。 proxy_cache_valid(12h)が指定されたinactive値(1h)より大きい場合はどうなりますproxy_cache_pathか?どのルールに従うのでしょうか?例えば proxy_cache_valid 200 302 12h; proxy_cache_valid 404 302 1h; ありがとう!

2
HTTPリバースプロキシは通常、プロキシ接続のクライアント側でサーバー側ではなくHTTPキープアライブを有効にしますか?
HAProxyには、クライアント側(クライアント<-> HAProxy)でHTTPキープアライブを有効にする機能がありますが、サーバー側(HAProxy <->サーバー)では無効になります。 一部のクライアントはサテライト経由でWebサービスに接続しているため、レイテンシは最大600ミリ秒になります。キープアライブを有効にすると、速度が少し速くなると思います。私は正しいですか? これはNginxでサポートされていますか?これは、他のソフトウェアおよびハードウェアロードバランサーに広く実装されている機能ですか?HAProxy以外に他に何がありますか?

1
Nginx構成ファイルの名前と場所は何ですか(同等のhtaccess)。
Apacheの.htaccessファイルを模倣するNginx書き換えルールの作成方法に関するチュートリアルは多数ありますが、このNginx構成ファイルの名前または場所が実際に何であるかを確信を持って言えません。特に、サーバーパスとPHPディレクティブを記述できるNginx構成ファイルを探しています。PHPフレームワークとしてUbuntu 12 LinuxとCodeigniterを使用しています。 これまでに私が知っていることは次のとおりです。 このファイル:/etc/nginx/nginx.confその魅力的な名前にもかかわらず、明らかにサーバーディレクティブの場所ではありません。 このファイル:/etc/nginx/sites-available/default必要なもののようです(アプリに固有のphpエラーを生成できます)が、Codeigniter固有のパスルーティングを正しく取得できません。まず第一に、これは誰もが言う「config」ファイル/.htaccessと同等ですか?

2
Nginx:複数のパスの場所の正規表現
私はnginxの設定に2つの場所があります: location ^~ /media/ { proxy_pass http://backend.example.com; } location ^~ /static/ { proxy_pass http://backend.example.com; } これら2つを1つの場所に結合するにはどうすればよいですか? 私がすでにやったこと: 私はこの提案を試みました location ~ ^/(static|media)/ { proxy_pass http://backend.example.com; } しかし、それは私にはうまくいきません。 また、バックエンドを使用しない場合、次の構成が正常に機能しています。 location ~ ^/(static|media)/ { root /home/project_root; } 更新(ログの一部の文字列) xx.xx.xx.xx - - [31/Dec/2013:13:48:18 +0000] "GET /content/11160/ HTTP/1.1" 200 5310 "-" "Mozilla/5.0 (Windows NT 6.2; …
30 nginx  regex 

3
NGINXを使用したHTTPバックエンドへのHTTPS要求のプロキシ
HTTP経由でバックエンドと通信する外部から見えるウェブサーバーとしてnginxを設定しています。 私が達成したいシナリオは次のとおりです。 クライアントは、同じURLにリダイレクトされるがHTTPS経由のnginxにHTTPリクエストを行います nginxプロキシがHTTP経由でバックエンドにリクエストを送信します nginxは、HTTP経由でバックエンドから応答を受け取ります。 nginxはこれをHTTPS経由でクライアントに返します 私の現在の構成(バックエンドが正しく構成されている)は次のとおりです。 サーバー{ 80を聞きます。 server_name localhost; ロケーション〜。* { proxy_pass http:// backend; proxy_redirect http:// backend https:// $ host; proxy_set_header Host $ host; } } 私の問題は、クライアントへの応答(ステップ4)がHTTPSではなくHTTPで送信されることです。何か案は?

1
特定のIP範囲のnginxでhttp基本認証を無効にする方法は?
私はFacebookのログインでアプリケーションを開発しています。これまでのところ公開されておらず、nginxのhttp基本認証によって保護されています。FacebookのIP範囲のHTTP認証を無効にして、テスターがFacebookの機能もテストできるようにすることは可能ですか?可能であれば、構成スニペットの例を含めてください。

3
ApacheとNginx
私は最近ApacheとNginxの違いを調査してきましたが、どちらを選択すべきか混乱しています。 私はいくつかの検索を行いましたが、2つの間に明確な比較はなく、ここの誰かが2つの違いについて意見を述べることができるかどうか疑問に思いました。 私の現在の知識は、mod_phpがfastcgiよりも高速で安全であることを理解させてくれますが、Apacheは同時接続とメモリ消費に関してははるかに悪いです。 私のサイトは多くの長いポーリングを使用していますが、非AJAX Webベースがあります(つまり、上部に長いポーリングがあるApache)。 Apacheのメモリ問題に対する私の最初の解決策は、長いポーリングをnode.jsを介して送信し、node.jsが2秒ごとにApacheにアクセスするようにすることでした。私はこれが十分ではないかもしれないと気づき、さまざまな解決策を検討しています。私の元のアイデアがうまくいったかどうかについては、まだ興味があります。 それでは、現代のウェブにとってどちらが良いでしょうか?ApacheまたはNginx? 更新:提示された提案はすべて適切で有効でした。私は、完全なNginxサーバーを使用するという元の2番目のアイデアに取り組んでいます。専用サーバーであるため、fastcgiのセキュリティの問題に悩まされることはなく、長いポーリングスクリプトをPHPで作成する必要があるため、高負荷の同時接続に対応できるサーバーが必要であり、Apacheはそれがいくらでもできない構造を変更しますが、それでもメモリが不足します。 私はマーティンFの答えにマークを付けました。彼が私の質問ポイントに非常に明確で完全な答えを与えたからです。 Nginxがプロキシでできる非常に非常にクールなものを見つけたからです。 おかげで、

2
nginx自動フェールオーバーロードバランシング
ロードバランシングにnginxとNginxHttpUpstreamModuleを使用しています。私の設定は非常に簡単です: upstream lb { server 127.0.0.1:8081; server 127.0.0.1:8082; } server { listen 89; server_name localhost; location / { proxy_pass http://lb; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } しかし、この構成では、2つのバックエンドサーバーのいずれかがダウンした場合、nginxはまだリクエストをルーティングし、半分の時間でタイムアウトになります:( ダウンしたサーバーを検出したときにリクエストを別のサーバーに自動的にルーティングするようにnginxを作成するソリューションはありますか? ありがとうございました。

8
Nginx + php-fpm「504ゲートウェイタイムアウト」エラー(負荷がほぼゼロ)(テストサーバー上)
6時間デバッグした後、これを放棄しています:| LANにはnginx + php-fpm + mysqlがあり、ほぼ100個のワードプレスがあります(テストワードプレスのセットアップに取り組んでいるさまざまなデザイナー/開発者によって作成および使用されています)。 長い間問題なくnginxを使用しています。 今日、突然-nginxは「504 Gateway Time-out」を突然返し始めました... 仮想ホストのnginxエラーログを確認しました... 2010/09/06 21:24:24 [error] 12909#0: *349 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info" 2010/09/06 21:25:11 [error] 12909#0: *349 recv() failed (104: Connection …

8
OpenSSLを更新した後でも、サーバーは依然としてハートブリードに対して脆弱です。
Ubuntu 12.04サーバーがあります。OpenSSLハートブリードの脆弱性を修正するために、パッケージを更新しました。しかし、Webサーバー、さらにはサーバー全体を再起動したとしても、依然として脆弱です。 私が使用した脆弱性を確認するには: http://www.exploit-db.com/exploits/32745/ http://filippo.io/Heartbleed dpkgが提供するもの: dpkg -l |grep openssl ii openssl 1.0.1-4ubuntu5.12 Secure Socket Layer (SSL) binary and related cryptographic tools (launchpad.net/ubuntu/+source/openssl/1.0.1-4ubuntu5.12)

5
上流のUNIXソケットへのnginxスループットを増やす必要があります— Linuxカーネルのチューニング?
私は、次のように、上流のUnixソケットへのプロキシとして機能するnginxサーバーを実行しています: upstream app_server { server unix:/tmp/app.sock fail_timeout=0; } server { listen ###.###.###.###; server_name whatever.server; root /web/root; try_files $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } } 一部のアプリサーバープロセスは、リクエスト/tmp/app.sockが利用可能になったときに順番にプルします。ここで使用している特定のアプリサーバーはUnicornですが、この質問に関係があるとは思いません。 問題は、ある程度の負荷を超えると、nginxは十分な速度でソケットを介してリクエストを取得できないように見えることです。設定したアプリサーバープロセスの数は関係ありません。 私はnginxエラーログにこれらのメッセージの洪水を受け取っています: connect() to unix:/tmp/app.sock failed (11: Resource temporarily unavailable) while connecting …

1
NGINX-不正使用を防ぐためにリクエストを調整する
私がこれをしたいのは、ユーザーがJavaScriptを使用してAPIに対して開発を行い、一部の開発者が台無しになり、訪問者がAJAXリクエストでサーバーをバタンとさせるからです。これが発生した場合、APIリクエストを1分あたりおそらく50リクエストに抑えることができるようにしたいのです。 注:(特にDBを集中的に使用するリソースです。サーバー全体ではなく、おそらくパスレベルです(たとえば、 "/ static /"ではなく、 "/ json_api /"を調整します)。

4
ifを使用せずに、Amazon ELBの背後にあるすべてのhttpリクエストをhttpsにリダイレクトします
現在、http://www.example.orgとhttps://www.example.orgの両方にサービスを提供しているELBがあります。 http://www.example.orgを指すリクエストがhttps://www.example.orgにリダイレクトされるように設定したいと思います。 ELBはhttps要求をhttp要求として送信するため、次を使用します。 server { listen 80; server_name www.example.org; rewrite ^ https://$server_name$request_uri? permanent; } https://www.example.orgへのリクエストはnginxのポート80 に対して行われるため、機能しません。 私はそれを次のように書き換えることができることを知っています server { listen 80; server_name www.example.org; if ($http_x_forwarded_proto != "https") { rewrite ^(.*)$ https://$server_name$1 permanent; } } しかし、私が読んだifすべてのことは、nginx構成内のすべてのコストで回避されるべきであると述べており、これはすべてのリクエストに当てはまります。また、ヘルスチェック用に特別な個別の構成を設定する必要があることを意味します(ここで説明するように、「…ELBがHTTPSエンドポイントとして機能し、HTTPトラフィックのみをサーバーに送信するELBの背後にいる場合、 ELBが必要とするヘルスチェックに対してHTTP 200 OK応答で応答する機能を破壊します」)。 ログインをnginx設定ではなくWebアプリケーションのコードに入れることを検討しています(そしてこの質問の目的のためにDjangoベースのアプリケーションであると仮定しましょう)が、それがオーバーヘッドよりも大きいかどうかはわかりませんif で構成。

1
常にPHP-FPMをリロードする必要があります
nginxとPHP-FPMを実行しているかなり負荷の高いサーバーがあります。このサーバーには、PHP-FPMとnginxを実行する6つのWebサイトがあります。ソフトウェアはすべてvBulletin 3.8およびWordPressです。データベースは別のサーバーにあります。 現在、これらは非常に人気のあるWebサイトであるため、通常、一度に7〜8,000人の訪問者がオンラインになり、各ページの大部分がデータベースにアクセスします。これが問題の原因だと思います。 MySQLサーバーには非常に多くの大規模なデータベースがあり、クエリは正直なところソフトウェアではるかに優れている可能性があるため、MySQLは時折PHPに結果を返せず、最終的にはカスケード効果を生み出すと思いますPHP-FPMをリロードするまですべてが停止します。それを行った後、物事は再び正常に動作し始めます。 このトラブルシューティングで問題が発生する理由は、ログから何も実際に識別できないためです。MySQLのスロークエリログでは、ダウンタイムが発生しても何も関心がありません。nginxログには、読み取り要求がタイムアウトしたか、接続がタイムアウトした(PHP-FPMへ)と言っている何千ものエントリがあります。また、PHP-FPMログには、「実行がタイムアウト(31秒)で終了しました」という行がたくさんあります。 したがって、この時点では、どこで問題を探すべきか完全にわかりません。明らかに、これらのスクリプトは時々十分な速さで実行されないため、何が起きているのでしょう(通常は1秒未満でロードされますが、ロード時間が急増する原因が発生します)。これは1日に何度も発生し、私たちにとって非常に大きな問題となっています。 今のところ、クラッシュの問題を処理するために、10分ごとにphp5-fpmのリロードを処理するcrontabを用意しています。もちろん、PHPがリロードすると、nginxは502ゲートウェイエラーをスローするため、あまり解決策にはなりません。 それが重要な場合、PHPはAPCキャッシュを実行しています。特定の状況下でAPCがハングする可能性があることをいくつかのスポットで読みました。 任意のポインターが役立ちます。このマシンをいつも心配する必要はありません。 もちろん、より多くの情報を提供できます。必要なものをお知らせください。 更新: apc.phpをWebルートにコピーし、アクセスして統計を確認しました。物事はよさそうだ。次に、リンクをクリックして[ユーザーの統計]に移動し、サーバーがすぐにハングするようにしました。php-fpmをリロードしてから、ユーザーの統計ページをリロードしましたが、うまくいきました。しばらく待ってから、再度リロードし、サーバーが再びハングしました。 したがって、これは間違いなくAPC関連のようです。質問は-どのように修正すればよいですか? APC構成: [apc] apc.enabled="1" apc.stat = "1" apc.max_file_size = "2M" apc.localcache = "1" apc.localcache.size = "256" apc.shm_segments = "1" apc.ttl = "3600" apc.user_ttl = "7200" apc.gc_ttl = "3600" apc.cache_by_default = "1" apc.filters = "" apc.write_lock = "1" apc.num_files_hint= …
27 mysql  nginx  php-fpm 

2
Nginx:1つのパスでSSLを強制し、他のパスで非SSLを強制します
Nginx confファイルを設定して、サイトのパスの1つのみでSSLを強制し、その他すべてのパスで非SSLを強制するにはどうすればよいですか? たとえば、/ userの下のすべてのURLをhttpsにしたいが、残りのURLはすべてhttpにしたい。 最初の部分については: rewrite ^/user(.*) https://$http_host$request_uri?; 「if」は使いたくありません。私はそれが操作の順序を利用すると仮定しますが、私はループになりたくないです。
27 nginx  ssl 

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