架构师成长记_第四周_02_CentOS 安装 Nginx

Nginx 安装与运行(Centos7下)

nginx安装

  1. 安装依赖环境
  • 安装gcc环境 yum install gcc-c++
  • 安装PCRE库, 用于解析正则表达式 yum install -y pcre pcre-devel
  • zlib压缩和解压缩依赖 yum install -y zlib zlib-devel
  • SSL安全的加密套接字协议层, 用于HTTP安全传输, 也就是https
    yum install -y openssl openssl-devel
  1. 解压, 需要注意, 解压后得到的是源码, 源码需要编译后才能安装
    tar -zxvf nginx-1.16.1.tar.gz
    在这里插入图片描述

  2. 编译之前, 先创建 nginx 临时目录, 如果不创建, 在启动 nginx的过程中会报错
    mkdir /var/temp/nginx -p

  3. 在 nginx 目录, 输入如下命令进行配置, 目的是为了创建makefile 文件

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi 

注: \表示命令行中换行, 提高可读性

在这里插入图片描述

在这里插入图片描述

  1. make 编译 : 命令 make

  2. 安装: 命令 make install
    在这里插入图片描述

  3. 进入sbin 目录启动 nginx: 命令 ./nginx

nginx信号命令:

停止 ./nginx -s stop
退出: ./nginx -s quit
重新加载: ./nginx -s reload
检测配置文件: ./nginx -t

在这里插入图片描述

  1. 打开浏览器, 访问虚拟机所处的内网ip即可打开 nginx 默认页面 (要关闭防火墙, 后面有步骤)
    在这里插入图片描述
    本地主机直接访问我们的内网ip地址, 即: 192.168.181.134
    在这里插入图片描述
  • 注意: 要关闭系统和centos的防火墙

关闭centos防火墙命令步骤如下:

  • 在centos命令行中输入: 依次输入以下命令
    1 systemctl status firewalld.service
    2 systemctl stop firewalld.service
    3 systemctl status firewalld.service
    4 systemctl disable firewalld.service

Nginx 进程模型

在这里插入图片描述

master 进程: 主进程 (领导者)

worker 进程: 工作进程 (服务者, 为 master 服务)

  1. 查看 Nginx 进程 ps -ef|grep nginx
    在这里插入图片描述
  2. 配置 worker 的进程数(默认如上, 只有一个)
  • vim nginx.conf
    在这里插入图片描述
  • nginx -t 用于检测配置文件是否正确
    在这里插入图片描述
  • nginx -s reload 重新启动nginx
  • 查看 Nginx 进程 ps -ef|grep nginx
    在这里插入图片描述

Worker抢占机制

在这里插入图片描述

传统服务器事件处理(BIO, 同步阻塞机制)

在这里插入图片描述
在这里插入图片描述

Nginx 事件处理(异步非阻塞的多路复用器, 高效的通信方式, 可以应对高并发环境)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

nginx.conf 配置结构 (大括号后没有封号哦)

main 全局配置
  event 配置工作模式以及连接数
  http  http模块的相关配置
    server 虚拟主机配置, 可以有多个
       location 路由规则, 表达式
       upstream 集群, 内网服务器

在这里插入图片描述

#user  nobody;    // 默认由 nobody 调用 worker 进程, 可以修改为 root
worker_processes  2;   // 配置 worker进程数


// linux 的日志级别: debug info notice warn error crit 由低到高
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    
    
	// 标准事件模型: select或poll
	// 高效事件模型: Kqueue, Epoll, Eventport
    # 默认使用 epoll
    use epoll;  
    # 每个worker允许连接的客户端最大连接数
    worker_connections  10240;  // 根据硬件配置处理设置
}


http {
    
    
    include       mime.types;   // 导入types文件, include 指令可以引入文件
    default_type  application/octet-stream;  // 默认的type类型


	// 配置日志格式
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    // 设置请求日志
    #access_log  logs/access.log  main;   

    sendfile        on;  // 用于文件高效传输
    #tcp_nopush     on;   // 与上面的 sendfile 同时使用

    #keepalive_timeout  0;
    keepalive_timeout  65;  // 客户端连接服务器的超时时间设置, 以秒为单位

    #gzip  on;   // 数据压缩, 可以提高传输效率, 节约服务器带宽, 但是会格外消耗服务器cpu性能

    server {
    
    
        listen       80;  // 设置端口号
        server_name  localhost;  // 设置域名

        location / {
    
       // 设置路由  斜杠为根目录
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }
    }
}

nginx.pid 打开失败以及失效的解决方案


问题2解决:

  1. ./nginx -h 查看帮助命令文档
    在这里插入图片描述
    -c 命令重新定义文件名字, 即自动默认的路径在 conf/nginx.conf 下

所以, 我们要手动的去指定该位置:
./nginx -c /usr/local/nginx/conf/nginx.conf

然后重新即可.

猜你喜欢

转载自blog.csdn.net/Beyond_Nothing/article/details/115213963