Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに Webサーバーを使うときに、NginxとApacheって言葉よく耳にしますよね。 ただその違いっていまいち良くわからなくないですか??(僕だけだったらすみません笑) ちなみに僕は「Nginxの方がなんか人気だし良さそうな気がする。。。」という何の根拠もないイメージしか持っていませんでした。 さすがにもう少しちゃんと理解したいと思い、今回はこの違いを記事にしてみました。 ぜひぜひ最後まで読んでみてください〜! ※ちなみにNginxとApacheはそれぞれ、「エンジンエックス」「アパッチ」と読みます。 そもそもNginxとApac
事象 Ubuntu 18.04 apache2 (2.4.29-1ubuntu4.12) で、apache2 プロセスが次のエラーメッセージを吐いて落ちるという連絡を受けて調べました。これはその原因と対処法のメモです。 [mpm_prefork:emerg] [pid 18633] (43)Identifier removed: AH00144: couldn't grab the accept mutex [mpm_prefork:emerg] [pid 18632] (43)Identifier removed: AH00144: couldn't grab the accept mutex [core:alert] [pid 18624] AH00050: Child 18632 returned a Fatal error... Apache is exiting! [:emerg
作ったもの:Yaruki00/ansible_ubuntu_lamp はじめに 今回作ったものはphansibleというサイトで生成できるplaybookを元にしています。と言うかほぼそのままです。 もともとはVagrantを使って仮想UbuntuにAnsibleでLAMPを構築するようになっているのですが、わざわざVagrant部分は削除してます。 仮想環境でやりたいよ、という人はphansibleでポチポチしてplaybookを生成してみてください。 中身はどうなっているの ディレクトリ構成 . ├── inventories │ ├── dev │ └── local ├── playbook.yml ├── roles │ ├── apache │ │ ├── handlers │ │ │ └── main.yml │ │ ├── tasks
はじめに Web Speech APIを使ったアプリを作成しようとしたところ、セキュリティの関係でHTTPではマイクの許可がされませんでした。そこでHTTPS通信できる環境を構築しようと考えました。 SSL通信を行うためにSSLサーバ証明書を購入する必要がありますが、今回は自己証明書で代用します。 CentOS7.5にApache2.4をインストールするところから始めます。 詰まったこと 先に自分が詰まった部分を記載しておきます。 ファイアウォールの設定をしていなかったこと SElinuxによるエラー HTTPサーバの構築 まずはHTTPサーバの環境を構築します。 Apache2.4をインストール yumを使ってインストールします。 CentOS6系は標準ではApache2.2までしかないので注意してください。 /* バージョン確認 */ # yum info httpd ... バージョ
エグゼクティブサマリ PHPの脆弱性CVE-2018-17082はXSSとして報告されているが、現実にはXSSとしての攻撃経路はない。一方、Apacheのmod_cacheによるキャッシュ機能を有効にしているサイトでは、キャッシュ汚染という攻撃を受ける可能性がある。 概要 PHPの現在サポート中のすべてのバージョンについて、XSS脆弱性CVE-2018-17082が修正されました。以下は対応バージョンであり、これより前のすべてのバージョンが影響を受けます。ただし、Apacheとの接続にApache2handlerを用いている場合に限ります。 PHP 5.6.38 PHP 7.0.32 PHP 7.1.22 PHP 7.2.10 PHP 5.5以前も対象であり、これらは脆弱性は修正されていません。 脆弱性を再現させてみる この脆弱性のPoCは、当問題のバグレポートにあります。 PHP ::
前項Apache/SSLサーバ導入手順に続き、自己サーバ証明書を導入して起動するまでの手順を示す。通常はCentOSデフォルトで用意されているlocalhost証明書で充分用が足りるはずなのでこの項は必ずしも必要ではない。 SSL/TLSサーバ証明書の配置場所と作成コマンド https通信を必要とするWebサイト/アプリの開発では以上の作業を行えば充分用が足りる。次は自己サーバ証明書を自作しそれを用いてWebサーバを設定する手続きを練習してみよう。 SSL/TLS証明書を得るには openssl コマンドで秘密鍵と証明書のセットを作成する必要があるが、この作業を簡略化する Makefile が openssl パッケージとともにインストールされているので、ここではこれを使用する。これは /etc/pki/tls/certs に配置されている。 [root@localhost ~]# cd
はじめに 本番環境に近い開発環境を構築してみたいと思い、環境構築した記録の備忘録です。 今回作成した開発環境の各々のversion CentOS 7.2 Git 2.13.0 ruby 2.4.1 rails 5.1.1 apache 2.4.6 mysql 5.7 Vagrantの立ち上げ vagrantとvirtualboxはインストール済みとして進めて行きますので、まだの方はインストールをお願いします。 ということで、vagrantのboxの追加から行なっていきます。 # boxの追加 $ vagrant box add centos72 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box # 作業ディレクトリの作成 $ mkdir ~
This directive enables operating system specific optimizations for a listening socket by the Protocol type. The basic premise is for the kernel to not send a socket to the server process until either data is received or an entire HTTP Request is buffered. Only FreeBSD's Accept Filters, Linux's more primitive TCP_DEFER_ACCEPT, and Windows' optimized AcceptEx() are currently supported. Using none fo
DoS攻撃に対する耐性の実験の前に、ふつーの負荷に耐える、ふつーの設定をすること。 これ、とっても大事です。 そんなApacheの設定の入れ方についてお話します。 といっても、まだちょっといじっていないので、暫定的な、参考程度の値だと思ってください。 目安程度にはなると思うんですけどね。 というかね、ためしにちょっと負荷をかけたら、うちのサーバがダウンしてしまいまして…泣きながら設定を変えました。 なお、環境は、CentOS 5.8 x64 Hyper-V下の仮想マシンでLinuxIC2.1導入済み。 CPUは物理的には E3-1220で、4コアを割り当て。 物理メモリの割り当ては 1GB です。 最初の設定はこんなかんじでした。(今回は、prefork しか変更していないため、それのみ紹介します) <IfModule prefork.c> StartServers 8 MinSpareS
元ネタはこちら。 Apache AddHandler madness all over the place Gentoo Bug 538822 どういうことか 次のような指定は危険である。 AddHandler php5-script .php この時に指定される.phpはファイル名の末尾である必要はない。例えば、 aaa.php.html bbb.php.pngなどもphp5-scriptとして解釈されてしまうのだ。これは.XXX.YYYと複数の拡張子が書かれた場合、.XXXと.YYYもAddHandlerの対象となることが原因。 ちなみに次のような場合にはphp5-scriptとして解釈されない。 ccc.php_foo (.php_fooとして解釈されるため) ddd.php_bar.html (.php_barと.htmlとして解釈されるため)実はこのことはApacheのドキュメン
シンボリックリンク攻撃を防ぐための Apache HTTPD モジュールの解説はこちら: Apache HTTPD: mod_allowfileowner https://fumiyas.github.io/apache/mod-allowfileowner.html 背景 ロリポップの共有 Web サービス下のサイト改ざん事件で、 攻撃手法の一つとして 「他ユーザー所有のファイルへのシンボリックリンクを自分のコンテンツディレクトリ下に作り、Apache HTTPD 経由でアクセスする」手順が利用されたらしい。 参考: http://blog.tokumaru.org/2013/09/symlink-attack.html 当社サービス「ロリポップ!レンタルサーバー」ユーザーサイトへの第三者による大規模攻撃について http://lolipop.jp/info/news/4149/#090
いままでリバースプロキシの設定がよくわかっていなくて、すでに動いているサーバの設定を見よう見まねで使い回してきた。ちゃんと理解しようと思って、マニュアルを読み直したらやっとわかった。設定の方法 (How) がわかったこと以上に、なぜそう書く必要があるかという理由 (Why) を理解できたのが嬉しい。久しぶりに「わかった!」と叫びたくなった。感動を忘れないうちに、思い出せるように、書いておく。 mod_proxy - Apache HTTP サーバ バージョン 2.2 が Apache のプロキシ関連のマニュアル。 mod_proxy を使うことになる。 大事なディレクティブは、 ProxyPass と ProxyPassReverse のふたつ。 ProxyPass これがリバースプロキシをする上でのほとんどすべてのことをやってくれる。実は見慣れた (コピペし慣れた) 設定ではこのディレク
DMZなんかにプロキシサーバを立てて、外部サーバのAPIなんかを呼び出したい場合なんかに、Apacheでフォワードプロキシを立てる。 構成 APサーバ⇒(DMZの)フォワードプロキシサーバ⇒外部APIサーバ この構成にする理由 DMZをはさむことでネットワーク的なセキュリティを確保 取得したコンテンツをキャッシュすることで負荷軽減 httpd.confの設定変更 下記の2つのモジュールをロードする。 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so proxy ディレクティブとして以下を設定。 # ここがOffだとリバースプロキシになるので注意! ProxyRequests On Order deny,allow Deny from all
Apacheのmod_proxyの設定をしたのでメモをする。 今回は、リバースプロキシ+ある特定のパスだけ、除外条件を書いて別サーバーへプロキシした。 インストール takuya@host $ sudo aptitude install apache2 #apache2のインストール takuya@host $ sudo a2enmod proxy #mod_proxyを有効化 takuya@host $ sudo a2enmod proxy_http #httpのプロキシを使う このほかにも proxy_balancer(プロキシ機能を使ったロードバランサ) proxy_ftp ftpサーバーのプロキシ機能がある。 proxy_ajp apache tomcat アプリケーション間通信プロキシなどがある。 proxy_connect #connect メソッド(HTTPSのプロキシで使う
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く