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

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

3
Nginxは、ファイルが存在する場合にのみURLを書き換えます
ユーザーが古い画像のURLにアクセスしようとすると、Nginxの書き換えルールを記述する必要があります。 /images/path/to/image.png ファイルが存在しない場合は、次の場所にリダイレクトしてください: /website_images/path/to/image.png 新しいURLに画像が存在する場合のみ、それ以外の場合は404に進みます。ホスト上のNginxのバージョンには、try_filesがまだありません。
13 nginx  rewrite 

4
Nginx Varnish Nginx Django?
djangoアプリがあり、その前のサーバーにVarnishをセットアップしたい。で、別のserverfaultのスレッド誰かがワニスの前にnginxのを置くことを提案しました。 キャッシングサーバーのワニスの前にNginxを配置する必要がありますか?その場合、アプリサーバーでNginxを使用する必要がありますか?
13 nginx  django  varnish 

2
nginx configを複数の行に分割する方法は?
特にHPKPヘッダー(または一般に他の長いヘッダー)を構成する場合、nginx構成内の行を複数の行に分割すると便利です。 これは望ましい結果です: pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; ただし、ブラウザの場合は1行のみである必要があります。 pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; だから私はいくつかのことを試しましたが、結果に満足していません... 最初の試行:分割するだけ add_header Public-Key-Pins ' pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; ' これは機能しcurlますが、ブラウザがすべての改行付きのヘッダーを受け取ることがわかります... 2回目:バックスラッシュ 実際、すでにリンクされている記事で、Scott Helmeはこれを推奨しています。 add_header Public-Key-Pins ' \ pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; \ pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; \ pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; \ pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; \ pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; \ pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; \ ' しかし、私の場合、これはスラッシュを追加し、ブラウザーに戻すだけなので、これは機能しません。 どうすればこれを行うことができますか? …

2
Nginxの場所で複数のプロキシエンドポイントを提供する
/apiサブパスが異なるエンドポイントに移動する単一の場所からサービスを提供したいAPIエンドポイントがいくつかあります。具体的には、webdisをで/api、独自のAPIをで入手できるようにし/api/mypathます。 redisコマンド名と衝突する可能性が低いサブパスを使用しているため、webdis APIとの衝突については心配していません。また、衝突を避けるためにAPIの設計を完全に制御できます。 これが、私がハッキングしてきたテストサーバーの構成ファイルです。 server { listen 80; server_name localhost; server_name 192.168.3.90; server_name 127.0.0.1; location / { root /home/me/src/phoenix/ui; index index.html; } # temporary hardcoded workaround location = /api/mypath/about { proxy_pass http://localhost:3936/v1/about; } location /api { rewrite ^/api/(.*)$ /$1 break; proxy_pass http://localhost:7379/; } # tried this but it gives "not …

4
nginxのログアナライザー[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、話題のサーバー障害のため。 5ヶ月前に閉店。 nginxで実行しているWebアプリがあり、ログを分析して、各ファイルが取得しているヒット数、生成されている404およびその他のエラー(Googleアナリティクスが提供できないもの)に関する情報を取得したいと思います。 通常、サーバーにawstatsをドロップするだけですが、nginxを使用すると、cgi-binがないため、簡単ではありません。この情報を取得する別の簡単な解決策はありますか?この分析を行うために第三者にお金を払ってもかまいません。
13 nginx 

2
Nginx-転送HTTP AUTH-ユーザー?
NginxとJenkins(Hudson)に問題があります。HTTP基本認証でJenkinsインスタンスのリバースプロキシとしてNginxを使用しようとしています。 これまでのところ動作しますが、認証ユーザー名でヘッダーを渡す方法がわかりませんか? location / { auth_basic "Restricted"; auth_basic_user_file /usr/share/nginx/.htpasswd; sendfile off; proxy_pass http://192.168.178.102:8080; proxy_redirect default; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-User $http_authorization; proxy_max_temp_file_size 0; #this is the maximum upload size client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; …

2
Nginxプロキシキャッシング-動作しているかどうかを確認する方法
オンラインで見つけたチュートリアルからプロキシキャッシングを使用するようにnginx.confファイルを設定しました。今、私はそれが実際に機能しているかどうかを確認する方法を見つけようとしています。 add_header X-Cache-Status $upstream_cache_status;サーバーセクションの構成ファイルに追加すると、キャッシュからのものかどうかを示すキャッシュヘッダーを追加する必要があることをどこかで読みました(HIT、MISS、またはEXPIREDのいずれかの値があります)。 私は実際にこのヘッダー(およびその値)を実際に表示できる場所と、これが正しい方法であるかどうか/別の方法があるかどうかを知りたいです。私はWebテクノロジー全般は非常に新しいので、これが初心者の質問であれば申し訳ありません。ありがとう!

2
SSI(サーバー側インクルード)とESI(エッジ側インクルード)の主な違い
Webサーバーレベルで静的ページに動的コンテンツを含める必要があります。私がこれまでに発見した2つのオプションがあるServer Side Include (SSI)とEdge Side Include (ESI)。 起源は、一方でSSI、古いようだと(というあいまい95からイリノイ大学からのキャッシュされたページを参照のようです、どうやらそれからだNCSA httpdネットの95%程度の電力を使用するWebサーバのことという、) ESI(より最近の喜びようだW3主にアカマイの男性によって書かれた2001年の仕様)。 また、私はVarnish+ESIについて聞き続けており、したがって、それが進むべき道なのかどうか疑問に思っています。しかし、私はすでにある場所でセットアップしていnginxただけサポートして、SSI、、フォローしたいKISS原理をし、使用を避けるVarnish可能なすべての場合。 各ページの上部に動的なユーザーバーを含めることになる直接的なユースケースの場合、私SSIは仕事をすると信じています。しかし、私は私のウェブサイトが成長するにつれて、私がESIすべてを再設計することを余儀なくされるサポートされている機能だけが必要になるのではないかと心配しています(最終的に読者は言います): サポートされSSIていない主な機能は何ESIですか?

3
nginxの書き換えは、URLの末尾にパラメータを追加します
次のパラメーターがURLの最後に追加されるように、リバースプロキシを構成する必要があります。 &locale=de-de これはほとんど機能します: rewrite ^(.*)$ $1&locale=de-de break; ただし、問題は、「&locale = de-de」がまだ存在しない場合、および「?」がある場合にのみ追加する必要があることです。URLに... これを行うための正しい正規表現の定式化に関するヘルプを得ることができますか? 別の質問:これを使用すると、URLの疑問符が表示されないのはなぜ ですか:$ uri?$ args または、$ uri $ is_args $ argsはエンコードされていないURLを変換し、疑問符は%3fとして表示されます。 アイデア? 編集:proxy_passと組み合わせて使用​​しているときにこの動作が存在するようです。簡単な書き直しで、非常にうまく機能します。
13 nginx  regex 

3
X-forwarded-forヘッダーに基づいてリソースへのアクセスを拒否する方法
X-forwarded-forヘッダーで渡されたクライアントIPに基づいて、Nginxの背後にあるリソースへのアクセスを制限しようとしています。NginxはGoogle Cloud Platform上のKubernetesクラスター上のコンテナーで実行されており、実際のクライアントIPはx-forwarded-forヘッダーのみで渡されます これまでのところ、次のコードを使用して1つのIPに対してそれを行うことができました。 set $allow false; if ($http_x_forwarded_for ~* 123.233.233.123) { set $allow true; } if ($http_x_forward_for ~* 10.20.30.40) { set $allow false; } if ($allow = false) { return 403; } しかし、IPの全範囲に対してこれを行うにはどうすればよいですか?数百のIPを手動で指定するのはあまり意味がありません。 すべての助けに感謝します
13 nginx 

1
特定の場所でのみクライアント証明書を検証するNginx
NginxをWebアプリケーションサーバーのリバースプロキシとして使用します。NginxはSSLなどを処理しますが、それ以外は単にリバースプロキシとして機能します。 リクエストには有効なクライアント証明書を要求しますが/jsonrpc、他の場所には要求しません。私たちが見つけた最良の方法は server { listen *:443 ssl; ssl on; ssl_certificate /etc/nginx/server.crt; ssl_certificate_key /etc/nginx/server.key; ssl_client_certificate /etc/nginx/client-ca.crt; ssl_verify_client optional; location /jsonrpc { if ($ssl_client_verify != "SUCCESS") { return 403; } proxy_pass http://localhost:8282/jsonrpc-api; proxy_read_timeout 90; proxy_redirect http://localhost/ $scheme://$host:$server_port/; } } これはほとんどのブラウザーで正常に機能しますが、SafariやChrome-on-Androidなどの一部のブラウザーは、ユーザーがWebサイトのどこに行ってもクライアント証明書を提供するように要求することになります。 Nginxに、/jsonrpc場所以外のすべての場所でクライアント証明書を受け入れますが、実際には気にしないようにするにはどうすればよいですか?


2
Nginx複数ルート
特定のサブディレクトリへのリクエストを別のルートロケーションに転送したいのですが。どうやって?私の既存のブロックは: server { listen 80; server_name www.domain.com; location / { root /home/me/Documents/site1; index index.html; } location /petproject { root /home/me/pet-Project/website; index index.html; rewrite ^/petproject(.*)$ /$1; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } …

4
すべての仮想ホストに対してnginxでrobots.txtをグローバルに設定する方法
robots.txtnginx httpサーバー下のすべての仮想ホストを設定しようとしています。以下をmainに入れることで、Apacheでそれを行うことができましたhttpd.conf。 <Location "/robots.txt"> SetHandler None </Location> Alias /robots.txt /var/www/html/robots.txt 以下の行を(a)nginx.conf内に追加し、(b)conf.d / robots.confをインクルードして、nginxで同様のことを試みました location ^~ /robots.txt { alias /var/www/html/robots.txt; } 私は「=」を試してみて、仮想ホストの1つに置いてテストしました。何も機能していないようです。 ここで何が欠けていますか?これを達成する別の方法はありますか?
13 nginx  robots.txt 

3
ロードバランサーの背後でngnixを使用してhttpをhttpsに書き換えます
管理パネル内でsslキー/ pemを設定できるRackspaceロードバランサーを使用しています。すべて正常に動作し、httpとhttpsの両方のプロトコルを使用できます。しかし、私が使用してhttpをhttpsにリダイレクトしようとすると: server{ listen *:80; server_name mydomain.com www.mydomain.com; rewrite ^ https://mydomain.com$request_uri? permanent; ...リダイレクトループが発生します。私はポート443をリッスンしていないことに気づきましたが、それはロードバランサーが処理してくれたためです。また、書き直しをif ($scheme ~* http){無効にしてみました。 私の質問の他の部分は、URLからwwwを削除したいということです。これを1回の書き換えで実行できますか?上記のリライトもこれを処理するべきではありませんか? ご協力いただきありがとうございます!

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