• nginx入门指南 harara


    1、nginx启动、停止和重新加载配置

    要启动 nginx,请运行可执行文件。nginx一旦启动,可以通过使用-s参数调用可执行文件来控制它。使用以下语法:

    nginx -s signal 

    其中signal可能是以下之一:

    • stop — 快速关机
    • quit — 优雅关机
    • reload — 重新加载配置文件
    • reopen — 重新打开日志文件

    例如,要停止 nginx 进程并等待工作进程完成当前请求,可以执行以下命令:

    nginx -s quit

    配置文件更改,要重新加载配置,请执行:

    nginx -s reload

    一旦主进程接收到重新加载配置的信号,它就会检查新配置文件的语法有效性并尝试应用新的配置。如果成功,主进程启动新的工作进程,并向旧的工作进程发送关闭命令,旧的工作进程收到关闭命令,停止接受新连接并继续为当前请求提供服务,直到当前所有请求都得到服务之后,旧的工作进程退出。

    否则主进程将回滚更改并继续使用旧配置。

     

    2、配置文件结构

    nginx 配置文件中的指令分为简单指令和块指令。一个简单指令由名称和参数组成,由空格分隔并以分号 (;) 结尾。块指令的结构与简单指令相同,但它不是分号,而是以一组由大括号({和})包围的附加指令结束。

    如果块指令可以在大括号中包含其他指令,则称为上下文(例如:event、http、server和location)。放置在任何上下文之外的配置文件中的指令被视为位于主上下文中。event和http指令位于主上下文中,server指令位于http中,location位于server中。

    #符号后的其余行被视为注释。

     

    3、静态服务器(提供静态资源)

    Web 服务器的一个重要任务是提供文件(例如图像或静态 HTML 页面)。

    例:根据请求访问不同目录下的静态资源:(/data/www 包含 HTML 文件,/data/images包含图像资源)。 

    这将需要编辑配置文件,并在http块内设置一个server块,其中包含两个location块

     

    1、创建/data/www目录,将index.html文件放入该目录下

    2、创建/data/images目录并在其中放置一些图像资源

    3、编辑配置文件nginx.conf新增如下server:

    server {
       listen 80;
        location / {
            root /data/www;
        }
    
        location /images/ {
            root /data;
        }
    }

    第一个location块指定“/”与请求的URI匹配 。对于匹配的请求,URI将被添加到 root 指令中指定的路径后,即 /data/www/$request_uri,以形成本地文件系统上请求文件的路径。如果有多个匹配location块,nginx 会选择具有最长前缀的块。上面的location块提供了最短的前缀,长度为 1,因此只有当所有其他location块都无法提供匹配时,才会使用这个location块。

    第二个location块:它将匹配以/images/ (location /也匹配此类请求,但前缀较短) 开头的请求。

    至此,通过nginx在本地计算机访问静态资源的服务器已配置完成,可以通过http://localhost:80/访问

    为了响应URI以/images/开头的请求,服务器将从/data/images目录发送文件。

    例如,响应http://localhost/images/yun.jpg请求,nginx将发送/data/images/yun.jpg文件。如果文件不存在,nginx将发送一个指示404错误的响应。

    URI不以/images/开头的请求将映射到/data/www目录。

    例如,响应http://localhost/index.html请求,nginx将发送/data/www/index.html文件。

     

     

     

    4、代理服务器

    nginx 的常见用途之一是将其设置为代理服务器

    配置实现以下功能:

    配置一个基本的代理服务器,该服务器使用本地目录中的文件提供图像请求,并将所有其他请求发送到其他的代理服务器

    两个server都将在单个 nginx 实例上定义。

     

    1、在 nginx 的配置文件中添加一个server块来定义代理服务器,其内容如下:

    server {
        listen 8080;
        root /data/www;
        location / {
    
        }
    }

    这是一个简单的代理服务器,它监听8080端口 并将监听到的所有请求映射到本地文件系统上的/data/www目录。创建此目录并将index.html文件放入其中。 请注意,该root指令放置在 server上下文中。当location块内没有配置root指令时,将使用server上下文中的root指令。

     

    2、配置一个基本的代理服务器,该服务器使用本地目录中的文件提供图像请求,并将所有其他请求发送到其他的代理服务器

    server {
    
    listen 80;
        location / {
            proxy_pass http://localhost:8080/;
        }
     
        location ~ \.(gif|jpg|png)$ {
            root /data/images;
        }
    
    }

    在第一个location块中, proxy_pass 配置指定的其他代理服务器地址(在我们的例子中,它是http://localhost:8080)

    第二个location 块,将URI带有前缀/images/的请求映射到/data/images/目录下的文件,以使其匹配具有文件扩展名的图像的请求。正则表达式前面加~,正则表达式\.(gif|jpg|png)$匹配所有以、.gif、.jpg或 .png结尾的URI,匹配的请求将映射到/data/image目录。

     

     

    当 nginx 选择一个location块来处理请求时,它首先检查指定前缀的location 指令,记住前缀最长的location ,然后检查正则表达式,如果与正则表达式匹配,则 Nginx 会选择这个 location,否则,它会选择之前记住的那个location。

     

     

     

  • 相关阅读:
    优化--工具
    架构
    Gradle
    战争迷雾
    进度管理
    工具
    架构
    牛人
    apk 破解
    效率
  • 原文地址:https://www.cnblogs.com/kiko2014551511/p/16405590.html
Copyright © 2020-2023  润新知