В настоящее время у меня один веб-сайт отлично работает на моем сервере LAMP (Ubuntu Server 16.04.3).
Теперь я хотел бы добавить еще один на сервер. Поэтому я сначала зашел в файл / etc / apache2 / sites-available и скопировал файл 000-default.conf в тот же каталог, изменив имя на mydomainname.com.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 После перезагрузки сервера я не вижу eno1: 1, который я вставил в файл / etc / network / interfaces
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, а затем eno1: 1 возвращается, когда я делаю ifconfig. Я также могу теперь искать локально для 192.168.11.200, однако он перенаправляет на другой сайт на сервере.
Выход для запуска сервисной сети
failed to start network.service: Unit network.service not found.
Выход для статуса сервисной сети
network.service
Loaded:not-found (Reason: No such file or directory)
Active: inactive (dead)
Outpu для 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
Впоследствии я добавил новую запись в брандмауэр (используя Mikrotik Firewall) для порта 80, чтобы разрешить трафик в HTTP для домен. Я также перезапустил брандмауэр, чтобы быть в безопасности.
Затем я пошел к своему провайдеру домена и создал запись A, указывающую мой статический ip на новый домен, а также создал запись WWW, указывающую мой статический ip на новый домен. С этой стороны все хорошо.
Я погуглил, но, похоже, не могу понять это правильно. Я просмотрел много сообщений и до сих пор не вижу свой новый домен в браузере.
Я сделал это таким образом, когда выкладывал первый веб-сайт на сервер, и все работает правильно.
Если где-то ответили, пожалуйста, ведите меня туда.
1. Вам не нужен второй IP-адрес для обслуживания больше чем одного виртуального хоста на сервере. Что-то больше, поскольку я понял правильно Вас, имеет только один статический IP. Таким образом, если у Вас нет никаких других особых требований, я был бы совет Вы для возвращения изменений, связанных с сетевыми интерфейсами.
2. Это не обязательно, чтобы сделать что-либо с /etc/hosts
. Этот файл служит локальным DNS и если Вы хотите получить доступ к своему доменному имени (FQDN) локально (от самой машины, когда у Вас нет доступа в Интернет или установки DNS), одна новая строка, как следующее достаточно:
127.0.0.1 example.com www.example.com second-example.com www.second-example.com
127.0.0.1 example.com.
- вероятно, точка в конец является скопировать/вставить опечаткой.3. Как виртуальные хосты работают?
На стороне клиента, когда Вы вводите любой FQDN в браузере (например, http://example.com
) это проверяет [1], существует ли запись для этого FQDN в /etc/hosts
. Если там не представлен такая запись, она спрашивает Ваш DNS (обеспеченный в /etc/network/interfaces
или в /etc/resolv.conf
, или DHCP) для IP-адреса требуемого FQDN. И DNS возвращается A
запись для требуемого доменного имени. Затем браузер отправляет Запрос HTTP в обеспеченный IP-адрес. Заголовок запроса содержит IP, полностью определенное доменное имя, и т.д.
На стороне сервера, когда запрос прибывает в IP-адрес сервера на определенном порте, этот запрос будет обработан сервисом, которые слушают этот порт. Значение по умолчанию HTTP
/HTTPS
порт 80
/443
и Apache слушает его - это определяется в /etc/apache2/ports.conf
.
Когда Быстро обрабатывают запрос, он читает заголовок запроса и перенаправляет запрос к виртуальному хосту, которые соответствуют доменному имени в заголовке запроса.
4. Не используйте тег VirtualHost таким образом: <VirtualHost mydomain.com:80>
. Это - опечатка. Вместо этого используйте его, как это по умолчанию: <VirtualHost *:80>
. На самом деле звездочка *
средства все доступные сетевые интерфейсы (IP-адреса, обработанные сервером).
5. Согласно выше конфигурации Вашего Apache должен быть похожим на это:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin admin@example.com
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 admin@second-example.com
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. Если все хорошо работает, можно пойти далее и установить свободный HTTPS (SSL/TLS) сертификат справкой, Давайте зашифруем (Certbot):