• 服务器のNginx


    1.描述下大流量高并发的网站解决方案:

    1.nginx负载均衡

    2.nginx  web cache 缓存

    3.php代码静态化

    4.redis

    5.sql语句索引的使用

    6.主从复制,读写分离(主从分流)

    7.分库分表或分区

    8.磁盘分布

    DNS负载均衡->负载均衡器->集群服务器->web服务器(NGINX)->(PHP)静态缓存(tp,smarty)->文件数据缓存(tp,mongodb)->内存数据缓存(memcache,redis)->给数据加索引

    2.DNS负载均衡:

    dns负载均衡是通过DNS服务器实现的,主要用于把请求均匀的分布到nginx服务器上。其实真是情况中可能是用来根据地域区分请求。但是一个地域中的请求还算需要均匀的分配到nginx服务器上的;

    在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的

    3.Nginx负载均衡:

    nginx作为反向代理服务器,主要负责把请求均匀的分摊到应用服务器中。为了达到均匀,Nginx有五种负载均衡策略。

    4.Nginx的功能:

    作为http server(代替apache,对PHP需要FastCGI处理器支持)
    反向代理服务器
    实现负载均衡
    虚拟主机
    FastCGI:Nginx本身不支持PHP等语言,但是它可以通过FastCGI来将请求扔给某些语言或框架处理;

    4.Nginx与apache:

    Nginx     是异步,非阻塞,轻量级,高并发特性

    apache  是同步,阻塞,非轻量级,不支持高并发

    轻量级,同样起web 服务,比apache 占用更少的内存及资源 
    抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
    高度模块化的设计,编写模块相对简单 
    最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程 

    5. 反向代理服务器的优点?
    ans:反向代理服务器可以隐藏服务器的存在和特性,充当web 与服务器的中间件,对于安全方面是很好的

    6. nginx如何实现高并发?
    ans:一个主进程,多个工作进程,每个工作进程可以处理多个请求,并且是异步的处理该请求,非阻塞性质的web服务器。

    niginx的高并发得益于采用的是epoll模型(异步非阻塞)

    apach采用的是select模型(同步阻塞)

    7.nginx配置跨域?

    server{
        # 监听9099端口
        listen 9099;
        # 域名是localhost
        server_name localhost;
        #凡是localhost:9099/api这个样子的,都转发到真正的服务端地址http://localhost:9871 
        location ^~ /api {
            proxy_pass http://localhost:9871;
        }    
    }

    8.nginx安装

    yum install pcre-devel -y       安装包

    tar xzf nginx-1.6.2.tar.gz       解压安装包

    cd nginx-1.6.2                       进入安装包

    ls                                        查看

    pwd                                     查看

    make 

    make install

    user/local/nginx/sbin/nginx     启动

    ps -ef| grep nginx             查看进程是否启动

    /user/local/nginx/sbin/nginx -s reload   重启nginx

    vi nginx config                 编辑配置文件

    kill -QUIT `cat/var/run/nginx.pid`    完美重启, 平滑重启(在不停止nginx的情况下重启nginx)

           TERM/INT                                         快速重启

    pkill nginx                                          平时用的最多的是先终止再启动

    -v                                                       查看版本

    -V                                                      查看参数(升级可能会用)

    9.nginx 日志

    error_log   /user/local/nginx/logs/error.log

    错误等级:debug->info->notice->warn->error->crit

    10.工作模式及连接上线

    use epoll      多路复用io

    work_connection 102400             单个后台进程最大连接并发数(最大连接数=进程数*连接数)

    multi_accept_on                        尽可能接受多的请求

    #设定http服务器,利用他的反向代理提高负载均衡支持

    http{

     #设定mime类型,类型有mime.type 定义

    include   mime.types;

                     default_type:

    #设定日志格式

    access_log       /user/local/nginx/log/ngin/access.log;

    sendfile on;         是否调用sendfile函数来输出文件

    autoindex on;     开启目录访问

    tcp_nopush on;   防止网络阻塞

    ***keepalive_timeout 60;              客户端到服务端持久链接有效时间,对后继请求避免重建连接

    }

    #开启gzip压缩

    gzip on;           开启gzip压缩(压缩js,csss,下载变快)

    gzip_min_length  1k;

    gzip_buffers  4 16k;

    gzip_http_version 1.1;

    gzip_comp_level 2;                     #压缩级别越大,压缩比率越大(2-9),同时占用cpu更多

    gzip_types  text/js/css               #压缩文件类型

    #文件流

    client_max_body_size    10m;              #允许客户端请求的最大文件字节数

    client_body_buffer_size  128k;             #缓冲区代理缓冲客户端请求的最大字节数

    proxy_connect_timeout 90;                #nginx跟后端服务器连接超时时间

    proxy_send_timeout  90;                      #后端服务器数据回传时间(代理发送超时)

    proxy_read_timeout 90;                     #后端服务器读取超时

    #服务

    server{

    listen  80;                        监听80端口

    server_name    www.cyh.com;                       定义访问路径

    access_log     log/access.log  main;               本虚拟主机访问日志

    root                /data/webapp/cyh                      服务器默认网站根目录位置

    proxy_next_upstream http_502 http_504 error timeout invalid_header                          如果后台报错或超时,自动转发到upstream负载均衡池的另一台服务器,实现故障转移

    proxy_pass http://www.iworker.cn                           请求转到后端定义的均衡模块中

    #配置Nginx动静分离,定义静态页面直接重Nginx发布目录读取

    location ~.*.(html|gif|jp)${

     root /data/www/cyh;

     expire: 3d;

    #配置 php脚本请求全部转发到fastCGI处理,使用fastCGI默认配置

    location ~.php${

             root  /root;

             fastcgi_pass   192.168.38:8080;

             fastcgi_index   index.php;

             fastcgi_param

    }

                            

    proxy_read_timeout 90;                       #l连接成功后,后端(php)响应时间(代理接受超时)



  • 相关阅读:
    智能算法:遗传算法
    matlab中画一条折线时怎样显示出每个点折点的数值
    灰色系统模型
    图论中TSP问题的LINGO求解与应用
    图论中最短路算法与程序实现
    图论中最优树问题的LINGO求解
    Hexo博客NexT主题美化之评论系统
    IN612L支持2.4G及蓝牙5.0全协议的SoC芯片替换NRF52832/NRF52840
    超低功耗蓝牙5.0芯片PHY6202替代NRF51822/NRF51802/NRF52832
    NRF51802多协议低功耗蓝牙/2.4G系统级芯片对比NRF51822差异
  • 原文地址:https://www.cnblogs.com/-cyh/p/10140728.html
Copyright © 2020-2023  润新知