nginx基础配置

Nginx 基础配置

一、安装 Nginx

1
apt install nginx -y

二、添加虚拟主机

Nginx 配置结构简介

  • 全局块:配置全局指令,如 worker 进程数、日志路径等。
  • events 块:处理连接相关的设置,如最大连接数等。
  • http 块:用于 HTTP 协议的核心配置,包括虚拟主机、缓存等。
  • server 块:配置每个虚拟主机,如监听端口、域名等。
  • location 块:根据 URL 匹配进行不同处理,如路径映射、代理等。

通常不会直接在 nginx.conf 中配置 server块,而是通过如下方式模块化管理:

1
include /etc/nginx/conf.d/*.conf;

将虚拟主机配置单独写入 /etc/nginx/conf.d/ 目录下的 .conf 文件中,方便维护。

示例:创建虚拟主机

1
vim /etc/nginx/conf.d/web.conf
1
2
3
4
5
6
server {
listen 80;
server_name myweb.com;
root /myweb;
index index.html;
}
配置 解释
listen 80; 监听端口80
server_name myweb.com; nginx会通过Host来匹配虚拟主机中的域名, 匹配成功就会访问
root /myweb; 设置根目录为/myweb, 实际的路径为/myweb + 请求路径
index index.html; 设置默认网页为index.html

三、location 的使用

语法 类型 示例 匹配说明
location = 精确匹配 location = /login 仅匹配完全等于 /login 的路径
location ^~ 前缀匹配(阻止正则) location ^~ /images/ 匹配以 /images/ 开头的路径,匹配后不再尝试正则
location / 普通前缀匹配 location / 匹配所有以 / 开头的路径(几乎所有路径)
location ~ 正则匹配(区分大小写) location ~ \.php$ 使用正则表达式匹配
location ~* 正则匹配(不区分大小写) location ~* \.jpg$ 同上,不区分大小写

location 用于根据 URL 路径匹配执行不同处理逻辑:

https://mynotes.world/test/ → 匹配 location /test/

https://mynotes.world/test -> 不匹配 location /test/

路径后面的/也会影响匹配结果

location / 会匹配任何路径, 因为任何路径都是/开始

1、使用 alias(只能在location使用)

alias 是直接将location指定路径替换为alias指定路径

1
2
3
4
5
6
7
8
server {
listen 80;
server_name myweb.com;
location / {
alias /myweb/;
index index.html;
}
}

访问 http://myweb.com/ 实际查找文件路径为 /myweb/, 替换 //myweb/

访问 http://myweb.com/a/b/c 实际上查找文件路径为 /myweb/a/b/c, 替换 //myweb/

2、使用 root

root 是将url与root指定路径拼接组成完整路径 root + url

1
2
3
4
5
6
7
server {
listen 80;
server_name myweb.com;
location /e {
root /test;
}
}

访问 http://myweb.com/e/index.html 实际查找 /test/e/index.html, 把 /test/e/index.html进行拼接

3、反向代理配置

反向代理是将客户端请求转发到后端服务器处理,并将响应返回给客户端。

1
2
3
4
5
6
7
server {
listen 80;
server_name myweb.com;
location / {
proxy_pass http://127.0.0.1:8888;
}
}

所有对 http://myweb.com/ 的请求都会转发至 http://127.0.0.1:8888 处理