nginx必会知识点

缺乏、安全感 2022-12-20 12:43 350阅读 0赞

以下内容输出来源:拉勾教育-Java高薪训练营

nginx必知必会

  • 一、介绍
    • 1、nginx的三个主要应用场景
    • 2、主要优点
    • 3、nginx4大模块
  • 二、下载安装
  • 三、nginx核心配置文件解读
  • 四、Nginx配置语法
  • 五、location路径配置
    • 1、规则
    • 2、静态资源web服务示例
    • 示例
      • 反向代理
      • 负载均衡(负载策略)
      • 动静分离

一、介绍

nginx是一个轻量级http服务器和反向代理服务器,它通过优化web服务器软件来支持大规模客户端连接的并发处理,基于C语言编写,大量采用多路复用,事件通知,所以效率非常之高。

Nginx的第一个版本发布之后,一般被用来同Apache/Tomcat一同部署,html/css/jss和图片等静态内容由nginx处理,来降低Apache应用服务器的并发和延时。

1、nginx的三个主要应用场景

  • 静态资源服务(通过本地文件系统提供服务)
  • 反向代理服务(缓存+负载均衡)
  • API服务(OpenResty+Lua)

2、主要优点

随着并发连接数的上升,tomcat/apache等服务器的rts会急剧的衰减,而nginx可以保证如下特点:

  • 高并发高性能
  • 可扩展性好
  • 高可靠性(持续数年不宕机)
  • 热部署(在不停用的基础上升级nginx)

3、nginx4大模块

  • nginx二进制文件
  • nginx.conf(控制nginx的行为)
  • access.log(记录每一条http请求信息)
  • error.log(定位问题)

二、下载安装

1、下载安装包

  1. http://nginx.org/en/download.html
  2. wget http://nginx.org/download/nginx-1.18.0.tar.gz

2、使用nginx的必备软件

  1. yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

3、执行命令安装

  1. ./configure
  2. make && make install

默认安装在/usr/local/nginx下,如果想指定安装目录, 可以通过来指定

  1. ./configure --prefix=your_target_path

4、此时已安装完成,默认目录/usr/local/nginx
启动脚本在sbin目录下

  1. ./nginx //启动服务
  2. ./nginx -s quit //优雅停止服务
  3. ./nginx -s stop|reload|quit| //常用命令,-s是指signal

​​安装后的目录

5、访问测试 curl localhost:80
6、高亮命令
contrib文件夹包含vim命令,打开conf/nginx.conf文件,可以看到有些命令默认黑色,执行以下命令可以高亮关键字

  1. cp -r contrib/vim/* /usr/share/vim/vimfiles/

三、nginx核心配置文件解读

nginx.conf包括三块内容:全局块、events块、http块

1)全局块从配置文件开始到events之间的内容,配置worker进程的数量、错误日志的位置等,影响nginx服务器整体的运行;

2)events块主要影响nginx服务器与用户的网络连接,如work_connnections(单个worker进程的最大并发连接数)

3)http块,是配置修改最频繁的部分,包括虚拟主机的配置、监听端口的配置,请求转发、反向代理、负载均衡等,都在这里。

四、Nginx配置语法

  • 配置文件由指令和指令快组成
  • 每条指令以;结尾,指令与参数间用空格分隔
  • include语句允许组合多个配置文件,以提升可维护性
  • #添加注释
  • $表示变量

1、时间单位






























ms 毫秒 s
m 分钟 h 小时
d w
M y

2、空间单位


















bytes k/K 千字节
m/M g/G

3、常用http配置的指令快

  • upstream
  • http

    • server
    • location

      • alias
      • autoindex
      • proxy_pass
      • proxy_cache 缓存

五、location路径配置

1、规则

  1. //在nginx配置文件中,location主要有这几种形式:
  2. 1)正则匹配 location ~ /api { }
  3. 2)不区分大小写的正则匹配 location ~* /api { }
  4. 3)匹配路径的前缀 location ^~ /api { } //较为常用
  5. 4)精确匹配 location = /api { }
  6. 5)普通路径前缀匹配 location /api { }
  7. //以上优先级
  8. 4 > 3 > 2 > 1 > 5

2、静态资源web服务示例

  1. location / {
  2. #root与alias,更推荐使用后者
  3. alias staticData;
  4. #查看静态资源目录
  5. autoindex on;
  6. }

示例

反向代理

  1. server{
  2. listen 9090;
  3. server_name localhost;
  4. location / {
  5. proxy_pass http://127.0.0.1:8080;
  6. }
  7. }
  8. server{
  9. listen 9090;
  10. server_name localhost;
  11. location /abc {
  12. proxy_pass http://127.0.0.1:8080;
  13. }
  14. location /def {
  15. proxy_pass http://127.0.0.1:8081;
  16. }
  17. }

负载均衡(负载策略)

1、轮询方式

  1. upstream webServer{
  2. server localhost:8080;
  3. server localhost:8081;
  4. }
  5. location /abc {
  6. proxy_pass http://webServer/;
  7. }

2、权重

  1. upstream webServer{
  2. server localhost:8080 weight=1;
  3. server localhost:8081 weight=2;
  4. }

3、ip_hash,每⼀个客户端的请求会固定分配到同⼀个⽬标服务器处理,可
用于解决session问题

  1. upstream webServer{
  2. ip_hash;
  3. server localhost:8080;
  4. server localhost:8081;
  5. }

动静分离

主要是处理静态资源请求,上面两种是结合tomcat处理动态请求的

  1. #表示static开头的请求会跳转到根目录下的staticData目录
  2. location /static/ {
  3. root staticData;
  4. }

发表评论

表情:
评论列表 (有 0 条评论,350人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JavaWeb基础知识

    1.B/S和C/S的区别? (1)B/S指的是浏览器和服务器   C/S指的是客户端和服务器 (2)B/S安全性比较低;C/S安全性比较高 (3)B/S只需要编写服

    相关 JAVA知识

    01. 面向对象的特性有哪些? 答:封装、继承和多态。 封装:类可以把自己的数据和方法只让可信的类或者对象操作 继承:它可以使用现有类的所有功能,并在无需重新编写原来的类