nginx 基础

nginx相关:
    1.nginx基本概念
        1.概述:
                nginx是一个高性能的http和反向代理服务器,同时 也提供了IMAP/POP3/SMTP服务;
            特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务 器中表
            现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
                nginx专门为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受  
            高负载的考验,可以支持高达50000个并发连接数.
        2.反向代理    
          1.正向代理:
                在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网的访问,然后将数据返回给客服端;
            因为可以通过代理访问任意网站并且隐藏客户端自身,所以必须采取安全措施以确保仅为经过授权的客
            户端提供服务.
          2.反向代理:保护和隐藏原始资源服务器
                将请求发给代理服务器,由代理服务器去选择目标服务器获取数据后,在返回给客户端;反向代理服
            务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器ip地址.                
        3.负载均衡
            定义:将负载进行平衡,分摊到多个服务器,从而协同完成工作任务.
            优点:加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性.
        4.动静分离
            定义:把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力.
    
    2.nginx 安装,常用命令与配置文件
        0.安装Nginx需要的相关依赖包:
            pcre-devel  zlib zlib-devel  openssl openssl-devel
          安装依赖包:
            yum install pcre-devel zlib zlib-devel openssl openssl-devel
            
        1.安装nginx:
            1)前往用户根目录
            >: cd ~

            2)下载nginx1.13.7
            >: wget http://nginx.org/download/nginx-1.13.7.tar.gz

            3)解压安装包
            >: tar -xf nginx-1.13.7.tar.gz

            4)进入目标文件
            >: cd nginx-1.13.7

            5)配置安装路径:/usr/local/nginx
            >: ./configure --prefix=/usr/local/nginx

            6)编译并安装
            >: make && sudo make install

            7)建立软连接:终端命令 nginx
            >: ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

            8)删除安装包与文件:
            >: rm -rf nginx-1.13.7
            >: rm -rf nginx-1.13.7.tar.gz

            9)测试Nginx环境,服务器运行nginx,本地访问服务器ip
            >: nginx
            >: 服务器绑定的域名 或 ip:80
            
            查看开放的端口号: firewall-cmd --list-all
            设置开放的端口号: 
                firewall-cmd --add-service=http --permanent
                firewall-cmd --add-port=80/tcp --permanent
            重启防火墙: firewall-cmd --reload    
            
            
        2.nginx常见命令:
            0) 使用命令的前提:进入nginx的目录
            >:/usr/local/nginx/sbin
            1)启动
            >: nginx

            2)关闭nginx
            >: nginx -s stop

            3)重启nginx
            >: nginx -s reload

            4)查看端口,强行关闭
            >: ps -aux|grep nginx
            >: kill <pid:进程编号>
            
            5)查看nginx的版本号
            >: nginx -v
                    
        3.nginx配置文件
            1.位置:/usr/local/nginx/conf 下 nginx.conf中
            2.组成:由三部分组成
                1.第一部分:全局块
                    作用:主要会设置一些影响nginx服务器整体运行的配置指令
                    worker_processes  1;  #
                    注:该值越大,可以支持的并发处理数量也越多,但是受到硬件,软件等设备的制约
                 
                2.第二部分:events块
                    作用:主要会设置一些影响nginx服务器与用户的网络连接
                    events {
                        worker_connections  1024; #支持最大连接数为1024
                    }
                    注:这部分的配置对nginx的性能影响较大
    
                3.第三部分:http块 配置最频繁的部分
                    http块可以分为:http全局块与server块
                    http全局块:配置的指令包括文件引入,mime-type定义,日志自定义,连接超时时间,单链接请求数上限
                    server块:与虚拟主机有密切关系
                    
                    http {
                        include       mime.types;
                        default_type  application/octet-stream;

                        sendfile        on;
                        
                        keepalive_timeout  65;

                        server {
                            listen       80;
                            server_name  local host;

                            location / {
                                root   html;
                                index  index.html index.htm;
                            }

                            #error_page  404              /404.html;
                            error_page   500 502 503 504  /50x.html;
                            location = /50x.html {
                                root   html;
                            }
                            ...
                    }            

    3.nginx原理
  
1. 1个master多个worker的优势:
            1.可以使用 nginx -s reload 热部署,利用nginx进行热部署操作
            2.每一个worker都是独立的进程,其中一个挂了,不会影响到其他的worker的正常争抢,不会造成服务中断
        
        2.设置多少个worker
            worker数与cpu数相等最合适;
            
        3.连接数worker_connections
            1.发送请求会占用worker的多少个连接数   两个或者四个
            2.计算最大并发数公式:
                普通静态资源访问:worker_connections*worker_processes/2
                http做反向代理时:worker_connections*worker_processes/4       

 

posted @ 2020-11-08 01:58  54菜鸟  阅读(115)  评论(0编辑  收藏  举报