前言 nginx可以基于ip地址配置虚拟主机,还可以基于端口和域名来配置虚拟主机,框架步骤都是一样的,只是配置代码有些许不同,这里只详细介绍基于ip地址的配置方法,文章最后,我会附上基于端口和域名来配置虚拟主机的代码,以供参考
nginx配置虚拟主机的好处服务器资源优化:在一台服务器上托管多个网站,充分利用服务器的硬件资源,避免为每个网站单独部署服务器,从而降低成本。 提高服务器利用率:使服务器的处理能力和存储空间得到更充分的利用,避免资源闲置。 增强安全性:不同虚拟主机之间相互隔离,降低了一个网站受到攻击而影响其他网站的风险。 灵活的配置管理:可以为每个虚拟主机定制独特的配置,如访问控制规则、缓存策略、错误处理等,满足各个网站的特定需求。 便于维护和扩展:集中管理虚拟主机的配置,使得添加新的网站或修改现有网站的配置更加便捷。当需要扩展服务器容量时,也能更轻松地进行调整。 节省 IP 资源:无需为每个网站分配独立的 IP 地址,通过域名就能区分不同的网站
配置步骤
1.配置新的网络ip及接口[root@localhost ~]# ifconfig ens33:1 192.168.198.140 netmask 255.255.255.0 broadcast 192.168.198.255 up[root@localhost ~]# ifconfig ens33:2 192.168.198.141 netmask 255.255.255.0 broadcast 192.168.198.255 up[root@localhost ~]# ifconfig #查看网络接口信息 
释: 可以看到,新添加了两个网络接口和ip地址,想配置多个,修改上述命令红色字体的编号。这种方法只是临时的,重启后会失效,若要永久生效,需要在相应的网络配置文件中进行设置
2.基于ip地址的虚拟主机的代码配置[root@localhost conf]# mkdir extra #在主配置文件nginx.conf的同级目录conf下创建extra目录 
[root@localhost extra]# touch 140.conf [root@localhost extra]# touch 141.conf #在extra目录下创建两个文件,用来存放基于ip的虚拟主机配置 
#在140.conf下添加如上代码 
释: 在141.conf下添加如上代码,当用户通过 192.168.198.141 访问该服务器的 80 端口时,Nginx 会从 /www/141 目录提供服务,并优先寻找 index.html 或 index.htm 作为默认页面
3.修改nginx.conf主配置文件
释:在http()标签中的最后一行,添加如下参数,让extra目录下的配置参数,导入到nginx.conf中,让nginx主配置文件,看起来简洁清晰 ,不写绝对路径是因为extra文件夹和nginx.conf文件夹为相对,都在同一文件夹下 
释:修改本机地址135的server配置参数,如上图所示当192.168.198.135的请求到来,让nginx去/www/135文件夹下寻找资料
4.检查nginx语法[root@localhost ~]# nginx -t 
5.重新加载nginx配置[root@localhost ~]# nginx -s reload
6.创建网站根目录,并添加站点内容 在根下创建www目录,在www下创建135 140 141 目录,分别用来存放各个服务器站点的内容 [root@localhost www]# echo "i'm 135,hello man." > /www/135/index.html[root@localhost www]# echo "i'm 140,hello man." > /www/140/index.html[root@localhost www]# echo "i'm 141,hello man." > /www/141/index.html#在各站点分别存入内容
7.测试

释: 打开浏览器,输入自己搭建的服务器ip地址,查看是否显示自己添加的站点内容
nginx基于域名的配置示例
释: 在上述配置中,定义了两个虚拟主机。每个虚拟主机的配置如下: listen 80 :表示监听 80 端口。server_name :指定虚拟主机对应的域名,如 www.example1.com 和 www.example2.com ,你需要将其修改为你实际拥有的域名。root :指定该域名对应的网站根目录,即存放网站文件的路径。location / {... } :用于进一步配置该虚拟主机的行为,这里使用 try_files 指令来尝试提供请求的文件,如果找不到则返回 404 错误。
nginx基于端口的配置示例
释: 在上述配置中,创建了两个基于不同端口的虚拟主机。 - 第一个虚拟主机监听 8080 端口,网站根目录为
/var/www/port8080 。 - 第二个虚拟主机监听 8081 端口,网站根目录为
/var/www/port8081 。
您需要将上述示例中的网站根目录路径修改为您实际存放网站文件的路径。 保存配置文件后,重新加载 Nginx 以使配置生效。 下载地址: nginx日志切割定时任务的实现 Docker启动gitlab后22端口被占用如何解决 |