这篇文章限于window下对nginx配置与应用
在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动、停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍
1.启动
start nginx
如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
2.停止
nginx -s stop
3.重新载入Nginx
nginx -s reload
4.nginx的日志,一般有两个文件 logs/access.log 和 logs/error.log
5.root和alias的区别
在Nginx配置文件中,root
和 alias
指令有着不同的用途和行为。它们主要用于指定静态文件和服务的根目录位置
(1)root的配置
server {
listen 80;
server_name example.com;
location / {
root /var/www/html;
index index.html;
}
}
当用户访问 http://example.com/index.html
时,Nginx会在 /var/www/html/index.html
寻找文件
如果将 location / 修改 location /v,即按照如下的配置,需要路径的访问会发生本质的变化
server {
listen 80;
server_name example.com;
location /v/ {
root /var/www/html;
}
}
当用户访问 http://example.com/v/picture.jpg
时,Nginx 会进行如下操作,根据 location /v/
块中的 root /var/www/html;
指令,Nginx 将会去 /var/www/html/v/picture.jpg
这个路径下寻找文件
(2)alias的配置
server {
listen 80;
server_name example.com;
root /var/www/html;
location /v/ {
alias /usr/share/nginx/images/;
}
}
在这个配置示例中,当用户访问 http://example.com/v/picture.jpg
时,Nginx 将会去 /usr/share/nginx/images/picture.jpg
路径下寻找文件。这是因为您在 location /v/
块中使用了 alias
指令来指定 /usr/share/nginx/images/
作为根目录
关键区别
-
路径解析:
root
: 当你使用root
指令时,Nginx会将请求的URI与root
路径拼接起来寻找文件。alias
: 当你使用alias
指令时,Nginx会将请求的URI直接匹配到文件系统中的路径。
6.location常见配置
(1)匹配规则
类型 | 含义 | 匹配方式 | 优先级 | 样式 |
=/路径 | 精确匹配 | 前缀 | 1 | location =/image {} |
^~ | 优先匹配 | 前缀 | 2 | location ^~ /page {} |
~ | 普通正则-大小写敏感 | 正则符号 | 3 | location ~ .(jpe?g)$ {} |
~* | 普通正则-大小写不敏感 | 正则符号 | 3 | location ~* .(jpe?g)$ {} |
空 / | 通用匹配 | 前缀 | 4 | location / {} |
空 <路径> | 前缀匹配 | 前缀 | * | location /index {} |
(2)匹配优先级
优先级: 精确匹配 > location 完整路径 > 优先匹配 > 正则匹配 >location 部分路径 > 通用匹配
(3)匹配示例
location =/ {} # 精确规则
location =/login {} # 精确规则
location ^~ /static/ {} # 优先匹配
location ~ \.(gif|jpg|png|js|css)$ {} # 正则规则
location ~* \.png$ {} # 正则规则
location / {} # 通过规则
7.location临时跳转
在 Nginx 中,return
指令可以用来发送一个 HTTP 重定向响应给客户端。如果您想使用 location
块来执行一个 302 临时重定向,可以使用 return
指令配合适当的 HTTP 状态码。
假设您希望所有访问 /oldpath
的请求都被重定向到 /newpath
,并且使用 302 临时重定向,可以在 location
块中使用 return
如下
server {
listen 80;
server_name example.com;
location /oldpath {
return 302 /newpath;
}
location /newpath {
# 处理新路径的逻辑
}
}
在这个例子中,当用户访问 http://example.com/oldpath
时,Nginx 将发送一个 302 重定向响应,告诉浏览器跳转到 http://example.com/newpath
。
详细说明
-
return
指令:return
指令用于立即终止处理请求,并发送一个固定的响应。- 在上面的例子中,
return 302 /newpath;
表示返回一个 302 重定向,并将新的 URL 设置为/newpath
。
-
HTTP 状态码:
302
表示“临时重定向”,表示请求的资源已经被临时移动到了另一个位置。- 其他可用的状态码包括
301
(永久重定向)、303
(查看其他)、307
(临时重定向,保持请求方法不变)等。
-
重定向路径:
- 重定向的目标路径可以是绝对路径(例如,
http://example.com/newpath
),也可以是相对路径(例如,/newpath
)。 - 如果使用相对路径,Nginx 会基于原始请求的 URL 来构建重定向后的 URL。
- 重定向的目标路径可以是绝对路径(例如,
使用 302 重定向不会被大多数浏览器缓存,除非显式设置了缓存控制头