web-dev-qa-db-ja.com

追加の仮想ホストUbuntu Server 16.04.3の作成

現在、LAMPサーバー(Ubuntu Server 16.04.3)で完全に実行されているWebサイトが1つあります。
サーバーに別のものを追加したいと思います。そのため、最初に/ etc/Apache2/sites-availableファイルに移動し、名前をmydomainname.com.confに変更しながら000-default.confファイルを同じディレクトリにコピーしました。
次に、このファイルを次のように編集しました。

<VirtualHost mydomain.com:80>
   ServerName mydomain.com
   ServerAlias www.mydomain.com
   ServerAdmin admin.mydomain.com
   DocumentRoot /var/www/mydomain.com/public_html
   ErrorLog ${Apache_LOG_DIR}/error.log
   CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

次に、コマンドa2ensite mydomain.com.confを入力しました
Apacheを再起動したより。
次に、mkdir /var/www/mydomain.com/public.html(アクセス許可も変更しました)
この後、/ etc/hostsファイルを編集して追加しました。

127.0.0.1 mydomain.com.
myinternalIP mydomain.com 
myStaticIp mydomain.com 

次に、新しいサイトの内部IPと、新しいサイトのパブリックIPをここに追加しました。
次に、/ etc/network/interfacesファイルに移動しました。

The loopback network interface
auto lo
iface lo inet loopback

- The primary network interface(this is for the virtual Host already on the server)

auto eno1
iface eno1 inet static
     address 192.168.11.199
     netmask 255.255.255.0
     network 192.168.11.0
     broadcast 192.168.11.255
     gateway 192.168.11.59
     dns-nameservers 8.8.8.8
     dns-search currentsite.com

-Second IP interface(This is for the new virtual Host)<br>
iface eno1:1 inet static
   address 192.168.11.200
   netmask 255.255.255.0

Ifconfigを実行したときの出力:

eno1: Link encap: Ethernet HWaddr xx:xx:xx:xx:xx:xx 
      inet addr:192.168.11.199 Bcast:192.168.11.255 Mask:255.255.255.0 
      inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      TX packets:6085 errors:0 dropped:0 overruns:0 carrier:364 
      collisions:381 txqueuelen:1000 
      RX bytes:563896 (563.8 KB) TX bytes:5541282 (5.5 MB) 
      Interrupt:20 Memory:f7c00000-f7c20000

eno1:1 Link encap: Ethernet HWaddr xx:xx:xx:xx:xx:xx 
       inet addr:192.168.11.200 Bcast:192.168.11.255 Mask:255.255.255.0 
       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
       Interrupt:20 Memory:f7c00000-f7c20000

lo    Link encap:Local Loopback 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet6 addr: ::1/128 Scope:Host 
      UP LOOPBACK RUNNING MTU:65536 Metric:1 
      RX packets:9856 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:9856 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1 
      RX bytes:731051 (731.0 KB) TX bytes:731051 (731.0 KB) 

サーバーを再起動した後のifconfigの出力-/ etc/network/interfacesファイルに挿入したeno1:1が表示されない

eno1: Link encap: Ethernet HWaddr xx:xx:xx:xx:xx:xx 
      inet addr:192.168.11.199 Bcast:192.168.11.255 Mask:255.255.255.0 
      inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:77 errors:0 dropped:0 overruns:0
      TX packets:76 errors:0 dropped:0 overruns:0 carrier:0  
      collisions:0 txqueuelen:1000 
      RX bytes:8760 (8.7 KB) TX bytes:10725 (10.7 KB) 
      Interrupt:20 Memory:f7c00000-f7c20000

 lo   Link encap:Local Loopback 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet6 addr: ::1/128 Scope:Host 
      UP LOOPBACK RUNNING MTU:65536 Metric:1 
      RX packets:190 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:190 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1 
      RX bytes:14760 (14.7 KB) TX bytes:14760 (14.7 KB) 


その後、ifup -v eno1:1を実行すると、ifconfigを実行するとeno1:1が再び表示されます。 192.168.11.200をローカルで検索することもできますが、サーバー上の他のWebサイトにリダイレクトされます。


サービスネットワーク開始の出力

failed to start network.service: Unit network.service not found.


サービスネットワークステータスの出力

network.service
 Loaded:not-found (Reason: No such file or directory)
 Active: inactive (dead)

IPルートの出力

default via 192.168.11.59 dev eno1 onlink 
192.168.11.0/24 dev eno1 proto kernel scope link src 192.168.11.199

その後、ポート80のファイアウォールに(Mikrotik Firewallを使用して)新しいエントリを追加して、ドメインのHTTPへのトラフィックを許可します。また、安全のためにファイアウォールを再起動しました。

次に、ドメインプロバイダーに移動して、静的IPを新しいドメインにポイントするAレコードを作成し、静的IPを新しいドメインにポイントするWWWレコードも作成しました。すべてはこの面で良いです。
グーグルで検索しましたが、これを正しく実行できないようです。多くの投稿を行ったが、ブラウザから新しいドメインが表示されない。
サーバー上に最初のWebサイトを設置するときにこのようにして、すべてが正常に機能するようにしました。
これがどこかで回答された場合は、そこに案内してください。

2
Deez Nutz

1。サーバー上の複数の仮想ホストに対応するために、2番目のIPアドレスは必要ありません。私が正しく理解したように、静的IPは1つしかありません。そのため、他に特別な要件がない場合は、ネットワークインターフェイスに関連する変更を元に戻すことをお勧めします。

2。/etc/hostsで何かをすることは必須ではありません。このファイルはlocalDNSとして機能し、ドメイン名(FQDN)locally(マシン自体から、インターネットにアクセスしたり、DNSを設定したりしていない場合)次の行で十分であるため、新しい行が1つあります。

127.0.0.1 example.com www.example.com second-example.com www.second-example.com
  • 質問内に127.0.0.1 example.com.と書かれていることに注意してください-おそらく最後のドットはタイプミスのコピー/ペーストです。

仮想ホストの仕組み

クライアント側では、browser(たとえば、http://example.comitチェックにFQDNを入力すると[1] /etc/hostsにこのFQDNのレコードがあるかどうか。そのようなレコードが提示されていない場合、itはDNSに(/etc/network/interfacesまたは/etc/resolv.confで、またはDHCPで提供されて)IPアドレスを要求します要求されたFQDN。そして、DNSは、要求されたドメイン名に対して A record を返します。次に、ブラウザーは指定されたIPアドレスにHTTP要求を送信します。要求のヘッダーには、IP、完全修飾ドメイン名、 etc が含まれています。

  • [1]正確にはブラウザではありませんが、答えを拡張したくありません。

サーバー側では、特定のポートでサーバーのIPアドレスに要求が到着すると、この要求はこのポートをリッスンするサービスによって処理されます。デフォルトのHTTP/HTTPSポートは80/443であり、Apacheはそれをリッスンします-これは/etc/Apache2/ports.conf

Apaceがリクエストを処理するとき、リクエストヘッダーを読み取り、リクエストヘッダー内のドメイン名に対応する仮想ホストにリクエストをリダイレクトします。

4。この方法でVirtualHostタグを使用しないでください:<VirtualHost mydomain.com:80>。これは typo です。代わりに、デフォルトの<VirtualHost *:80>をそのまま使用します。実際、アスタリスク*は、使用可能なすべてのネットワークインターフェイス(サーバーによって処理されるIPアドレス)を意味します。

5。上記によると、Apacheの構成は次のようになります。

<VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com
   ServerAdmin [email protected]

   DocumentRoot "/var/www/example.com/public_html"

   ErrorLog ${Apache_LOG_DIR}/example.com.error.log
   CustomLog ${Apache_LOG_DIR}/example.com.access.log combined
</VirtualHost>

<VirtualHost *:80>
   ServerName second-example.com
   ServerAlias www.second-example.com
   ServerAdmin [email protected]

   DocumentRoot "/var/www/second-example.com/public_html"

   ErrorLog ${Apache_LOG_DIR}/second-example.com.error.log
   CustomLog ${Apache_LOG_DIR}/second-example.com.access.log combined
</VirtualHost>
  • 通常、異なる仮想ホストの定義は、.conf/a2ensiteになるように別々のa2dissiteファイルに配置されます。

  • ログファイルを分離することは必須ではありません(例に示されています)。これは別のアイデアです。

  • 質問はServerAdmin admin.example.comと書かれており、このディレクティブを電子メールで提供する必要があります。

6。すべてが正常に機能する場合、さらに進んで、Let's encript(Certbot)の助けを借りて無料のHTTPS(SSL/TLS)証明書をセットアップできます。

3
pa4080