使用Apache或Nginx在一个服务器/IP上托管多个域

本文概述

  • 在Apache中配置虚拟主机以承载多个域
  • 在Nginx中配置虚拟主机以承载多个域
配置Apache/Nginx以托管多个网站
如果你使用的是DigitalOcean等专用服务器或VPS或任何其他服务器, 并计划在单个服务器上托管多个网站, 则可以使用Apache HTTP或Nginx Web服务器来做到这一点。
假设你已经将DNS映射到你的主机, 就像下面两个我映射到DigitalOcean的域一样。
  1. bestflare.com
  2. usefulread.com
在实施此功能之前, 请先了解其工作原理。在单个实例上具有多个网站的概念称为虚拟服务器。虚拟服务器配置是在Web服务器配置中定义的, 并且基于服务器/ IP地址, 请求将转发到相应的文档根目录。
在Apache中配置虚拟主机以承载多个域
  • 登录到Apache HTTP Server
  • 转到apache conf位置。 (在默认安装中–你可以在/etc/httpd/conf/httpd.conf中找到它)
  • 备份httpd.conf文件
  • 像下面那样创建一个VirtualHost容器, 我已经为两个域完成了。
< VirtualHost *:80> ServerAdmin [email  protected]     DocumentRoot /opt/htdocs/bestflare     ServerName bestflare.com     ErrorLog logs/bestflare.com-error_log     CustomLog logs/bestflare.com-access_log common < /VirtualHost> < VirtualHost *:80>     ServerAdmin [email  protected]     DocumentRoot /opt/htdocs/usefulread     ServerName usefulread.com     ErrorLog logs/usefulread.com-error_log     CustomLog logs/usefulread.com-access_log common < /VirtualHost>

注意:根据你的要求更改ServerAdmin, DocumentRoot, ServerName, ErrorLog, CustomLog的值。
  • 重新启动Apache HTTP并测试两个URL。
在Nginx中配置虚拟主机以承载多个域
  • 登录到Nginx服务器
  • 转到virtual.conf位置(在默认位置–你可以在/etc/nginx/conf.d/virtual.conf中找到它)
  • 备份virtual.conf
  • 如下所示, 为两个URL创建服务器块。
server { listen 80;     root /opt/htdocs/bestflare; index index.html index.htm;     server_name bestflare.com;     location/{             try_files $uri $uri/ =404;     } } server {     listen 80;     root /opt/htdocs/usefulread;     index index.html index.htm;     server_name usefulread.com;     location/{             try_files $uri $uri/ =404;     } }

注意:根据你的要求更改root server_name的值。
  • 重新启动Nginx并测试两个URL
【使用Apache或Nginx在一个服务器/IP上托管多个域】那是在单个Web服务器实例(例如Apache或Nginx)中托管多个域的快速指南。网站上线后, 请不要忘记对其进行安全性测试。

    推荐阅读