当前位置: 首页 > news >正文

Nginx使用多个.conf文件配置虚拟主机server

使用 Nginx 配置多个虚拟机 server 服务。通常做法可以直接在 nginx.conf 文件中添加即可,如下事例:

# nginx.confworker_processes  1;events {worker_connections  1024;
}http {include         mime.types;default_type    application/octet-stream;server {listen        80;server_name   localhost;location  / {root        html;index       index.html index.htm;}}server {listen        3000;server_name   www.example.com;location  / {root        /example/dist;index       index.html index.htm;}}...
}

这样写其实没问题,只不过不易扩展,或者说 server 服务多了之后管理起来不是很方便,通常,我更愿意将一个 server 服务模块单独抽离出来进行管理,而在 nginx.conf 中呢只需要将各个独立配置的模块导入即可,既增加了其扩展性,同时每一个单独模块配置便与主配置文件分离,即使其内部配置出错了也不会影响到主配置文件,那么如何实现呢,请往下看

  • 第一步

conf 目录下创建一个 servers 目录用于管理所有的 server 模块

| -- conf| -- servers
  • 第二步

servers 目录下创建以 .conf 结尾的 server 配置文件,如

| -- conf| -- serversexample.conf
  • 第三步

server 具体配置进行完善,这里只需要 server 块的内容即可,且注意每一行结尾以 ; 表示结束,不然会报错,事例如下

# servers/example.confserver {listen        3000;             # 端口号server_name   www.example.com;  # 服务名 - 访问的域名location  / {root        /example/dist;index       index.html index.htm;}
}
  • 第四步

到这里,漫漫长征路已经接近尾声,该创建的文件目录都有了,该有的配置也完善了,最后就需要将所有的配置导入(包含)到 nginx.conf 中来,那么回到 nginx.conf 中找到 http 模块,并在内部添加如下内容

include servers/*.conf

其中的 ... 代表内容省略,这条配置的意思就是 包含servers目录下的所有以 .conf 结尾的文件,即此后所有在此目录下创建的 .conf 文件都会被导入(包含)到 nginx.conf 配置当中,若想创建多个 server 服务,重复【第三步】操作即可

# nginx.conf...
http {...include servers/*.conf...
}
...

如此,nginx.conf 文件可简化为

# nginx.confworker_processes  1;events {worker_connections  1024;
}http {include         mime.types;default_type    application/octet-stream;include servers/*.confserver {listen        80;server_name   localhost;location  / {root        html;index       index.html index.htm;}}...
}

=== OR ===

下面也可将 80 端口的 server 服务也单独拆分出来

# servers/local.confserver {listen        80;server_name   localhost;location  / {root        html;index       index.html index.htm;}
}
# nginx.confworker_processes  1;events {worker_connections  1024;
}http {include         mime.types;default_type    application/octet-stream;include servers/*.conf...
}

:: 重要

每次修改完配置之后都要记得 reload 一下,不然是不会生效的,执行以下命令,控制台不报错且没有任何内容输出即为成功,若有报错请按提示操作即可,一般情况问题主要出现在配置内容上,请仔细检查

nginx -s reload

:: 衍伸阅读

nginx documentation

:: 更多内容 ::

> 开发过程中踩坑经验记录

http://www.lryc.cn/news/114753.html

相关文章:

  • nginx编译以及通过自定义生成证书配置https
  • OpenAI 已为 GPT-5 申请商标,GPT-4 发布不到半年,GPT-5 就要来了吗?
  • 【Linux】深入理解进程概念
  • Java课题笔记~ AspectJ 的开发环境(掌握)
  • 机器学习参数调优
  • [Java基础]面向对象-关键字分析:this,static,final,super
  • 数据结构初阶--二叉树的顺序结构之堆
  • NVM Command学习
  • TCP Socket 基础知识点(实例是以Java进行演示)
  • openCV图像读取和显示
  • requests 方法总结
  • Go语言删除文本文件中的指定行
  • Arthas GC日志-JVM(十八)
  • ISC 2023︱诚邀您参与赛宁“安全验证评估”论坛
  • 分享一个计算器
  • Android 13 Launcher——长按图标弹窗背景变暗
  • Elasticsearch概述和DSL查询总结
  • 扩展卡尔曼滤波器代码
  • 9:00开始面试,9:08就出来了,这问题问的实在是····
  • 揭秘:5个美国程序员与日本程序员的差异
  • Springboot实现简单JWT登录鉴权
  • C++设计模式创建型之工厂模式整理
  • 前端安全XSS和CSRF讲解
  • 本地化部署自建类ChatGPT服务远程访问
  • 一、Webpack相关(包括webpack-dev-server用以热更新和html-webpack-plugin)
  • 安全防御(3)
  • AR远程专家指导在汽车改装上的应用有哪些?
  • css-3:什么是响应式设计?响应式的原理是什么?如何做?
  • Armstrong数,n位数等于其各位数的n次方之和。
  • blender的下载安装和配置中文环境