多个站点的 Linux 服务器子域

Posted

技术标签:

【中文标题】多个站点的 Linux 服务器子域【英文标题】:Linux server subdomains for multiple sites 【发布时间】:2016-04-09 13:36:44 【问题描述】:

我想在使用 Apache 服务器的 Linux 机器上托管 2 个网站。由于此时我无法获取域名,因此我通过 IP 访问服务器,因为我还不需要拥有一个。 第一个站点由几个 html 页面组成,位于 /var/hostroot/lifeonearth/all files here,另一个站点由位于 /var/hostroot/webDarts/all files here 的几个 php 页面组成。 默认情况下,当我转到我的 IP 地址时,它会将我带到默认的“您的 Apache 服务器正在运行”页面。所以从这里开始,我该如何做到这一点,以便我可以通过某种子域访问每个站点,例如lifeonearth.(my IP)webDarts.(my IP),或者,我应该通过不同的端口访问它们吗?如果是后者,我该怎么办?

【问题讨论】:

在给你答案之前,让我澄清一下我的疑惑。您打算在一台 Linux 机器上托管 2 个网站,对吗?两者都应该可以同时访问。对吗? 那是实时服务器吗? 我不这么认为,想想看,两个站点并没有必要同时工作,我只是希望能够通过IP地址分别访问它们中的任何一个 请看看我的回答,让我知道您需要的是什么 【参考方案1】:

我们有 2 个网站名称。

1. example1.test.local  (/var/www/example1) 
2. example2.test.local (/var/www/example2)

现在让我们在/etc/apache2/sites-available 中创建两个名为example1example2 的文件。

example1 文件如下所示

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/example1
ServerName example1.test.local
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/example1>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

以同样的方式创建另一个名为example2的文件并修改以下行

DocumentRoot /var/www/example2
ServerName example2.test.local

<Directory /var/www/example2>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

文件的其余部分将与 example1. 相同

然后启用这两个站点

a2ensite example1
a2ensite example2

然后重启apache服务。

现在我们要做DNS指向

如果您的 Linux 机器是 LOCAL,则转到您要访问这些网站的 Windows 机器并打开以下文件 C:\Windows\System32\drivers\etc\hosts

并提及您的 ip 和网站名称

192.168.249.101 example1.test.local
192.168.249.101 example2.test.local

就是这样!如果您发现任何困难,请告诉我。

我在最后复制了这个场景,它对我有用。希望它对你有用!

【讨论】:

认为它有效。我如何在本地网络之外访问它们,或者我读错了什么 如果它是实时服务器,那么您必须为该 Ip 进行 DNS 指向 意思是,如果我没有域名就不行? 请查看此链接***.com/questions/9454503/…

以上是关于多个站点的 Linux 服务器子域的主要内容,如果未能解决你的问题,请参考以下文章

linux dns子域授权 split分离解析 缓存dns服务器

在多个子域上共享 Django 会话的缺点

iis 中具有多个子域的 asp.net mvc 站点

我可以将一个站点的子域指向同一服务器/IP上另一个站点的根吗

IIS 站点部署多级域名

配置nginx服务器 —— Nginx添加多个二级子域名