Webリクエストはサーバーサイドで、gzipで圧縮されて、クライアントで展開する。 これにより、サーバー、クライアント両サイドで、通信速度、使用帯域を有効活用している。 さらに詳しく: http://en.wikipedia.org/wiki/HTTP_compression サーバーサイドでは、例えば、Nginxで
![Nginxのgzipが動いているか確認する方法 ~ クライアントサイド~ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/95b2a432f9acaad621bf24b074a7ae298f7afcd7/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9TmdpbnglRTMlODElQUVnemlwJUUzJTgxJThDJUU1JThCJTk1JUUzJTgxJTg0JUUzJTgxJUE2JUUzJTgxJTg0JUUzJTgyJThCJUUzJTgxJThCJUU3JUEyJUJBJUU4JUFBJThEJUUzJTgxJTk5JUUzJTgyJThCJUU2JTk2JUI5JUU2JUIzJTk1JTIwfiUyMCVFMyU4MiVBRiVFMyU4MyVBOSVFMyU4MiVBNCVFMyU4MiVBMiVFMyU4MyVCMyVFMyU4MyU4OCVFMyU4MiVCNSVFMyU4MiVBNCVFMyU4MyU4OX4mdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWZjYTc2YjUzNWFhYjVhOTM0NmQ4ZmJiNjUwYzM5MzAz%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB1a2l0YXp1bWUmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWY3OTdkYzcxNzZiYWNjMGZmOWQ2OTUxNDdmZTVmZGU1%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D0846716f7f71426d609d6ff35abbf413)
Varyヘッダは前段のキャッシュサーバに対して、指定したヘッダの内容ごとにキャッシュを分ける必要があることを伝えるためのものです。例えばサーバがVary: Accept-Encodingをレスポンスヘッダに付加しておくと、キャッシュサーバはAccept-Encodingヘッダの内容に応じたキャッシュを保持します。 こうすることでクライアントのAccept-Encodingヘッダの内容に応じたキャッシュデータをキャッシュサーバは返すことができるというわけです。 nginxにおけるgzip圧縮とVaryヘッダ さて、本題です。上記のような事情からかApacheのmod_deflateやh2oなんかはコンテンツのgzip圧縮を有効にすると、自動的にVary: Accept-Encodingをレスポンスヘッダに付加します。一方我らがnginxは設定ファイルにgzip_vary on;と書かないとV
Packages for RHEL 7 and SLES 12 are built without HTTP/3 support because OpenSSL used by those doesn't support TLSv1.3. Before you install nginx for the first time on a new machine, you need to set up the nginx packages repository. Afterward, you can install and update nginx from the repository. This section applies to Red Hat Enterprise Linux and its derivatives such as CentOS, Oracle Linux, Rock
はじめに Nginx は Web サーバーです。他の有名な Web サーバーに Apache がありますが、違いはプロセス(あるいはワーカー) ベースの処理か、イベントベースの処理か、になります。Nginx はイベントベースの Web サーバーで、同時リクエストの処理を得意とします。一方で、レスポンスまでに時間がかかるような、サーバーサイドで実行するプログラムのハンドリングは苦手です。このようなスクリプトは、FastCGI プロセスや uWSGI プロセスに中継して実行してもらうようにすることで、Nginx がボトルネックにならないように構成する必要があります。Nginx に uWSGI を連携させる手順についてはこちらの投稿を参照してください。 今回、Nginx を CentOS7 にインストールする手順と、PHP スクリプトを FastCGI で実行できるようにする PHP FPM の
こんばんは、相変わらずの小ネタ王、ぬるぽぽぽです。あるディレクトリに来たリクエストを別のディレクトリへリダイレクトさせたい、という要求はどこにでもある話ですが、例えば /obihiro にきたリクエストを /sapporo へ飛ばす分にはループを心配しなくてよいでしょう。 location ~ /obihiro/ { rewrite ^/obihiro/(.*)$ http://example.com/sapporo/$1 break; } こんな感じですね。 しかし、 /tokyo/shinagawa へ来たリクエストを /tokyo/shinagawa/togoshi/ginza へ飛ばしたい、といった場合、下層ディレクトリへのリダイレクトなので、ループしてしまうと悩んでいたところ、上司に助けていただいたのでメモ。 # location ~ /tokyo/shinagawa/ とセット
# 302の場合 location ^~ /hoge/foo.html { rewrite ^(.*)$ http://example.com/hoge/foo.html redirect; } # 301の場合 location ^~ /foo/bar.html { rewrite ^(.*)$ http://example.com/foo/ permanent; } # ホスト名等引き継ぎ location ^~ /hoge { proxy_set_header Host $host; proxy_set_header X-Proto $http_x_forwarded_proto; proxy_pass http://127.0.0.1$request_uri; } # 特定のクエリの場合だけ転送 location ^~ /hoge/foo.php { if ($args ~ "(.
はじめに 僕は盲目的にunicornを起動するためだけにnginxを使っていて、設定ファイルの内容とかをほとんど知らない。 なので、ここにnginxの設定内容をまとめる事で自分自身が覚えようと思う。 普段使う大抵の設定は記載しているつもりです。 記載内容は実際に試したものと試してないものが混在してるので、誤った設定などがあるかもしれないのでその辺はコメントでご指摘いただけると助かります。 インストール インストールについては僕が書くより他の人の記事を見た方がいいと思う。 centosに入れるなら以下の記事が参考になる。 CentOS6.xにてnginxの最新版をインストールする手順 CentOS 6.5でnginxを動かす為の最低限の設定 またchefでインストールする場合は以下の記事が役にたつ。 Chefでnginxを導入してみる ChefでNginxをインストールするときにハマった c
ローカルに2つのアプリケーションを動かしていて、URLでリバースプロキシ先を振り分ける設定になります。/fooで受けると5001ポートで動いてるアプリに、/barで受けると5000ポートで動いてるアプリに振り分けてくれます。 パラメータごにょごにょしたいときはrewriteルールのところで色々変数化すると良いと思います。 サブドメイン使えない環境のお伴にどうぞ。しかしnginxはシンプルで良いですね。 server { listen 80; server_name www.example.jp; charset koi8-r; location /foo { rewrite ^/foo/(.+) $1 break; proxy_pass http://127.0.0.1:5001/$1; } location /bar { rewrite ^/bar/(.+) $1 break; prox
社内システムを動かしていたApacheなサーバーが廃止されたのでNginxなサーバーに移行しました。 他の社内システムに相乗りして、URLに特定のサブディレクトリがついていたら動作を分けて背後のアプリケーション・サーバーにリバースプロキシで接続という構成です。 server { #省略 #リバースプロキシの設定を追加 location /hoge/ { proxy_pass http://127.0.0.1:3000/; } #省略 location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { access_log off; log_not_found off; } } Nginxに上記のようなリバースプロキシの設定を入れたところプログラムは動作しているのに画像、css、jsが読み込めずに大ハマリしました。 勘がいい人は「他は省略しているのに残してあ
/server-status?autoにアクセスしてリソース監視 Apacheだと、mod_statusってやつを有効にするとかすると、 /server-status?autoにアクセスすると、リソース状況が分かる 特定IPからのアクセスのみに限定する とか設定がさくっとできるのです。とあるApacheのサーバーの/server-status?autoにアクセスした結果が以下。 Total Accesses: 45598 Total kBytes: 869752 CPULoad: .494453 Uptime: 495084 ReqPerSec: .0921015 BytesPerSec: 1798.94 BytesPerReq: 19532.1 BusyWorkers: 6 IdleWorkers: 14 Scoreboard: __W_____RRR_____RR__.........
Netcraftが発表した2016年10月のウェブサーバ調査によると、アクティブなサイトに絞り込んだ場合、「NGINX」が、ウェブサーバ市場シェアで現在2位につけている。NGINXが「Microsoft Internet Information Server」(IIS)を追い越したのはかなり昔で(もっとも、サイトの全体数を対象とした場合、MicrosoftのシェアはNGINXを超えている)、最近では徐々に長年の首位の座を守っている「Apache」に迫りつつある。しかし、NGINXの最高経営責任者(CEO)Gus Robertson氏は、インタビューの中で、ApacheとNGINXの狙っている市場は異なっていると述べている。 「わたしはApacheは素晴らしいウェブサーバだと思っている。NGINXはApacheとは異なる利用事例を想定している」と同氏は述べている。「Apacheがライバルだと
はじめに nginx を使っている場合にサービスのメンテナンス等に役立ちそうな小ネタ 他にもネタがあれば随時書く 小ネタ #1 設定に if が利用出来る 設定に if が使える 良く知られたことなのかもしれないが、nginx の設定には if が使えるので深夜メンテナンス等で特別な処理を噛ませたい場合には以下のように出来る。 location / { root html; index index.html index.htm; if (-f "/tmp/maintenance" ) { rewrite ^(.*)$ http://172.17.0.3:8000/maintenance.html permanent; } } 上記の例だと /tmp/maintenance にファイルを touch すると... http://172.17.0.3:8000/maintenance.html
ちょっと検索するとrewriteするやり方が結構出てくるのだけど色々見てたらreturnを使う方法がシンプルだったので採用してみた。正規表現とかifとか出てこないのでわかりやすい。 server { listen 80; server_name example.com; return 301 https://$host$request_uri; } server { listen 443; ssl on; # ... }
Apacheだとmod_rewriteで実現するのですが、今回Nginxのrewrite機能を使ってURLの書き換えをしてみます。 公式で見ると、この記事を記載している現在の最新バージョンは1.7.8です。Stable versionは1.6.2ですので、今回は1.6.2を使用します。 Nginxインストール Nginxをリバースプロキシとして設定する 動作確認 Nginxのrewrite設定をする rewriteで正規表現を使用する 動作確認 Nginxインストール インストールでは特に気をつけることはないので簡単に記載します。 Repository追加 [komei@localhost ~]$ wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm [
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS" PHP-FPM って何? Answer PHP: FastCGI Process Manager (FPM) - Manual FPM ( FastCGI Process Manager ) は PHP の FastCGI 実装のひとつで、 主に高負荷のサイトで有用な追加機能を用意しています。 そもそも CGI って何? Common Gateway Interface (CGI) - Wikipedia Common Gateway Interface(コモン・ゲートウェイ・インタフェース、CGI)は、ウェブサーバ上でユーザプログラムを動作させるための仕組み。 現存する多くのウェブ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く