8回目-8.Nginxでバーチャルホスト設定

さくらVPSCentOS 7 2週間無料のお試し期間 8回目

一覧

 状態:-  閲覧数:521  投稿日:2018-03-12  更新日:2018-03-22

内容


Nginxでバーチャルホスト設定
指定ドメイン以外 の振り分け
Nginxで「hoge.example.com」は表示されるのに、「www.example.com」は表示されない
最終的に

Nginxでバーチャルホスト設定

 閲覧数:121 投稿日:2018-03-12 更新日:2018-03-12 

サイトa


index.phpファイル作成
$ sudo -s
[sudo] password for ★★:

# mkdir -p /var/www/html/w4c.work/a.w4c.work
# chown -R ★★:★★ /var/www/html/w4c.work/a.w4c.work
# vi /var/www/html/w4c.work/a.w4c.work/index.php
<?php echo 'a'; ?>


設定ファイル作成
# cd /etc/nginx/conf.d
# vi a.conf
server {
   listen       80;
   server_name  a.w4c.work;
   root   /var/www/html/w4c.work/a.w4c.work;
   index  index.php index.html index.htm;
   #charset koi8-r;
   #access_log  /var/log/nginx/host.access.log  main;

   location / {
       #root   /usr/share/nginx/html;
       #index  index.html index.htm;
       try_files $uri $uri/ /index.php?$query_string;
   }

   #error_page  404              /404.html;

   # 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;
   }

   # proxy the PHP scripts to Apache listening on 127.0.0.1:80
   #
   #location ~ \.php$ {
   #    proxy_pass   http://127.0.0.1;
   #}

   # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
   #
   #location ~ \.php$ {
   #    root           html;
   #    fastcgi_pass   127.0.0.1:9000;
   #    fastcgi_index  index.php;
   #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
   #    include        fastcgi_params;
   #}

   # deny access to .htaccess files, if Apache's document root
   # concurs with nginx's one
   #
   #location ~ /\.ht {
   #    deny  all;
   #}

   location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include fastcgi_params;
   }

}


Nginx再起動
・「.confファイル」設定変更を反映
# systemctl restart nginx.service

ブラウザで確認
・http://a.w4c.work/
a

サイトb


index.phpファイル作成
# mkdir -p /var/www/html/w4c.work/b.w4c.work
# chown -R ★★:★★ /var/www/html/w4c.work/b.w4c.work
# vi /var/www/html/w4c.work/b.w4c.work/index.php
<?php echo 'b'; ?>


設定ファイル作成
# cd /etc/nginx/conf.d
# vi b.conf
server {
   listen       80;
   server_name  b.w4c.work;
   root   /var/www/html/w4c.work/b.w4c.work;
   index  index.php index.html index.htm;
   #charset koi8-r;
   #access_log  /var/log/nginx/host.access.log  main;

   location / {
       #root   /usr/share/nginx/html;
       #index  index.html index.htm;
       try_files $uri $uri/ /index.php?$query_string;
   }

   #error_page  404              /404.html;

   # 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;
   }

   # proxy the PHP scripts to Apache listening on 127.0.0.1:80
   #
   #location ~ \.php$ {
   #    proxy_pass   http://127.0.0.1;
   #}

   # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
   #
   #location ~ \.php$ {
   #    root           html;
   #    fastcgi_pass   127.0.0.1:9000;
   #    fastcgi_index  index.php;
   #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
   #    include        fastcgi_params;
   #}

   # deny access to .htaccess files, if Apache's document root
   # concurs with nginx's one
   #
   #location ~ /\.ht {
   #    deny  all;
   #}

   location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include fastcgi_params;
   }

}


Nginx再起動
・「.confファイル」設定変更を反映
# systemctl restart nginx.service

ブラウザで確認
・http://b.w4c.work/
b

その他


ブラウザで確認
・http://IPアドレス/
a

・http://www.w4c.work/
このサイトにアクセスできません
www.w4c.work からの応答時間が長すぎます。
w4c work を Google で検索してください
ERR_CONNECTION_TIMED_OUT
・これが良くわからない
前回は下記表示だった
a


指定ドメイン以外 の振り分け

 閲覧数:125 投稿日:2018-03-12 更新日:2018-03-12 

やりたいこと


ブラウザで確認
・http://a.w4c.work/
a

・http://b.w4c.work/
b

・上記(明示的に指定しているドメイン)以外
・http://www.w4c.work/
・http://IPアドレス/
hoge

仕様


一番最初に記述されているものではない(複数設定したため一番最初に読み込まれるかどうか分からない)serverディレクティブをデフォルトで読み込まれるように指定するには?
・default_serverを指定すれば良い
server {
   listen       80 default_server;

作業開始


# cd /etc/nginx/conf.d
# vi default.conf
・「listen       80」の後に「default_server」追記
server {
   listen       80 default_server;


Nginx再起動
・「.confファイル」設定変更を反映
# systemctl restart nginx.service

ブラウザで確認
・http://a.w4c.work/
a

・http://b.w4c.work/
b

・上記(明示的に指定しているドメイン)以外
・http://c.w4c.work/
・http://IPアドレス/
hoge

・http://www.w4c.work/
・なぜ?
このサイトにアクセスできません
www.w4c.work からの応答時間が長すぎます。
w4c work を Google で検索してください
ERR_CONNECTION_TIMED_OUT




Nginxで「hoge.example.com」は表示されるのに、「www.example.com」は表示されない

 閲覧数:151 投稿日:2018-03-12 更新日:2018-03-12 

http://www.w4c.work/にだけアクセス出来ない


最終的には(一定時間経過後自動的に)解決したが、原因不明
・案1.www.conf設定を変更した際、php-fpmを再起動したがNginxは再起動しなかったため?
・案2.DNS設定の反映に時間がかかったため?(以前のキャッシュが残っていた? ブラウザキャッシュは削除したつもりだったけど、一度ブラウザを落として試したほうが良かったかもしれない)

パニクっていた時のQ


Nginxで「hoge.example.com」は表示されるのに「www.example.com」は表示されない

環境
・CentOS7
・Nginx

ネームサーバのDNSレコード
*.example.org
*.example.com

ブラウザで表示OK
・www.example.org
・hoge.example.org
・hoge.example.com
・IPアドレス

ブラウザで表示NG
・www.example.com
このサイトにアクセスできません

Q1.ネームサーバのDNSレコードについて
・「*.example.com」の指定内容に「www.example.com」も含まれるでしょうか?

Q2.「www.example.com」だけダメな理由として考えられることは?
・「/var/log/nginx/error.log」のサイズが0だったのですが、nginxのエラーではないということでしょうか?

Nginxで「hoge.example.com」は表示されるのに「www.example.com」は表示されない

迷走中に何をやっていたか履歴


エラーファイルは存在していた
・「error.log」ではなく「error.log-20180312」として生成されていた
# ls -la /var/log/nginx    
                                                                                             
合計 52
drwxr-xr-x   2 root  root    90  3月 12 04:24 .
drwxr-xr-x. 11 root  root  4096  3月 11 12:30 ..
-rw-r-----   1 nginx adm   8781  3月 12 12:01 access.log
-rw-r-----   1 nginx adm  13841  3月 12 00:19 access.log-20180312
-rw-r-----   1 nginx adm      0  3月 12 04:24 error.log
-rw-r-----   1 nginx adm  16501  3月 11 16:16 error.log-20180312


# cat /var/log/nginx/error.log-20180312
//中略
2018/03/11 13:11:04 [crit] 10680#10680: *40 connect() to unix:/var/run/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: IPアドレス2, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "IPアドレス1"
2018/03/11 13:11:05 [crit] 10680#10680: *40 connect() to unix:/var/run/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: IPアドレス2, server: localhost, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "IPアドレス1", referrer: "http://IPアドレス1/"
2018/03/11 16:16:24 [error] 10680#10680: *55 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: IPアドレス3, server: localhost, request: "GET //phpMyAdmin/scripts/setup.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "IPアドレス1"
2018/03/11 16:16:24 [error] 10680#10680: *57 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: IPアドレス3, server: localhost, request: "GET //phpmyadmin/scripts/setup.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "IPアドレス1"
2018/03/11 16:16:25 [error] 10680#10680: *59 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: IPアドレス3, server: localhost, request: "GET //pma/scripts/setup.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "IPアドレス1"
2018/03/11 16:16:25 [error] 10680#10680: *61 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: IPアドレス3, server: localhost, request: "GET //myadmin/scripts/setup.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "IPアドレス1"
2018/03/11 16:16:26 [error] 10680#10680: *63 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: IPアドレス3, server: localhost, request: "GET //MyAdmin/scripts/setup.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "IPアドレス1"


FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
・php-fpm関連のエラー
・対策として書いている内容は既に記載済
・ここで昨日、www.conf設定を変更した際「php-fpm再起動」のみ実行したことを思い出し、「Nginx再起動」

結局、原因は不明
・確認したら、「www.example.com」にもアクセスできることが分かった
・但し、「Nginx再起動」したためか、一定時間経過したためか、詳細は不明

エラーログの記録日時合っているの?
「/var/log/nginx/error.log」のファイル内容に記載されている日時が合っているか確かめたい


最終的に

 閲覧数:109 投稿日:2018-03-12 更新日:2018-03-12 
ブラウザで確認
・http://a.w4c.work/
a

・http://b.w4c.work/
b

・上記(明示的に指定しているドメイン)以外
・http://c.w4c.work/
・http://www.w4c.work/
・http://IPアドレス/
hoge



8回目-7.PHP 7.0.27 インストール

8回目-9.Let's Encryptの無料SSL導入



週間人気ページランキング / 9-14 → 9-20
順位 ページタイトル抜粋 アクセス数
1 PHPのmb_send_mail関数でメール送信できない | メール処理システム 29
2 Nginx設定。エラーログレベル | Nginx(Webサーバ) 21
3 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 11
4 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 10
5 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 9
6 PHP Version 7.1.2 php-mecabエクステンション対応 / PHP 7.0.14 からのアップグレード  | MeCab(形態素解析) 8
6 ソースからビルドしたPython 2.7.3 アンインストール失敗 | Python(プログラミング言語) 8
7 touch コマンド / viコマンド。新規ファイル作成時の違い | Linuxコマンド 7
7 さくらVPS0 7
8 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 6
8 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 6
9 PHPファイルでchmodエラー | PHP(プログラミング言語) 5
9 設定 2019/1/22 / 一般ユーザがmailコマンドでメール送信 / 管理者がmailコマンドでメール送信 5
10 Postfix | メール処理システム 4
10 CentOSでcpコマンド動作確認するためには、Control + T ではなく、 -v オプションを使用 | cp(Linuxコマンド) 4
10 499 (Request has been forbidden by antivirus) | HTTP(通信プロトコル) 4
10 tar | Linuxコマンド 4
10 Python 3.6 インストール / make altinstall | Python(プログラミング言語) 4
10 「CentOS6」から「CentOS7」への移行 | CentOS 7 (CentOS) 4
10 echo と cat の違い 4
2021/9/21 1:01 更新