一台云服务器如何部署多个网站和多个站点?
【一台服务器上如何创建多个网站?】
原理分析
本质就是Nginx监听一台服务器的80端口,使用不同的域名映射到不同的Linux文件目录(站点发布的目录)
首先就是多个域名可以解析到同一个ip地址。我们的虚拟主机技术就是利用这一点来实现的。一般情况下,我们标识一个网站是通过网站的ip和端口以及网站项目名称来标识的。
在测试环境下,你可以通过修改成不同的端口,或者修改网站的项目名称来实现在同一台主机下部署多个网站。
但是在真正的生产环境下,我们的网站往往都是采用的80端口,而且都是不带有网站目录路径的。这个时候就可以通过不同的域名来对网站加以区分了。具体的实现过程是这样的,首先通过配置域名解析,将多个域名都解析到同一个主机ip,然后我们在该主机上通过配置来让主机可以将来自不同域名的请求转发给不同的网站程序去处理。主机会截获到请求的请求头信息,然后获取到host这个请求头的值,这个值也就是该请求的来源域名。主机根据所配置的域名与网站程序的对应关系,将来自不同的域名的请求转发给不同的程序去处理。
有了这个映射关系以后,那么主机在接到请求时,首先就会获得该请求来在哪个域名,然后根据配置的域名到网站根目录的对应关系,将该请求转发给对应的网站根目录去进行处理。
这样就实现了一个ip一个80端口上部署无穷多个网站的效果。
具体方案实现
其实很简单,我们以阿里云服务器(这里有阿里云的最新优惠活动,记得领券再买,节省一点是一点)为例。教大家用宝塔面板一键部署,轻松添加多个站点。(在步骤12)
什么是宝塔面板:宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。
使用代理转发软件。比如Nginx反向代理。以前我没有了解nginx的时候,也为这个问题苦恼很久。后面随着知识的学习,发现问题很简单,解决方法也简单,通过Nginx反向代理的方式的能解决你的问题。
就是利用Nginx共同监听同一台云服务器的同一端口(80端口),然后通过不同的域名的方式代理转发,在云服务器下可以指定每个域名访问特定的Linux文件目录,每个文件目录发布你的一个站点。这样就一台服务器就可以发布多个网站站点了。