加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Nginx的这些妙用,你肯定有不知道的!

发布时间:2019-12-26 12:18:00 所属栏目:Unix 来源:站长网
导读:副标题#e# Nginx 因为它的稳定性、丰富的模块库、灵活的配置和较低的资源消耗而闻名 。目前应该是几乎所有项目建设必备。今天通过这篇攻略让你快速通关 Nginx。 图片来自 Pexels Nginx 简介 Nginx 是一个免费、开源、高性能、轻量级的 HTTP 和反向代理服务

yum install -y pcre pcre-devel                           

yum install -y zlib zlib-devel                            

yum install -y openssl openssl-devel    

③解压、配置(Nginx 支持各种配置选项 )、编译、安装 Nginx:

tar -zxvf nginx-1.15.tar.gz cd nginx-1.16.1 

cd nginx-1.16.1 

./configure 

make && sudo make install  

④启动、重启、关闭:

cd /usr/local/nginx/  

cd sbin 

./nginx 

#关闭命令  

./nginx -s stop 

#重启,热部署 

./nginx -s reload 

#修改配置文件后也别嘚瑟,反正我会动不动就写错,检查修改的nginx.conf配置是否正确 

./nginx -t 

Nginx的这些妙用,你肯定有不知道的!

⑤验证(浏览器输入 IP):

Nginx的这些妙用,你肯定有不知道的!

配置文件

nginx.conf 配置文件主要分为三部分:

全局块

Events 块

HTTPS 块

Nginx 配置语法:

配置文件由指令和指令块构成

每条指令以分号(;)结尾,指令和参数间以空格符分隔

指令块以大括号{}将多条指令组织在一起

include 语句允许组合多个配置文件以提高可维护性

使用 # 添加注释

使用 $ 定义变量

部分指令的参数支持正则表达式

全局块

全局配置部分用来配置对整个 Server 都有效的参数。主要会设置一些影响 Nginx 服务器整体运行的配置指令,包括配置运行 Nginx 服务器的用户(组)、允许生成的 Worker Process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。

示例如下:

user nobody; 

worker_processes  4; 

error_log  /data/nginx/logs/error.log  notice;  

Events 块

Events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 Work Process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 Word Process 可以同时支持的最大连接数等。

events { 

    #每个 work process 支持的最大连接数为 1024. 

    worker_connections  1024; 

HTTP 块

这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。 需要注意的是:HTTP 块也可以包括 HTTP 全局块、Server 块。

①HTTP 全局块

HTTP 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

http { 

    include       mime.types; 

    default_type  application/octet-stream; 

    sendfile        on; 

    keepalive_timeout  65; 

②Server 块

这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。

每个 HTTP 块可以包括多个 Server 块,而每个 Server 块就相当于一个虚拟主机。

而每个 Server 块也分为全局 Server 块,以及可以同时包含多个 Locaton 块。

全局 Server 块:也被叫做“虚拟服务器”部分,它描述的是一组根据不同server_name指令逻辑分割的资源,这些虚拟服务器响应 HTTP 请求,因此都包含在 HTTP 部分。

最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。

server { 

  listen       80; 

  #server_name也支持通配符,*.example.com、*、.example.com 

  server_name  localhost; 

  #charset koi8-r; 

  #access_log  logs/host.access.log  main; 

Location 块:一个 Server 块可以配置多个 Location 块。

这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称 (也可以是 IP 别名)之外的字符串(例如前面的 /uri-string)进行匹配,对特定的请求进行处理。

地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

Location 指令说明:该指令用于匹配 URL。

语法如下:

location [ = | ~ | ~* | ^~] uri{} 

= :该修饰符使用精确匹配并且终止搜索。

~:该修饰符使用区分大小写的正则表达式匹配。

~*:该修饰符使用不区分大小写的正则表达式匹配。

^~:用于不含正则表达式的 URI 前,要求 Nginx 服务器找到标识 URI 和请求字符串匹配度最高的 Location 后,立即使用此 Location 处理请求,而不再使用 Location 块中的正则 URI 和请求字符串做匹配。

?>Tip 注意:如果 URI 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

当一个请求进入时,URI 将会被检测匹配一个最佳的 Location:

没有正则表达式的 Location 被作为最佳的匹配,独立于含有正则表达式的 Location 顺序。

在配置文件中按照查找顺序进行正则表达式匹配。在查找到第一个正则表达式匹配之后结束查找。由这个最佳的 Location 提供请求处理。

location / { 

     root   html; 

    index  index.html index.htm; 

    } 

 

  #error_page  404              /404.html; 

 

  # redirect server error pages to the static page /50x.html 

  # 

  error_page   500 502 503 504  /50x.html; 

  location = /50x.html { 

      root   html; 

  } 

  location / { 

      #try_files指令将会按照给定的参数顺序进行匹配尝试 

      try_files $uri $uri/ /index.html; 

  } 

nginx.conf 详细配置如下:

#定义Nginx运行的用户和用户组 

user www www;  

 

#nginx进程数,通常设置成和cpu的数量相等 

worker_processes 4;  

 

#全局错误日志定义类型,[debug | info | notice | warn | error | crit] 

#error_log  /data/nginx/logs/error.log; 

#error_log  /data/nginx/logs/error.log  notice; 

 

#日志文件存放路径 access_log path [format [buffer=size | off]] 

access_log /data/nginx/logs/lazyegg.com/web/access.log combinedio; 

 

#进程pid文件 

#pid        logs/nginx.pid; 

 

#指定进程可以打开的最大描述符:数目 

#工作模式与连接数上限 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读