現在、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サイトを設置するときにこのようにして、すべてが正常に機能するようにしました。
これがどこかで回答された場合は、そこに案内してください。
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.com
)itチェックにFQDNを入力すると[1] /etc/hosts
にこのFQDNのレコードがあるかどうか。そのようなレコードが提示されていない場合、itはDNSに(/etc/network/interfaces
または/etc/resolv.conf
で、またはDHCPで提供されて)IPアドレスを要求します要求されたFQDN。そして、DNSは、要求されたドメイン名に対して A
record を返します。次に、ブラウザーは指定されたIPアドレスにHTTP要求を送信します。要求のヘッダーには、IP、完全修飾ドメイン名、 etc が含まれています。
サーバー側では、特定のポートでサーバーの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)証明書をセットアップできます。