让我们学习如何配置 Apache 和 Nginx 来托管多个网站。
与共享托管相比,云服务器上的托管站点提供了更大的灵活性。 您可以安装任何您喜欢的东西,按比例放大或缩小,并进行配置以获得更好的性能和成本优化。
如果您运行多个业务站点但不想单独托管它们,则可以利用 Web 服务器中的虚拟服务器。 让我们来看看这个场景。
我有以下两个站点,我想将它们指向我的一个云 VM。
在实施之前,让我们了解它是如何工作的。
在单个 Web 服务器实例上拥有多个网站的概念称为虚拟服务器。 它与 URL 一起在配置文件中定义。 当向定义的 URL 发出请求时,网络服务器将为来自相应文档根目录的流量提供服务。
目录
在 Apache 中配置虚拟主机以托管多个域
- 登录 Apache HTTP 服务器
- 转到 apache conf 位置。 (在默认安装中——你会在这里找到它 /etc/httpd/conf/httpd.conf)
- 备份 httpd.conf 文件
- 创建一个 VirtualHost 容器,就像我为两个域所做的那样。
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /opt/htdocs/lab ServerName lab.techblik.com.com ErrorLog logs/lab.techblik.com.com-error_log CustomLog logs/lab.techblik.com.com-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /opt/htdocs/gf-dev ServerName gf.dev ErrorLog logs/gf.dev-error_log CustomLog logs/gf.dev-access_log common </VirtualHost>
注意:根据您的要求更改 ServerAdmin、DocumentRoot、ServerName、ErrorLog、CustomLog 的值。
- 重新启动 Apache HTTP 并测试这两个 URL。
在 Nginx 中配置虚拟主机以托管多个域
- 登录 Nginx 服务器
- 转到您安装 Nginx 的位置。 (在默认位置——你会在这里找到它/etc/nginx/)
有多种方法可以实现这一目标。 您可以修改 nginx.conf 文件或自定义文件(如果有)。 您还可以在 conf.d 文件夹下创建一个 custom.conf。 如果修改现有文件,请选择适合您的并进行备份。
- 为两个 URL 创建一个服务器块,如下所示。
server { listen 80; root /opt/htdocs/lab; index index.html index.htm; server_name lab.techblik.com.com; location / { try_files $uri $uri/ =404; } } server { listen 80; root /opt/htdocs/gf-dev; index index.html index.htm; server_name gf.dev; location / { try_files $uri $uri/ =404; } }
注意:根据您的要求更改 root、server_name 的值。
- 重新启动 Nginx 并测试两个 URL
不要忘记更新您的 URL 的 DNS 记录以映射到服务器 IP。 完成后,您应该能够访问通过您所做的上述配置获得服务的 URL。
结论
这是在单个 Web 服务器实例(如 Apache 或 Nginx)中托管多个域的快速指南。 一旦您的网站上线,请不要忘记针对安全漏洞对其进行测试。
喜欢阅读这篇文章吗? 与世界分享怎么样?