【Linux】nginx基础篇 -- 介绍及yum安装nginx

06-02 1242阅读

👨‍🎓博主简介

  🏅云计算领域优质创作者

  🏅华为云开发者社区专家博主

  🏅阿里云开发者社区专家博主

💊交流社区:运维交流社区 欢迎大家的加入!

🐋 希望大家多多支持,我们一起进步!😄

🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

  • 一、nginx 介绍
    • 1.1 在线自动生成nginx配置文件
    • 二、nginx企业用它干什么
    • 三、nginx的运行架构
    • 四、master主进程原理
    • 五、worker工作进程原理
    • 六、nginx常用模块介绍
    • 七、nginx的安装形式
      • 7.1 yum安装nginx
      • 7.2 nginx管理命令
      • 7.3 yum 安装 nginx 所有默认路径
      • 7.4 通过官网yum仓库默认安装的nginx.conf配置文件
      • 八、nginx配置模块详解
      • 九、 相关文章
      • 十、相关专栏

        一、nginx 介绍

        【Linux】nginx基础篇 -- 介绍及yum安装nginx

        1.1 在线自动生成nginx配置文件

        https://www.digitalocean.com/community/tools/nginx?global.app.lang=zhCN

        可以自由选择所需的应用,生成nginx配置作为参考。

        根据你的业务需求,自动生成复杂的nginx配置文件,提供你作为参考,非常好用

        二、nginx企业用它干什么

        1.提供静态页面展示,网页服务

        2.提供多个网站、多个域名的网页服务

        3.提供反向代理服务(结合动态应用程序)

        4.提供简单资源下载服务(密码认证) ftp服务

        5.用户行为分析(日志功能)

        三、nginx的运行架构

        nginx运行后,有多少个干活的工人,多进程,调用多个cpu去解析用户的请求

        在linux中进行多进程开发,开辟多个进程,调用多个cpu,当然也会消耗更多的机器资源,内存,cpu资源,给服务器带来更大的压力

        不是说进程越多,干活越快,合理的分配,才能达到最高效的处理效率

        关于nginx的优化设置,nginx默认应该启动多少个进程去工作呢?

        默认就是根据cpu的核数去设置进程数即可。

        四、master主进程原理

        包工头进程,管理nginx的数据,创建worker工作进程。

        1. 启动时检查nginx.conf是否正确,语法是否有误;
        2. 根据配置文件的参数创建、且监控worker进程的数量和状态;
        3. 监听socket,接收client发起的请求,然后worker竞争抢夺链接,获胜的可以处理且响应请求。
        4. 接收我们发送的管理nginx进程的信号,并且将信号通知到worker进程。
        5. 如果我们发送了reload命令,则读取新配置文件,创建新的worker进程,结束旧的worker进程。
        

        五、worker工作进程原理

        1. 实际处理client网络请求的是worker
        2. master根据nginx.conf决定worker的数量
        3. 有client用户请求到达时,worker之间进程竞争,获胜者和client建立连接且处理用户请求;
        4. 接收用户请求后,若需要代理转发给后端,则后端处理完毕后接收处理结果,再响应给用户
        5. 接收并处理master发来的进程信号,如启动、重启、重载、停止。
        

        六、nginx常用模块介绍

        nginx常用模块官网:https://nginx.org/en/docs/

        下面讲解的常用模块,官网都有解析是使用方法。

        ngx_http_access_module		# 四层基于IP的访问控制,可以通过匹配客户端源IP地址进行限制,简单来说就是允许限制对某些客户端地址的访问。
        ngx_http_auth_basic_module	# 允许通过使用“HTTP 基本身份验证”协议验证用户名和密码来限制对资源的访问。
        ngx_http_stub_status_module	# 状态统计模块。
        ngx_http_gzip_module		# 文件的压缩功能,是一个使用“gzip”方法压缩响应的过滤器。这通常有助于将传输数据的大小减少一半甚至更多。
        ngx_http_gzip_static_module	# 静态压缩模块,允许发送带有“ ”文件扩展名的预压缩文件,.gz而不是常规文件。
        ngx_http_ssl_module			# 为HTTPS提供必要的支持
        ngx_http_rewrite_module		# 重定向功能,解析和处理rewrite请求,用于使用 PCRE 正则表达式更改请求 URI、返回重定向和有条件选择配置。
        ngx_http_referer_module		# 防盗链功能,用于阻止“Referer”标头字段中包含无效值的请求访问站点。
        ngx_http_proxy_module		# 将客户端的请求以http协议转发至指定服务器进行处理。
        ngx_stream_proxy_module		# tcp负载,将客户端的请求以tcp协议转发至指定服务器处理,允许通过 TCP、UDP (1.9.13) 和 UNIX 域套接字代理数据流。
        ngx_http_fastcgi_module		# 将客户端对php的请求以fastcgi协议转发至指定服务器理。
        ngx_http_uwsgi_module		# 将客户端对Python的请求以uwsgi协议转发至指定服务器处理。
        ngx_http_headers_module		# 允许将“Expires”和“Cache-Control”标头字段以及任意字段添加到响应标头。
        ngx_http_upstream_module	# 用于定义可由proxy_pass、 fastcgi_pass、 uwsgi_pass、 scgi_pass、 memcached_pa​​ss和 grpc_pass指令引用的服务器组。负载均衡模块,提供服务器分组转发、权重分配、状态监测、调度算法等高级功能。
        ngx_stream_upstream_module	# 用于定义可由proxy_pass 指令引用的服务器组。
        ngx_http_fastcgi_module		# 允许将请求传递到 FastCGI 服务器。
        ngx_http_flv_module			# 为 Flash 视频 (FLV) 文件提供伪流服务器端支持。
        

        七、nginx的安装形式

        • 源代码编译安装,优点:
          • 版本,可以获取官网最新的软件包,甚至最新测试版,都可以直接编译安装
          • 还有稳定版本
          • 自由定义,安装路径自由定义,
          • 自由定义第三方插件
          • 缺点:安装步骤繁琐,耗时太长,看你要装多少个模块,编译添加的模块多,安装的就更久
          • rpm安装
            • 得提前准备好nginx本身的rpm包,以及相关依赖的rpm包
            • 用于离线安装nginx的环境
            • yum安装,你会用哪些形式的仓库?
              • 阿里云第三方仓库(centos-base.repo,epel.repo)
                • 这个其实都不靠谱。
                • 自建yum仓库(得提前准备好nginx本身的rpm包,以及相关依赖的rpm包)
                • nginx官网仓库(获取官网最新稳定版的yum源仓库)
                  • yum一键安装,省心省事,版本也是有一定的保障的,rpm的安全性也是有保障的
                    官网yum仓库
                    源代码编译
                    离线的rpm安装(yum 自建仓库)
                    

                    7.1 yum安装nginx

                    # 1. 配置官网yum源,一键安装即可
                    cat > /etc/yum.repos.d/nginx.repo 
                        worker_connections  1024;
                    }
                    http {
                        include       /etc/nginx/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"';
                        access_log  /var/log/nginx/access.log  main;
                        sendfile        on;
                        #tcp_nopush     on;
                        keepalive_timeout  65;
                        #gzip  on;
                        include /etc/nginx/conf.d/*.conf;
                    }
                    
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码