1 views

実現する機能

下図のように、自宅に新旧2台のWebServerがあるのですが、インターネットからアクセスするとWebServer01しか表示されません。そこで、WebServer02も表示されるようにしました。WebServerをApacheからNginxに乗り換えたので、設定がわからず苦労しました。

以下は、その備忘録です。

公開の前提条件

※ApacheではなくNginxをWebServerにしていること。CentOS 7.3 で Webサーバーを Apache から Nginx に変更を参考にしてください。
※インターネットプロバイダ契約とドメインの取得がすんでいること。ドメインについては、CentOS 7.0 で自宅サーバーのIPアドレスが変わってもインターネットから常時接続を参考にしてください。

nginx.confの設定

(以下はGNOME端末を用いての手順)
以下の黒背景部分はGNOME端末を表示しています。黄色はキーボードから入力するコマンド(コピペした方が楽ですが、コマンドは覚えられません)、緑はコマンドや処理内容の説明、白は自動表示する部分、赤は注意書きです。

[tu@ufuso ~]$ su - ← ユーザーを管理者に変更
パスワード: ← 管理者のパスワードを入力(表示されません)
最終ログイン: 2017/09/27 (水) 19:28:46 JST日時 pts/27

[root@ufuso ~]# vi /etc/nginx/nginx.conf ← nginx.confの設定
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx; ← 行頭の#を削除して、ユーザーをnginxに指定
worker_processes auto; ← よくわからない場合はautoで設定
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf; ← 公開サイトの数だけconfファイル
を作成するので、この設定は忘れずに

events {
    worker_connections 1024;
    use epoll;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    #機能やレベルの設定

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    gzip                on;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    #server名を指定しない場合に適用される原則的設定
   server {
        listen       80;
        listen       [::]:80;
        #通信の暗号化(ssl)。rainloopはhttps://接続なので必要
        listen       443 ssl; ← 暗号化の処理が済んでいない場合は不要
        #Webサーバーの指定
        server_name  ufuso.dip.jp; ← WebServer01のDomain名
        #Webフォルダの指定
        root         /var/www/html; ← WebServer01のドキュメントルート
        index index.php index.html index.htm;
        #暗号化方式の指定
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #サーバのSSL暗号設定をクライアントのそれより優先
        ssl_prefer_server_ciphers on;
        #暗号技術の組み合わせを指定
        ssl_ciphers ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL!eNull:!EXPORT:!DES:!3DES:!MD5:!DSS;
        #自己証明書の場所を入力(事例はmod-sslの場合)
        ssl_certificate      /etc/pki/tls/certs/server.crt; ← 暗号化処理が
済んでいること
        #秘密鍵の場所を入力(事例はmod-sslの場合)
        ssl_certificate_key  /etc/pki/tls/certs/server.key; ← 暗号化処理が
済んでいること

        #phpを使うための設定。fastcgi経由なのでその設定がメイン
        location ~ \.php$ {
            include /etc/nginx/fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

    server {
        listen 80;
        listen 443 ssl;
        server_name ufuso.org; ← WebServer02のDomain名
        location / {
            proxy_pass http://ufuso.org; ← WebServer02にアクセスがあれば、
02のサイトに転送して表示
        }
    }
}


設定の確認作業

[tu@ufuso ~]$ nginx -t ← 設定の自動チェック
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok ← 成功
nginx: configuration file /etc/nginx/nginx.conf test is successful ← 成功
 #失敗している場合には、失敗しているconfファイル名と業番号を表示。下の例示では、
phpmyadmin.confの2行目の "listen"の"off" が誤り

nginx: [emerg] host not found in "off" of the "listen" directive in
/etc/nginx/conf.d/phpmyadmin.conf:2

[root@ufuso ~]# systemctl restart nginx ← nginxを再起動

自宅外のネットワークから各サイトへアクセスして、トップページが表示されれば成功。自宅からですとスマホの電話回線で確認できます。自宅から電話回線で確認したのが以下の各図です。wifiはoffにして行います。(各画像はクリックすると拡大表示)

WebServer01にhttp://ufuso.dip.jpでアクセスした画像

WebServer01にhttps://ufuso.dip.jpでアクセスした画像

WebServer02にhttp://ufuso.orgでアクセスした画像

WebServer02にhttps://ufuso.orgでアクセスした画像。成功しているように見えるが、鍵マークが表示されないので暗号化は失敗。レイアウトも崩れている。原因究明は気が向いたら、でご容赦を

以上

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください