Nginx学习 (1) —— 初识Nginx(编译安装、启动停止、简单配置)

Nginx的发行版本

  1. Nginx开源版http://nginx.org/
    比较干净,主要就完成了网站服务器、代理服务器、负载均衡服务器。没有其他额外的功能。
  2. Nginx plus商业版https://www.nginx.com
    由F5官方出品,在原有nginx上增加了很多使用的功能。
  3. Openrestyhttp://openresty.org/
    nginx+lua进行了完美整合。
  4. Tenginehttp://tengine.taobao.org/

Nginx的编译安装(ubuntu18.04)

  1. 下载源码 http://nginx.org/download/nginx-1.22.1.tar.gz

    解压tar包

    tar -zxvf nginx-1.22.1.tar.gz
    
  2. 进入解压后的目录: cd nginx-1.22.1

  3. 安装所需依赖库:

    sudo apt install gcc
    sudo apt-get install libpcre3-dev
    sudo apt install zlib1g-dev
    
  4. sudo ./configure --prefix=/usr/local/nginx
    显示下列信息表示成功
    在这里插入图片描述

  5. 编译:

    sudo make
    sudo make install
    
  6. 启动服务:

    cd /usr/local/nginx/sbin
    sudo ./nginx
    

    如果启动报错
    在这里插入图片描述
    说明80端口被占用
    解决办法:

    sudo netstat -natp| grep 80   	// 找到占用80端口的进程
    sudo killall -9 xxx				// 杀掉该进程
    或者
    sudo service xxx stop			// 停止占用80端口的服务
    

    在这里插入图片描述

    再次启动nginx

    在浏览器输入ip,若访问超时:

    systemctl stop firewalled.service	// 关闭防火墙
    或者
    firewall -cmd --zone=public --add-port=80/tcp --permanent	// 防火墙放行80端口(nginx默认是占用80端口)
    
  7. 浏览器输入ip地址访问:显示如下表示成功
    在这里插入图片描述

Nginx相关操作

Nginx启动停止命令

sudo ./nginx			// 启动
sudo ./nginx -s stop	// 停止
sudo ./nginx -s quit	// 优雅关闭,在退出之前完成已经接收的请求任务
sudo ./nginx -s reload	// 重新加载配置文件

安装Nginx为系统服务

对于初次安装Nginx的Linux系统来说是不支持 service 和 systemctl 命令启动的
在这里插入图片描述

如下操作可以使 service 和 systemctl 命令来操作nginx的启动停止

vi /usr/lib/systemd/system/nginx.service	// 没有system目录可以创建一个
systemctl daemon-reload		// 重新加载系统服务

// 输入内容如下,注意安装路径不是/usr/local/nginx的话需要修改成对应的路径
[Unit]
Description=nginx web service
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
privateTmp=true

[Install]
WantedBy=multi-user.target

Nginx的目录结构与基本原理

目录结构:

在这里插入图片描述

基本运行原理:

在这里插入图片描述
nginx启动时会启动主进程,负责读取配置文件并做校验,校验成功后会fork()多个子进程,此后主进程主要的工作就是协调子进程进行工作。
当一个用户请求进来后,首先由worker子进程解析这一次请求(因为子进程是知道配置文件的内容的,所以子进程可以判断该请求的资源是否存在)发现请求是想获取index.html文件,然后做出响应。

基础配置:

核心配置

nginx.conf文件中的配置:(启动nginx需要的最少配置)

  • worker_processes 1;// 配置在启动nginx的时候需要启动多少个worker子进程。这主要取决于服务器硬件的牛皮程度,硬件不行配置参数高了效率反而会变低。基本配置逻辑主要还是一个CPU内核对应一个worker_processes
  • events { worker_connections 1024; } // 事件驱动模块,worker_connections配置每一个worker_processes可以创建多少个连接。
  • http{…}:
    • include mime.types; // 配置include引用其他配置文件。(mime.types,根据后缀名配置文件的类型,比如照片文件、文本文件还是什么类型都在mime.types文件中配置。 注意: mime.types文件配置的类型是返回给客户端让客户端去解析的)
    • default_type application/octet-stream; // 默认文件类型。mime.types文件总不能把所有文件类型都配置上,总会出现没见过的后缀,此时就返回这个默认文件类型让客户端去解析。
    • sendfile on; // 数据零拷贝。(后续详细理解)
    • keepalive_timeout 65; // 保持连接超时的时间。
    • server{…}:一个server模块表示一个主机
      • listen 80; // 指监听的端口号。
      • server_name localhost; // 当前这台主机的主机名,这个字段还可以配置域名。
      • location{…} // URI 资源定位所需要的所有信息。一个主机可以配置多个location。
        • root html; // 跟nginx/html文件夹是一一对应的。
        • index index.html index.htm;// 默认页。
      • error_page 500 502 503 504 /50x.html;// 当出现错误码为配置的内容时就跳转到50x.html
      • location = 50x.html {root html}:报错文件找不到的时候,将定位到html文件夹去找50x.html

nginx.conf有上述配置即可启动

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值