nginx

优点

  1. 高并发,高性能
  2. 可拓展性好
  3. 高可靠性
  4. 热部署
  5. BSD许可证

主要应用场景

静态资源服务

通过本地文件系统提供服务

反向代理服务

强大的性能

缓存

负载均衡

API服务

OpenResty

 

使用nginx作为web服务器比apache做为web服务器的好处:

apache一个请求对应一个进程,但是nginx一个进程可以处理多个请求。并发性能好,同时具备高并发高性能。

 

nginx的组成

  1. nginx二进制可执行文件
    由各模块源码编译出的一个文件
  2. nginx.conf配置文件
    控制nginx的行为
  3. access.log访问日志
    记录每一条http请求信息
  4. error.log错误日志
    定位问题

 

 

 

 

 

 

 

 

实践使用nginx

  1. 从官网上下载nginx后,目录中的contrib的可以对vim的代码样式进行渲染,方便对conf文件进行编写
    命令:cp -rf contrib/vim/*  ~/.vim/
  2. 在编译前,可以使用configure命令进行查看支持哪些参数
    在nginx执行中,它会在哪些目录下加载哪些文件,即在编译时对各种配置文件的位置进行修改或加载模块等
    ./configure                                  (./configure --help 可以查看参数)
    --modules-path=PATH            在编译前设置的模块
    --config-path=PATH                修改编译后nginx.conf文件的位置
    --prefix                                    如果使用默认编译,用这个参数即可,所有的文件会按照官方设置好的位置进行设置,这个参数只需要填写nginx的安装目录的路径即可,必须是存在的
     

使用参数执行后,如果发生错误,如图

就按照提示添加参数

完成配置,在nginx中的objs文件夹中,ngx_modules.c文件中,配置了编译时将会添加进当前nginx的模块

开始编译

编译完成后,就生成了最终文件和目标文件,也是放在上面的objs文件夹中,如果是对nginx进行版本升级,这时还不能对它进行安装(make install),还需要把目标文件拷贝到安装目录中,c语言编译生成的中间文件都会放在objs中的src文件夹中。

如果使用动态模块,也会放在这个src文件中

开始安装,首次安装使用make install

安装完成后,在设置好的安装目录/opt/nginx中的conf文件夹中包含了编译前放入的conf中的配置文件。

sbin是ngnix主要的执行命令文件的存放目录。

 

 

Nginx配置语法

  1. 配置文件由指令与指令块构成
  2. 每条指令以  ; 分号结尾,指令与参数间以空格符号分割
  3. 指令块以 { }大括号将多条指令组织在一起
  4. include语句允许组合多个配置文件以提升可维护性
  5. 使用#添加注释
  6. 使用$使用变量
  7. 部分指令的参数支持正则表达式

http指令块中包含server指令块

include是指令名,后面就是参数

同一行中多条语句可以使用  ;  进行分隔

location指令 后面的参数就可以使用正则表达式进行自定义,还有指令中的类型后面的$使得可以通过$1取得git变量等功能

 

 

nginx.conf中http配置的指令块

  1. http:表示里面所有的指令都是通过http模块进行解析
  2. server:表示一个对应的一个或一组域名
  3. upstream:表示上游符,当nginx需要与tomcat等企业内网的其他服务交互时定义upstream
  4. location:表示url表达式

 

 

nginx命令行

  1. 格式:nginx -s reload
  2. 帮助:-?  -h
  3. 使用指定的配置文件: -c
  4. 使用支配指令:-g
  5. 指定运行目录:-p
  6. 发送信号:-s   stop 立即停止|quit 优雅停止|reload 重载配置文件|reopen 重新开始记录日志文件
  7. 测试配置文件是否有语法错误:-t  -T
  8. 打印nginx的版本信息、编译信息等:-v -V

 

nginx热部署,平滑升级

在nginx中,对nginx进行重新配置模块或是其他配置,就需要重新部署,这时候可以使用热部署的方法

先在安装目录中的sbin将nginx备份一份。

然后从编译好的nginx中的objs目录的nginx文件复制到安装目录的sbin中

现在需要给正在运行的nginx进程发送一个信号,告知将开始热部署

先对nginx这个进程查看进程号

通过kill -USR2 进程号   这条命令会将旧的命令worker过渡到新的worker,新的请求都会进入新的worker中

通过kill -WINCH  进程号    这条命令可以将所有worker进行关闭,现在旧的版本就不再活跃,而是让新的worker进行接受请求,但是旧的worker不会结束进程,为了可以让新的进程回退到老的进程中,作为版本回退。

 

 

nginx日志切割

将日志备份到另一个存储空间

使用mv命令将日志文件放在另一个位置,然后使用nginx -s reopen,就会重新生成一个新的日志文件在原来的位置

可以建立一个bash脚本进行自动化地切割日志

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值