Nginx初识

本文介绍了Nginx的基础知识,包括其工作模式、模块结构、负载均衡比较、配置文件解析以及常用配置指令。重点讲解了worker_processes、worker_connections、server_name等关键配置,还涵盖了http、mail和stream模块的用途。此外,提到了Nginx在静态资源服务、反向代理和缓存等方面的应用,并探讨了与其他负载均衡器的对比。
摘要由CSDN通过智能技术生成

Nginx初识

  • master:配置文件分析和加载、管理worker、平滑升级;

  • worker:处理用户请求;

  • cache loader, cache manager:缓存加载和缓存管理

  • nginx的其它的二次发行版:tengine、OpenResty

  • Nginx模块:

    • 核心模块:core module
    • 标准模块:
      • HTTP modules:
        • Standard HTTP modules
        • Optional HTTP modules
      • Mail modules
      • Stream modules:传输层代理
    • 第三方模块
  • 负载均衡比较:

    1. 传输层:lvs、nginx、haproxy
    2. 应用层:nginx(http, https, smtp, pop, imap), haproxy(http), httpd(http/https), ats, perlbal, pound, …
  • Nginx作用:

    1. 静态的web资源服务器;(图片服务器,或js/css/html/txt等静态资源服务器)
    2. 结合FastCGI/uwSGI/SCGI等协议反代动态资源请求;
    3. http/https协议的反向代理;
    4. IMAP4/pop3协议的反向代理;
    5. tcp/udp协议的请求转发;
  • 安装:

    1. yum安装:http://nginx.org/en/linux_packages.html#RHEL-CentOS
    2. 编译安装:
      • 前提:开发环境,包括nginx编译要启用的功能依赖到的开发库;

        # yum groupinstall "Development Tools" "Server Platform Development"
        # yum -y pcre-devel openssl-devel
        
      • 编译过程:

        # ./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --user=nginx --group=nginx --with-http_ssl_module  --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-threads --with-file-aio
        # make && make install
        
  • Nginx配置文件:

    # 用户
    user  www www;
    # 启动进程数
    worker_processes  auto;
    # 错误日志
    error_log  logs/error.log;
    # pid文件
    pid        logs/nginx.pid;
    # 进程绑定CPU
    worker_cpu_affinity auto;
    # 设置优先级
    worker_priority -5;
    # 允许打开的最大文件数
    worker_rlimit_nofile 65535;
    
    # 最大链接数
    events {
        worker_connections  1024;
    }
    
    
    http {
    	# 各个server共享的配置
    	# mime信息,包含哪些mime协议
        include       mime.types;
        # 默认把文件识别成八进制数据流
        default_type  application/octet-stream;
        # 日志格式
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        # 配置文件目录
        include	/etc/nginx/conf.d/*.conf;
        # 日志路径
        access_log	/var/log/nginx/logs/access.log;
        error_log	/var/log/nginx/logs/error.log;
        # 控制网络连接参数:
        # 发送文件
        sendfile        on;
        #tcp_nopush     on;
        # 保持连接超时65s
        keepalive_timeout  65;
    
        #gzip  on;
    
        upstream helpdesk {
            server unix:///data/helpdesk-master/desk_demo.sock;
        }
    
        # 虚拟主机
        server {
            listen       80;
            # 默认虚拟主机,当没有匹配项是使用
            # listen       80 default_server;
            # 主机名
            server_name  10.126.3.193;
            # 默认网页跟路径
            root         /usr/share/nginx/html;
    
            #charset koi8-r;
            charset utf-8;
    
            # max upload size
            client_max_body_size 75M;
            
            # Django media
            location /media  {
                alias /data/helpdesk-master/media;  # 指向django的media目录
            }
            
            location /static {
                alias /data/helpdesk-master/static; # 指向django的static目录
            }
            
            # Finally, send all non-media requests to the Django server.
            location / {
                uwsgi_pass  helpdesk;
                include     uwsgi_params; # the uwsgi_params file you installed
            }
    
            # 自定义错误页
            error_page  404              /404.html;
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    
    }
    
    
    • 详细配置说明:
      • 每项配置以分号;结尾

      • main配置段常见的配置指令:
        分类:
        1. 正常运行必备的配置
        1) user user [group];
        2) pid /PATH/TO/PID_FILE; # 指定存储nginx主进程号码的文件路径
        3) include file | mask; # 指明包含进来的其他配置文件片段
        4) load_module file; # 指明要装载的动态模块
        2. 优化性能相关的配置
        1) worker_processes number | auto;
        ###### number:worker进程的数量,通常应该 <= 当前主机的CPU的物理核心数;auto:当前主机物理CPU核心数;
        2) worker_cpu_affinity auto | cpumask;
        ###### nginx进程与CPU绑定,如果不绑定进程使用的CPU会随着访问进行跳转。auto:自动;cpumask:CPU位掩码(00000001表示0号CPU,00000010表示1号CPU)
        ###### 查看nginx运行在第几个CPU:ps axo comm,pid,psr | grep nginx
        3) worker_prilrity number; # 指定worker进程的nice值,设定worker进程优先级;[-20,20]
        4) worker_rlimit_nofile number; # worker进程所能够打开的文件数量上限
        3

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. Nginx简介 1.1. 什么是nginx 1.2. Nginx的优点 1.3. 哪里使用到nginx 1.4. Nginx和Apache的区别 2. 安装Nginx服务器 2.1. 在windows上安装 2.2. 在Linux上安装 2.2.1. 写在前面 2.2.2. 准备使用yum安装nginx的运行环境 2.2.3. 安装pcre 2.2.4. 安装zlib库 2.2.5. 安装nginx 2.2.6. 控制nginx 2.2.7. nginx安装服务 3. Nginx的配置文件详解 3.1. Nginx的主配置文件概述 3.1.1. 认识配置文件 3.1.2. nginx的配置文件结构 3.1.3. nginx的全局配置 3.2. events配置 3.3. http的配置 3.4. nginx重要指令之location 4. nginx中的rewrite 4.1. 什么是rewrite 4.2. rewrite的命令的作用域和优先级 4.3. if指令 4.3.1. if指令的语法 4.3.2. if指令中使用的逻辑运算符 4.3.3. If指令中可以使用的变量 4.3.4. if指令实例 4.4. rewrite指令 4.4.1. rewrite指令语法 4.4.2. flag标记 4.4.3. set指令 4.4.4. return指令 4.4.5. rewrite实例 5. nginx的虚拟主机 5.1. 什么是nginx的虚拟主机 5.2. 标准的虚拟主机配置 5.3. 规划虚拟主机的配置文件 6. 动静分离 7. nginx的反向代理 7.1. 什么是反向代理 7.2. 明确两个概念 7.3. 特点 7.4. 反向代理的配置 7.5. 可以将代理配置单独放在一个配置文件中 8. nginx的负载均衡(自学) 8.1. 什么是负载均衡 8.2. 负载均衡的优点 8.3. 负载均衡的分配策略 8.4. 负载均衡配置 9. 安装PHP 10. PHP-FPM 10.1. 什么是PHP-FPM 10.2. 为什么要是使用PHP-FPM 10.3. 安装并且启动PHP-FPM 10.3.1. 安装 10.3.2. fpm的配置 10.3.3. 启动和停止 10.3.4. 自启动php-fpm 10.3.5. 检查php-fpm是否启动 10.4. nginx使用php-fpm处理php
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值