nginx的配置与使用

这篇文章限于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配置文件中,rootalias 指令有着不同的用途和行为。它们主要用于指定静态文件和服务的根目录位置

(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)匹配规则

类型含义匹配方式优先级样式
=/路径精确匹配前缀1location =/image {}
^~优先匹配前缀2location ^~ /page {}
~普通正则-大小写敏感正则符号3location ~ .(jpe?g)$ {}
~*普通正则-大小写不敏感正则符号3location ~* .(jpe?g)$ {}
空 /通用匹配前缀4location / {}
空 <路径>前缀匹配前缀*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

详细说明

  1. return 指令:

    • return 指令用于立即终止处理请求,并发送一个固定的响应。
    • 在上面的例子中,return 302 /newpath; 表示返回一个 302 重定向,并将新的 URL 设置为 /newpath
  2. HTTP 状态码:

    • 302 表示“临时重定向”,表示请求的资源已经被临时移动到了另一个位置。
    • 其他可用的状态码包括 301(永久重定向)、303(查看其他)、307(临时重定向,保持请求方法不变)等。
  3. 重定向路径:

    • 重定向的目标路径可以是绝对路径(例如,http://example.com/newpath),也可以是相对路径(例如,/newpath)。
    • 如果使用相对路径,Nginx 会基于原始请求的 URL 来构建重定向后的 URL。

使用 302 重定向不会被大多数浏览器缓存,除非显式设置了缓存控制头

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值