エックスサーバーの公式ページを見ると、WebサーバーにNginxを採用したことで大量の同時アクセスに強いと書かれています。
Webサーバーに強い人はこれを見て、「じゃあ.htaccessを使えないんだな」と思った人も多いはず。
僕もそう思っていました。
ネットで紹介されているリダイレクト設定や、国外からの閲覧禁止などのアクセス制御方法は、ほとんどがhtaccessを使用することを前提としたものです。
しかしNginxは、.htaccessを使えません。
つまり何かしようと思っても、その情報のほとんどが役に立たないのです。
素人がNginxに手を出してはいけません。
ところがエックスサーバーのコントロールパネルを見ると…

『.htaccessの編集』機能がある!!
動作しないはずなのに、なぜあるのか?
疑問に感じたので、調べてみました。
エックスサーバーは本当にNginxなのか?
まずは本当にエックスサーバーはNginxで動作しているのか確認してみます。
コマンドプロンプトから、curlコマンドを実行します。
> curl -I https://ドメイン.com
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 13 Sep 2019 06:30:15 GMT
Content-Type: text/html
Content-Length: 22345
Connection: keep-alive
Vary: Accept-Encoding
Last-Modified: Thu, 05 Sep 2019 09:16:27 GMT
ETag: "5749-591cac6c62844"
Cache-Control: max-age=10
Expires: Fri, 13 Sep 2019 06:30:25 GMT
Vary: User-Agent
Accept-Ranges: bytes
Server欄にnginxと表示されました。
次に、エックスサーバーにSSHでログインして、Nginxのプロセスを確認してみます。
$ ps ax | grep nginx 1047 pts/0 S+ 0:00 grep --color=auto nginx 18291 ? Ss 5:28 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf 186113 ? Sl 0:00 nginx: worker process 186114 ? Sl 0:00 nginx: worker process ・ ・ ・ 187400 ? Sl 0:08 nginx: worker process 187433 ? S 0:00 nginx: cache manager process
Nginxは一つのマスタープロセスと複数のワーカープロセスで処理されています。
cache managerは、保存したキャッシュが最大容量を超えていないかなどの状態を、定期的にチェックするプロセスです。
どうやらエックスサーバーでは、本当にNginxが動作しているようです。
エックスサーバーでApacheが起動している可能性
mixhostなどのLiteSpeed Webサーバーでも.htaccessを使用できますが、本家本元はApacheというWebサーバーです。
そこため、「もしかしたらエックスサーバーはApacheが動いているかもしれない」という仮説をたてることができます。
ということで、Apacheが動作していないかSSHでログインして確認してみます。
$ service httpd status
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/httpd.service.d
└─override.conf
どうやらエックスサーバーは、Apacheとnginxが共存しているようです。
ではWordPressは、Apacheとnginxのどちらが処理しているのかというと…
WordPressは、PHPというプログラム言語で動いています。
そこでphpinfo()というphpの情報をすべて表示するコマンド(関数)を使用した結果、次のように表示されました。

_SERVER["SERVER_SOFTWARE"] Apache
SERVER_SOFTWAREは、Webサーバーのソフト名やバージョンをあらわします。
つまり、WordPressを動かしているPHPはApache上で動作しているということです。
そして、Nginxなはずのエックスサーバーで.htaccessが有効な理由は、裏でApacheが動いているからということでした。
まとめ
Nginx本来の性能を活かすなら、WordPressの処理もNginxでおこなう方が効率がいいです。
しかしサーバーのカスタマイズをネットで調べると.htaccessを変更することが前提となっていることがほとんどです。
レンタルサーバーは一般の人が使用するのが前提と考えると、.htaccessが使用できないのは、マイナス要素といえます。
そのため、Nginx+Apacheという環境が妥協点だったのかもしれませんね。
■Googleで他サイト検索
■僕がおススメするアフィリエイト教材
■マーケティング施策ツール





こんにちは。