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

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

2
リバースプロキシとして使用する場合、nginxがトラフィックをhttpsからhttpにリダイレクトしないようにします
ここに私の短縮されたnginx vhost confがあります: upstream gunicorn { server 127.0.0.1:8080 fail_timeout=0; } server { listen 80; listen 443 ssl; server_name domain.com ~^.+\.domain\.com$; location / { try_files $uri @proxy; } location @proxy { proxy_pass_header Server; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout …
16 nginx  ssl  https 

4
/ grafanaをnginxでプロキシする方法は?
デフォルトのgrafanaをセットアップして起動しましたが、http:// localhost:3000で期待どおりに動作します。私はsslをインストールしているnginxでプロキシしようとしています。私はそれがhttps:// localhost / grafanaに応答するようにしようとしていますが、それは単に次のものを提供しています: {{alert.title}} 私はnginxサーバーブロックにこれを持っています: location /grafana { proxy_pass http://localhost:3000; proxy_set_header Host $host; }
15 nginx 

3
TLS 1.2が有効になっているときにInternet Explorer 11がHTTPSサイトに接続できないのはなぜですか?
通常、Internet Explorerはまったく使用しません。インターフェイステスト(開発マシンおよび暗号化されていないHTTP)の設計時にのみ使用します。毎週、IE11がサイトにアクセスできるというSSL Labsサーバーテストを実行しています。 今日、サードパーティのサービスの1つで問題を発見しました。一部の特別な機能がChromeまたはFirefoxで動作しないため、Windows 7マシンでIE11を起動しました。IE11には、基本的に「ページを表示できませんでした」とだけ表示される組み込みのエラーページが表示されます。そして、DNSなどをチェックするような典型的なダミーのbla bla。エラーページ全体に暗号化関連の問題の兆候はまったくありませんでした(通常のブラウザーが行うように)。 数か月前にこのschannel問題が発生し、TLS1.2対応IEがHTTPSサイトにアクセスできなくなりました。その時点から、「IEのWTFチェックリスト」にはチェックポイントとして「TLS1.2を無効にする」が含まれています。そして、私は何を言うべきですか... IE内でTLS1.2を無効にすると機能し、私のサイトが再び利用可能になります。しかし、私は訪問者のブラウザでこれを行うことはできません。 さて、本当の質問:なぜIE 1.2でTLS 1.2が有効になっているのにInternet Explorer 11がHTTPSサイトに接続できないのですか?そして、サーバー側でそれを修正する方法は?SSL Labsは、私のサイトですべてがうまくいっていると言っています。 重要な編集: IE11は、TLS1.2が有効になっている場合、プレフィックスなしのドメインではなく、プレフィックスなしのドメインのみを処理できるようです。プレフィックスなしのドメイン(www)は機能しますが、プレフィックスを含むドメイン(www)は機能しません。 サーバー側では、debian / 7 nginx / 1.7.8 openssl / 1.0.1eを使用しています 利用可能な暗号は次のとおりです。 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:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:-DES:!RC4:!MD5:!PSK:!aECDH:EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

3
nginx:アップストリームへの接続中はライブアップストリームがありません
サイトページとホームページで何度か切り替えるときに表示される502不正なゲートウェイエラーが、ホームページでの最初のリクエストではなく、別のページがリダイレクトするときにのみ表示されます。そして、それはいくつかのjavascriptファイルで起こります 2つのアップストリームで設定された負荷分散php1 php2は両方ともApacheサーバーです。 私が好きなエラーログをチェックしたとき: no live upstreams while connecting to upstream [error] 27212#0: *314 no live upstreams while connecting to upstream, client: ip_address , server: example.com, request: "GET / HTTP/1.1", upstream: "http://example.com", host: "example.com", referrer: "http://example.com/mypages/" これは負荷分散サーバーの構成です upstream example.com { # ip_hash; server php01 max_fails=3 fail_timeout=15s; server php02 max_fails=3 fail_timeout=15s; …
15 nginx  gateway  502 

1
nginx location〜*および〜とは
私はnginxをもう少しよく理解しようとしており、一致しないすべてのURLが/api/postdataV1異なるサーバーのクラスターにルーティングされる正規表現を形成しようとしています。私は説明なしで例でこれらの2つのものを見続けています location ~ {some regex} location ~* (some regex} 私の最初の質問は、これらは何で~あり~*(~正規表現を指定しているという意味ですか?)、しかし~*その後はどうですか? 私が欲しいのはこれです。これは正しいでしょうか? location ~ ^/api/postdataV1$ { #matches to this route to where I want } location / { #This will be everything except /api/postdataV1 I think } これは正しいでしょうか?しかし、どう~*ですか...私はそれを取得しません ありがとう、ディーン
15 nginx 

1
nginxアップロードの進行状況と通常のリクエスト
私はnginxアップロードモジュールを使用せずにうまく動作するnginxの優れた仮想ホストを持っています。 このアップロードリクエストにアップロードの進行状況を追加すると、どうすれば解決できますか?/?r=uploadまたは/upload?foo=barを使用してファイルをアップロードし、/progressその他を使用してアップロードの進行状況データを追跡する必要があります。 # static9-localhost.sweb server { # upload limit # upload_limit_rate 10240; # request size limitation client_max_body_size 500m; client_body_buffer_size 64k; # document root root /path/to/webapp/static/public/; # index file index index.php; # server name server_name static9-localhost.sweb; # rewrite rules rewrite "^/thumbnail/([A-Za-z0-9]{12})/(.*)/.*$" /index.php?r=thb&unique=$1&prm=$2 last; # / location @frontcontroller { # expires expires …
15 nginx 

2
再起動後にPHP-FPMが自動的に起動しない
PHP-FPMとNginxを実行していますが、何らかの理由でサーバーを再起動する必要がある場合があります。サーバーが再び実行されると、nginxサービスが自動的に開始されますが、PHP-FPMは開始されません。これはsudo /etc/init.d/php-fpm restart、リブート直後にコマンドを実行して結果を取得したときに表示されます。 $ sudo /etc/init.d/php-fpm restart Stopping php-fpm: [FAILED] Starting php-fpm: [ OK ] これは予想される動作ですか?PHP-FPMを自動的に起動する最良の方法は何ですか?どこかに設定オプションがありますか、それともLinux起動スクリプトの1つにコマンドを追加する必要がありますか? ありがとう。

1
外部ソースからnginxでリダイレクトを維持する
私は、マーケティング部門が独自にリダイレクトを維持する機会を与える状況にあります。今まで、彼らは情報をIT部門に渡し、私たちは彼らのためにそれを維持しましたnginx.conf。 これらの人の中には、IISまたはApacheのリダイレクトにも精通している人もいますが、nginx構成に直接アクセスするオプションはありません。 私は、.htaccess私がアクセスできるファイルに対するnginxのサポートがなく、またnginxが含むconfファイルへの書き込みアクセスを許可しないことを好みます。私たちのマーケティングは数時間以内にnginxの設定を壊してしまうと思います... ロードバランサーの中心にアクセスすることなく、安全な可能性はありますか?
15 nginx  rewrite 

3
Webサーバーの1秒あたりの要求の現実的な測定値を決定する
私はnginxスタックをセットアップし、稼働する前に構成を最適化しています。abを実行してマシンのストレステストを行いましたが、1秒あたり150件のリクエストが発生し、かなりの数のリクエストが返されるまでに1秒以上かかることに失望しました。奇妙なことに、機械自体も激しく呼吸していませんでした。 私はついにボックスにpingを実行することを考え、ping時間は約100〜125ミリ秒を見ました。(驚いたことに、このマシンは全国にあります)。したがって、ネットワークの遅延が私のテストを支配しているようです。サーバーと同じネットワーク上のマシンから同じテストを実行すると(ping時間<1ミリ秒)、1秒あたり5000を超えるリクエストが表示されます。これは、マシンに期待するものと一致しています。 しかし、これは私に考えさせられました:Webサーバーに対する1秒あたりの要求の「現実的な」測定値をどのように決定し、報告するのですか?パフォーマンスに関するクレームは常に表示されますが、ネットワーク遅延を考慮する必要はありませんか?確かに、サーバーの隣のマシンには毎秒5000リクエストを提供できますが、全国のマシンには提供できません。低速な接続がたくさんある場合、最終的にサーバーのパフォーマンスに影響を与えますよね?それとも私はこれについてすべて間違っていると考えていますか? これがネットワークエンジニアリング101の場合はご容赦ください。私は貿易によって開発者です。 更新:明確にするために編集されました。

3
proxytunnelおよびnginxを使用したHTTPS over SSH
私はnginxを使用してhttps接続経由でsshをセットアップしようとしています。私は実際の例を見つけていないので、どんな助けも感謝します! ~$ cat .ssh/config Host example.net Hostname example.net ProtocolKeepAlives 30 DynamicForward 8118 ProxyCommand /usr/bin/proxytunnel -p ssh.example.net:443 -d localhost:22 -E -v -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)" ~$ ssh user@example.net Local proxy ssh.example.net resolves to 115.xxx.xxx.xxx Connected to ssh.example.net:443 (local proxy) Tunneling to localhost:22 (destination) Communication with local proxy: -> …
15 ssh  nginx  ssl  proxy  http-proxy 


2
Nginx proxy_read_timeout vs.proxy_connect_timeout
Nginxを、何らかのサービスを提供する一連のサーバーのリバースプロキシとして使用し始めました。 サービスは時々かなり遅くなる場合があります(JavaとJVMでの実行は「フルガベージコレクション」でスタックすることがあり、数秒かかる場合があります)proxy_connect_timeout。2秒に設定しました。サービスがGCでスタックし、時間内に応答しないため、別のサーバーに要求を渡す必要があることを確認します。 またproxy_read_timeout、サービス自体が応答を計算するのに時間がかかりすぎる場合、リバースプロキシがスタックするのを防ぐように設定しました。再び、要求をタイムリーな応答を返すのに十分な空きがある別のサーバーに移動する必要があります。 いくつかのベンチマークを実行しましたがproxy_connect_timeout、サービスがスタックして着信接続を受け入れないため、一部の要求が接続タイムアウトに指定された時間に正確に戻るため、正しく機能することが明確にわかります(サービスは埋め込みとしてJettyを使用しています)サーブレットコンテナ)。ここproxy_read_timeoutでも指定されたタイムアウト後に戻るリクエストを見ることができるため、これも機能します。 問題はproxy_read_timeout + proxy_connect_timeout、サービスがスタックし、Nginxがアクセスしようとしたときに接続を受け入れない場合、Nginxがタイムアウトする前にタイムアウトする、またはほぼその時間のタイムアウトが発生するリクエストがあることです。処理を開始しますが、速度が遅すぎるため、読み取りのタイムアウトのためにNginxが中断します。サービスにはそのような場合があると思いますが、いくつかのベンチマークを実行して、合計数百万のリクエストがあります-上記のいずれかで返される単一のリクエストを見ることはできませんでしたproxy_read_timeout(タイムアウトが大きい)。 この問題に関するコメントをいただければ幸いです。ただし、接続後にタイムアウトカウンターがリセットされないというNginxのバグ(コードをまだ見ていないため、これは単なる仮定です)が原因である可能性がありますNginxがアップストリームサーバーから何も読み取らなかった場合、成功です。
15 nginx  proxy  timeout 

2
Nginxリクエスト/秒を最大化するためのヒント
分析パッケージを作成していますが、プロジェクトの要件では、1日あたり10億件のヒットをサポートする必要があります。うん、「億」。言い換えれば、1秒あたり12,000ヒット以上が持続し、できればバーストする余地があります。これには複数のサーバーが必要になることは知っていますが、「より多くのハードウェアを投入する」前に、各ノードのパフォーマンスを最大にしようとしています。 現在、ヒットトラッキング部分が完了し、最適化されています。リクエストをそのままRedisに保存するだけです(後でHadoopで処理するため)。アプリケーションは、ゲートウェイ用のgunicornを備えたPython / Djangoです。 私の2GB Ubuntu 10.04 Rackspaceサーバー(本番マシンではない)は、毎秒約1200個の静的ファイルを提供できます(単一の静的資産に対してApache ABを使用してベンチマーク)。比較すると、静的ファイルのリンクをトラッキングリンクと交換しても、1秒あたり約600のリクエストが発生します-これは、同じ静的アセットを提供するよりも2分の1だけ遅いため、トラッカーが最適化されていることを意味すると思います繰り返します。 ただし、数百万件のヒットでベンチマークを行うと、いくつかのことに気付きました- すべてのNginxログをオフにしているため、ディスク使用量はありません。カスタムコードはリクエストの詳細をRedisに保存するだけです。 一定ではないメモリ使用量-おそらくRedisのメモリ管理のため、私のメモリ使用量は徐々に上昇し、その後低下しますが、一度もボトルネックになったことはありません。 システムの負荷は2〜4前後に留まり、最も重いベンチマークでもシステムは応答します。また、(他の)サーバーが600リクエストを実行している間、目に見える遅延はほとんどなく、手動でhttp://mysite.com/tracking/pixelを表示できます秒。 短いテスト、たとえば50,000件のヒット(約2mを要する)を実行すると、安定した信頼性の高い1秒あたり600件の要求を受け取ります。より長いテストを実行すると(これまでに最大3.5mまで試行されました)、r / sが約250に低下します。 私の質問- a。まだこのサーバーを使い切っているように見えますか?1,200 / sの静的ファイルnginxのパフォーマンスは、他の人が経験したものと同等ですか? b。そのような大容量アプリケーション向けの一般的なnginxチューニングはありますか?私は64に設定されたワーカースレッドと8に設定されたgunicornワーカースレッドを持っていますが、これらの値を微調整してもあまり助けにも害にもならないようです。 c。着信接続を制限する可能性のあるLinuxレベルの設定はありますか? d。長時間のテストでパフォーマンスが250r / sに低下する原因は何ですか?繰り返しますが、これらのテスト中にメモリが限界に達することはなく、HDDの使用はゼロです。 事前に感謝します、すべて:) 編集これ は私のnginxの設定です-http ://pastie.org/1450749-それはほとんどバニラで、明らかに脂肪が取り除かれています。


5
Apacheの代替
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 現在のスタックはApache + Tomcat + MySQLで、ProxyPassAJPを使用してApacheからTomcatにリクエストを送信します。また、同じサイトでWordpress用のPHPを実行しているため、作業.htaccessファイルが必要です。迷惑な問題(このStack Overflowページを参照)に対応して、代替スタックを検討しています。私たちは一般的にapacheが非常に好きであることに注意してください。しかし、この問題は致命的なものです。修正できない場合、Apacheは使用できません。 代替手段は次のとおりです。 Tomcatのみ Glassfish(Tomcatから分岐したJavaアプリサーバー) Jetty(Javaサーバー) 樹脂 LightTPD(軽量HTTPサーバー) Nginx(軽量HTTPサーバー) 私の考えでは、ソリューションは2つのキャンプに分類されます。Glassfishな​​どの純粋なJavaキャンプと、または、現在のApache + Tomcatなどの分割キャンプ。純粋なJavaソリューションのアイデアが気に入っています。可動部分が少ないほど、誤動作が少なくなるはずです。しかし、それらのいずれかがPHP、.htaccessファイルなどをサポートしていますか? 理論的には、別の方法で分割を行うことができます-それらの機能を必要とするビットのみでApacheにプロキシするシンプルなフロントエンドがありますが、実際には要求の80%になります。 人々はどのような選択肢を提案しますか?

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