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

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

3
nginx内でSAML認証を使用する
既存のSAML 2.0 IdPを使用して、nginxを使用して提供される静的コンテンツへのアクセスを制限したい。(アパッチでは、これは、このようなモジュールを用いて行われるであろうmod_mellon又はmod_auth_saml) nginxの静的コンテンツにSAML認証を使用する最良の方法は何ですか?それでもX-Accelヘッダーを使用している場合、SAML認証からプロキシするヘルパースクリプトがありますか、これのためにゼロから開始する必要がありますか?

2
nginxの書き換えを使用した「非表示」の.htmlファイル拡張子
私はnginx経由で静的サイトを提供していますが、私の目標は次のようなURLを置き換えることです: http://foo.com/bar.html と http://foo.com/bar キーは末尾のスラッシュがないことです。私は現在、場所のエイリアスを使用して同様のことをしていますが、これはすべてのファイルの場所ブロックを必要とし、nginxがエイリアスをディレクトリとして見るために末尾のスラッシュも追加するため、退屈です: location / { root /srv/www/foo/public_html; index index.html; } location /bar1 { alias /srv/www/foo/public_html/; index bar1.html; } location /bar2 { alias /srv/www/foo/public_html/; index bar2.html; } 等々。書き換えに関するドキュメントを読みましたが、言われていることを私がそれをするために必要なものに統合することはできないようです。私はApacheのバックグラウンドから来たわけではありません。nginxはWebサーバーへの最初の進出であるため、HTTPのバックグラウンドが弱いため、明らかな何かを見逃していると確信しています。あなたが提供できる助けを事前に感謝します。
16 nginx  rewrite 

4
UNIXソケット経由でNginx proxy_pass Node.js HTTPサーバーを設定するにはどうすればよいですか?
UNIXドメインソケットを介してNode.js HTTPサーバーに接続するようにNginxサーバーを構成しようとしています。 Nginx構成ファイル: server { listen 80; location / { proxy_pass http://unix:/tmp/app.socket:/; } } (http://wiki.nginx.org/HttpProxyModule#proxy_passによる) Node.jsスクリプト: var http = require('http'); http.createServer(function(req, res) { console.log('received request'); req.end('received request\n'); }).listen('/tmp/app.socket'); 今、私が電話しようとすると curl http://localhost/ curlで502 Bad Gatewayエラーページのみが表示され、Node.jsプロセスでは何も表示されません。 私は何か間違っていますか? 編集: Quantaのソリューションを試した後、Node.jsプロセスがソケットへの接続を正しく確立するため、間違いはNginxの設定に関係する必要があります。 私もこの方法でNginxを設定しようとしました: upstream myapp { server unix:/tmp/app.socket; } server { listen 80; location / …


2
パラメーター付きのURLのnginxの書き換え
このタイプのURLがあります: http://www.example.com/?param1=val1&param2=&param3=val3&param4=val4&param5=val5 そして、私はこれをこれにリダイレクトしたい: http://www.example.com/newparam/val3/val4 だから私は成功せずにこの書き換えルールを試しました: rewrite "/?param1=val1&param2=&param3=(.+)&param4=(.+)&param5=(.+)" http://www.example.com/newparam/$1/$2 redirect; nginxはクエリパラメータを処理できませんか? 編集:すべての請願書を書き直したくありません。他の人に影響を与えることなく、そのURLを書き換えるだけです。

8
php5 + MySQLを200リクエスト/秒以上にスケールするには?
私はパフォーマンスのためにホームページを微調整しています。現在、3つのSQLクエリを処理する3.14.byでは毎秒約200リクエスト、php14フォーラムである3.14.by/forumでは毎秒20 reqを処理しています。 奇妙なことに、いくつかのVPSと専用のAtom 330サーバーで数値はほぼ同じです。 サーバーソフトウェアは次のとおりです。Apache2+ mod_php prefork 4子(ここで別の数字を試しました)、php5、APC、nginx、PHPセッションストレージ用のmemcached。 MySQLは使用可能なRAMの約30%を消費するように構成されています(VPSで約150 MB、専用サーバーで700 MB) これはどこかにボトルネックがあるように見えますが、私がより高くなることを許可していませんか?(つまり、6個未満のSQLを実行すると高速化されることはわかっていますが、キャッシュされたクエリのためにsqldがトップの数%しか消費しないため、これは制限要因には見えません) 事前にフォークされたapache2をキックしてnginx + phpだけを残す方がずっと速いことをテストした人はいますか? いくつかのベンチマーク Small 40-byte static file: 1484 r/s via nginx+apache2, 2452 if we talk to apache2 directly. Small "Hello world" php script: 458 r/s via ngin+apache2. 更新: ボトルネックは、キャッシュされたデータのMySQLパフォーマンスにあるようです。単一のSQLを含むページには354req / secが表示され、6つのSQL-180 req / secが表示されます。ここで何を調整できると思いますか?(MySQLで100-200Mbを分岐できます) [client] port = …

4
.htaccess /書き換えルールのnginxサポート?Apacheとの違いは?
私はかなり長い間Apache httpサーバーで作業しており、最終的には他の動的コンテンツマシンとともに静的コンテンツサーバーに移行しました。 私は疑問に思っていました、nginxは「.htaccess」ファイル、およびmod_rewriteなどをサポートしていますか? 私は構文に非常に慣れているので、(構文)の違いは何であり、Apacheの設定からnginxに移行するような学習曲線はどのようなものなのか疑問に思っていました。

5
他のアプリケーションがポート80および443にバインドしないようにする
先週、彼のウェブサイトがハッキングされたと思ったため、怖い顧客から電話がありました。彼のWebサイトを検索すると、apache2デフォルトのページが表示されました。その夜、サーバー(Ubuntu 16.04 LTS)がアップグレードされて再起動しました。通常、何かがうまくいかないとき、私は夜中に警告を受けたでしょう。これは、監視システムがHTTPステータスコード200をチェックし、apache2デフォルトページにステータスコード200が付いているためです。 起こったのは、起動中apache2にポート80と443へのバインドが実際のWebサーバーnginxよりも高速だったことです。私は自分でapache2をインストールしませんでした。aptitude why apache2私が見つけたphp7.0パッケージには、それを必要とします。 削除apache2するだけでは動作しません。どうやらphp7.0が必要だからです。nginxのみがポート80および443にバインドできるように制限を作成することはどういうわけか可能ですか? 他のソリューションも大歓迎です。

1
nginx access_logディレクティブのオーバーライド-ログエントリの重複
Ubuntu 14.04サーバーでデフォルトのnginxパッケージを使用しています。/etc/nginx/nginx.confメイン構成として使用しており、からの構成が含まれ/etc/nginx/conf.d/*.confてい/etc/nginx/sites-enabled/*ます。 デフォルトのnginx設定には、アクセスログに記録するためのこのディレクティブがあります access_log /var/log/nginx/access.log; X-Forwarded-Forヘッダーを追加したいので、conf.dフォルダー内でこれを行います。 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; 私が抱えている問題は、access.logファイル内に2つのレコードが得られることです。1つはヘッダー情報があり、もう1つは含まれていません。 nginx.confファイル自体を上書きできることは知っていますが、可能であればそれを避けたいです。また、同じログファイル(access.log)を使い続けたいと思います。 nginxに前のディレクティブをオーバーライドし、メインnginx.confファイルを変更せずにログ形式を単に変更するように指示する方法はありますか?

2
nginxリバースプロキシによって返されるHTMLページを変更する
インターネットからイントラネット内にあるサードパーティアプリケーションにアクセスするためのリバースプロキシをセットアップしています。このアプリケーションがURL上にあるとしましょう: https://internalserver:8080/ (イントラネットからのみ到達可能) プロキシがオンになっています: https://proxyserver/ (世界のどこからでも到達可能) プロキシはnginxによって管理されており、正常に機能しています。ユーザーがアクセスするhttps://proxyserver/ と、でアプリのコンテンツを取得しhttps://internalserver:8080/ます。 問題は、アプリケーションがHTML応答に絶対URLを書き込んでいるため、ユーザーが新しいページへのリンクをクリックすると、ブラウザがのhttps://internalserver:8080/somepage 代わりに内部名でページを検索しようとすること です https://proxyserver/somepage。 これはプログラムのバグであることは知っていますが、プログラムを変更することはできません。 応答をインターセプトし、URLを変更し、nginxで最終クライアントに送信(変更)できますか?それとも別のツールで? 編集:私は前にこの質問を見ましたが、私の場合はより具体的です、引用された質問は一般的な変更を求めます。その場合、fast-cgiアドホックプログラムが最適なソリューションであり、私が望んでいるのは、より一般的なシナリオのためのより具体的なソリューションです(と思います)。fast-cgiプログラムは機能しますが、私はこのシナリオの最も簡単で、おそらくより強力な、現実世界でのソリューションを探しています。

2
nginxは大きな設定ファイルを分割します
私のnginxのデフォルト設定ファイルは巨大になっています。それをより小さな設定ファイルに分割し、各ファイルに最大4つの場所を1つだけ含めることで、迅速に有効/無効にできるようにします。 実際のファイルは次のようになります。 server { listen 80 default_server; root /var/www/ location /1 { config info...; } location /2 { config info....; } location /abc { proxy_pass...; } location /xyz { fastcgi_pass....; } location /5678ab { config info...; } location /admin { config info....; } 今、私はそれを各ファイルにいくつかの場所(一緒に属する場所)を持つように分割したい場合、混乱を引き起こすことなくそれを行う適切な方法は何でしょうか(各ファイルのルートを宣言するなど、奇妙なパスがそのnginxを持つファイルを見つけようとします)?

5
Nginxを使用したトラフィックのミラーリング
サーバー/リソースへのトラフィックを複製/ミラーリングする必要があります。 つまり、WebサーバーとしてサーバーAとBとN(nginx)があります。 N / resourceに向かうすべてのトラフィック-> AとBの両方にリダイレクト 出来ますか?
16 nginx  traffic 


9
nginxで単一のポートを使用してhttpおよびhttpsリクエストを処理する
私はnginxが同じポートで httpおよびhttpsリクエストを処理できるかどうか疑問に思っていました。[*] これは私がやろうとしていることです。http要求を処理するWebサーバー(lighttpd)と、httpsを介してドキュメントツリーの特定のセクションを処理するCプログラムを実行しています。これら2つのプロセスは同じサーバーで実行されます。 ファイアウォールレベルでは、このサーバーにトラフィックを転送するポートを1つだけ持つことができます。したがって、私がやりたいのは、このサーバーでnginxを設定して、単一のポートでリクエストをリッスンしてから: A)すべてのhttp://myhost.com/ *リクエストをリダイレクトして、localhost:8080(lighttpdがリッスンしている場所)に移動します。 B)ユーザーが、https:// myhost.com/appなどで始まるURLを要求した場合、その要求はlocalhost:8008(Cプログラム)に送信されます。この場合、リモートブラウザーとnginx間のトラフィックは暗号化する必要があることに注意してください。 これは可能だと思いますか?もしそうなら、どのようにそれを行うことができますか? 2つの異なるポートを使用してこれを行う方法を知っています。私が直面している課題は、1つのポートだけでこれを行うことです(残念ながら、この特定の環境でファイアウォールの構成を制御することはできません。そのため、回避できない制限です)。sshを介したリバースポートフォワーディングなどの技術を使用してファイアウォールをバイパスすることも機能しません。これは、Webブラウザーとインターネットリンクしかないリモートユーザーに対して機能するはずです。 これがnginxの機能を超えている場合、この要件を満たすことができる他の製品を知っていますか?(これまでのところ、これをlighttpdとpoundで設定することに失敗しました)。また、Apacheを避けることも好みます(ただし、Apacheが唯一の選択肢である場合は使用してもかまいません)。 事前に感謝、アレックス [*]明確にするために、同じポートを介した暗号化および非暗号化HTTP接続の処理について説明しています。暗号化がSSLまたはTLSのどちらを介して行われるかは関係ありません。
16 nginx  http  https  lighttpd 

2
ホームページのみをリダイレクト
http://shop.test.comのみ を http://www.test.com/fedex-orders/にリダイレクトする必要があります ただホームページ。他に何もありません。つまり、 http://shop.test.com/?page = blogはリダイレクトすべきではありません。
16 nginx  rewrite 

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