网站首页 > 技术教程 正文
一、配置文件初识
Nginx 主配置文件:/opt/nginx/conf/nginx.conf
# 允许进程数量,
# 建议设置为 cpu 核心数或者 auto 自动检测
worker_processes 1;
# 事件模块
events {
# 单个进程最大连接数
# 最大连接数 = 连接数 * 进程数
worker_connections 1024;
}
http {
# 文件扩展名与文件类型映射表(在conf目录)
include mime.types;
# 默认文件类型,
# 如果 mime.types 预先定义的类型没匹配上,
# 默认使用二进制流的方式传输
default_type application/octet-stream;
# 是否开启零拷贝
# 即直接从磁盘读取文件并发送到网络接口,
# 减少了从磁盘向内存拷贝的过程。
sendfile on;
# 长连接超时时间,单位是秒
keepalive_timeout 65;
# 虚拟主机的配置
server {
# 监听端口
listen 80;
# 域名,可以有多个,用空格隔开
server_name localhost;
# 要匹配的 URI 及对应配置
location / {
# 根目录
root html;
# 默认页
index index.html index.htm;
}
# 错误页配置,错误码与 location 映射
error_page 500 502 503 504 /50x.html;
# /50x.html 文件所在位置
location = /50x.html {
root html;
}
}
# 引入其他配置文件
include /opt/nginx/conf/conf.d/*.conf;
}
二、虚拟主机
nginx 的虚拟主机就是通过 nginx.conf 中 server 节点指定的,想要设置多个虚拟主机,配置多个 server 节点即可:
http {
# 第一个虚拟主机的配置
server {
listen 80;
server_name www.liwy-nginx.com;
location / {
root html;
index index.html;
}
}
# 第二个虚拟主机的配置
server {
listen 80;
server_name www.liwy-nginx-8081.com;
# ... ...
}
}
当有多个虚拟主机时,配置文件都写在 nginx.conf 中,会很臃肿。我们可以为每个虚拟主机建立单独的配置文件,然后在 nginx.conf 中,使用 include 进行导入。
# nginx.conf
http {
# ... ...
# 引入其他配置文件
include /opt/nginx/conf/conf.d/*.conf;
}
# /opt/nginx/conf/conf.d/server-8082.conf;
server {
# 监听端口
listen 80;
server_name *.liwy-nginx-8082.com;
# 要匹配的 URI 及对应配置
location / {
proxy_pass http://192.168.2.13:8082;
}
}
三、listen 配置
# 监听IP端口号
Syntax: listen address[:port]
listen port
Default: listen *:80 | *:8000;
Context: server
四、server_name 配置
# 设置虚拟主机名称
Syntax: server_name name ...;
Default: server_name "";
Context: server
server_name 的配置方式有三种:
# 精确匹配
server_name www.liwy-nginx.com;
# 通配符匹配,
# 通配符不能出现在域名的中间,
# 只能出现在首段或尾段
server_name *liwy-nginx.com www.liwy*;
# 正则表达式匹配
# 使用 ~ 作为正则表达式字符串的开始标记
server_name ~^www\.(\w)+\.com$;
使用正则表达式时,我们还可以将匹配的分组作为参数在后面使用:
# 使用正则的分组作为变量
server {
server_name ~^(www\.)?(.+)$;
location / {
root /sites/$2;
}
}
# 捕获分组并设置变量名称
server {
server_name ~^(www\.)?(?<domain>.+)$;
location / {
root /sites/$domain;
}
}
客户发起请求时,会使用请求的域名与我们配置的 server_name 进行匹配,来确定命中的虚拟主机,当请求的域名与多个 server_name 都匹配时,则将按照以下优先级顺序选择第一个匹配的虚拟主机:
- 确切名称
- 以星号开头的最长通配符名称
- 以星号结尾的最长通配符名称
- 第一个匹配的正则表达式(按配置中的顺序)
五、默认 server
当请求没有匹配到 server_name 时,会使用默认的 server 进行处理,我们可以通过 default_server 指定默认的 server:
server {
listen 80 default_server;
server_name _;
return 403;
}
如果没有明确指定默认的 server,则将监听该端口的第一个 server 设置为默认 server。
猜你喜欢
- 2024-10-15 服务器部署:利用WebHook实现PHP自动部署Git代码
- 2024-10-15 nginx-4-虚拟主机(nginx 虚拟主机)
- 2024-10-15 从零开始,一分钟搞定Nginx虚拟主机配置! #java面试
- 2024-10-15 操作系统安装JAVA环境(java版操作系统)
- 2024-10-15 Nginx 面试通关秘籍-11.什么是 Nginx 虚拟主机?如何配置 ?
- 2024-10-15 Nginx服务技能篇:3种虚拟主机配置方案实战教学
- 2024-10-15 「nginx」七、nginx的虚拟主机配置
- 2024-10-07 Nginx学习笔记(04) server虚拟主机配置详解
- 2024-10-07 Nginx 配置ipv6(nginx配置ipv6端口)
- 2024-10-07 nginx虚拟主机配置(nginx虚拟主机配置文件丢失)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)