我有一个Linux服务器(VPS),它有两个域和两个web应用程序,一个是用NodeJS
(聊天应用程序)编程的,另一个是PHP
。
所以,我想做的是在同一台服务器上的不同域中运行这两个应用程序。我尝试过很多方法来实现这一点,但所有这些方法都是在单域和多URL路径上工作的,比如:https://example.com
&https://example.com/node
。
但我想要的是这样的:https://nodeappexample.com
&https://apacheappexample.com
。
问候语
最佳答案
如果您使用的是DigitalOcean或任何其他服务器之类的专用或VP,并且计划在一台服务器上托管多个网站,那么下面介绍如何使用ApacheHTTP或NginxWeb服务器进行此操作。
这假设您已经将DNS映射到您的主机,就像下面两个我映射到DigitalOcean的域一样。
bestflare.com
usefulread.com
在你实现这个之前,给你一个想法它是如何工作的。在一个实例上有多个网站的概念称为虚拟服务器。虚拟服务器配置是在web服务器配置中定义的,基于服务器/IP地址,请求被转发到相应的文档根目录。
在Apache中配置虚拟主机以承载多个域
登录到Apache HTTP服务器
转到apache conf位置。(在默认安装中,您可以在/etc/httpd/conf/httpd.conf中找到它)
备份httpd.conf文件
创建一个VirtualHost容器,如下我为两个域所做的。
<VirtualHost *:80>
ServerAdmin hello@chandank.com
DocumentRoot /opt/htdocs/bestflare
ServerName bestflare.com
ErrorLog logs/bestflare.com-error_log
CustomLog logs/bestflare.com-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin hello@chandank.com
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;
}
}
注意:根据您的要求更改根、服务器名的值。
重新启动Nginx并测试两个URL
这是在单个web服务器实例(如Apache或Nginx)中托管多个域的快速指南。一旦你的网站上线,不要忘记测试它的安全漏洞。