美文网首页
基础,虚拟主机,代理基础

基础,虚拟主机,代理基础

作者: 快去学习不然怎么去看aimer | 来源:发表于2019-10-08 19:53 被阅读0次

    nginx:
    webserver,负载均衡,代理服务器

    固态盘(闪盘):用于系统盘
    sas:磁盘阵列(READ1,5,0)

    多路复用:
    当一个请求的资源过多时,该请求会进入等待状态,该worker进程会继续处理下一个请求,直到该请求的到结果

    多路复用的具体方法:
    select:线程不安全,最多只检测1024个url,不会给返回参数作标记不方便查找
    poll:线程不安全
    epoll:杜绝了select和poll的大部分问题

    监控nginx的工作状态

    location /nginx-status {
        stub_status on;
        access_log  /var/log/nginx/nginxstatus.log;    #设置日志文件的位置
        auth_basic    "nginx-status";    #指定认证机制(与location后面的内容相同即可)
        auth_basic_user_file  /etc/nginx/htpasswd;
        }      
    
    htpasswd -c -m /etc/nginx/htpasswd lys
    -c  #创建用户
    -m #密码使用md5加密
    

    nginx-status:
    active connections – 活跃的连接数量
    server accepts handled requests — 总共处理了11989个连接 , 成功创建11989次握手, 总共处理了11991个请求
    reading — 读取客户端的连接数.
    writing — 响应数据到客户端的数量
    waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.

    nginx架构图.png

    1)nginx启动时,会生成两种类型的进程,一个是主进程(Master),一个(windows版本的目前只
    有一个)或多个工作进程(Worker)。主进程并不处理网络请求,主要负责调度工作进程,也就是图
    示的三项:加载配置、启动工作进程及非停升级。所以,nginx启动以后,查看操作系统的进程列表,
    我们就能看到至少有两个nginx进程。
    2)服务器实际处理网络请求及响应的是工作进程(worker),在类unix系统上,nginx可以配置多个
    worker,而每个worker进程都可以同时处理数以千计的网络请求。
    3)模块化设计。nginx的worker,包括核心和功能性模块,核心模块负责维持一个运行循环(run-
    loop),执行网络请求处理的不同阶段的模块功能,如网络读写、存储读写、内容传输、外出过滤,以
    及将请求发往上游服务器等。而其代码的模块化设计,也使得我们可以根据需要对功能模块进行适当的选择和修改,编译成具有特定功能的服务器。
    4)事件驱动、异步及非阻塞,可以说是nginx得以获得高并发、高性能的关键因素,同时也得益于对
    Linux、Solaris及类BSD等操作系统内核中事件通知及I/O性能增强功能的采用,如kqueue、epoll及event ports。
    5)代理(proxy)设计,可以说是nginx深入骨髓的设计,无论是对于HTTP,还是对于FastCGI、
    memcache、Redis等的网络请求或响应,本质上都采用了代理机制。所以,nginx天生就是高性能的代理服务器

    nginx -s stop 快速停止nginx
    nginx -t 检查当前配置文件是否有错误

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer"''"$http_user_agent" "$http_x_forwarded_for"';
    
    nginx变量含义.png

    location配置:
    使用 root ,实际的路径就是:root值 + location值。
    使用 alias ,实际的路径就是:alias值。

    虚拟主机

    使得一台nginx服务器提供多项服务

    1.基于域名的虚拟主机
    2.基于ip的虚拟主机
    3.基于端口的虚拟主机

    1.基于域名的虚拟主机

    在conf.d中建立文件yuming.conf
    server {
    listen 80;
    server_name www.1000phone01.com;
    root         /usr/share/nginx/yuming;
      access_log   /var/logs/www.1000phone01.com.log main;
      error_log  
    /var/logs/www.1000phone01.com.error.log;
    location / {
    index index.html index.htm;
         
    }
    }
    在/etc/hosts/中建立主机名映射
    在/usr/share/nginx/建立yuming目录
    echo "yuming1" > yuming/index.html
    systemctl reload nginx
    

    2.基于ip的虚拟主机

    一个网卡绑定多个ip
    ifconfig eth0:1 192.168.1.101
    (取向ip绑定 ifconfig eth0:1 192.168.1.101 down)
    在conf.d中建立文件iptest.conf
    server {
    listen 192.168.1.101:80;
    root         /usr/share/nginx/iptest;
      access_log   /var/logs/www.1000phone01.com.log main;
      error_log  
    /var/logs/www.1000phone01.com.error.log;
    location / {
    index index.html index.htm;
        
    }
    }
    在/usr/share/nginx/建立iptest目录
    echo "iptest" > iptest/index.html
    systemctl reload nginx
    

    3.基于端口的虚拟主机

    在conf.d中建立文件port.conf
    server {
        listen 8000;
        server_name www.port1.com;
        root         /usr/share/nginx/port1;
        access_log   /var/log/www.port1.com.log main;
        error_log    /var/log/www.port1.com.error.log;
        location / {
            index index.html;
        }
    }
    在/usr/share/nginx/建立port目录
    echo "porttest" > port/index.html
    systemctl reload nginx
    

    代理

    正向代理
    反向代理

    正向代理:nginx服务器代替主机发送请求,以访问其他的服务器,
    反向代理:nginx服务器代替webserver接受请求,用户只能访问到nginx的ip地址

    keepalives.png

    keepalives:
    守护进程,定时广播

    vip(虚拟ip)
    master,backup
    master:主服务器,定时广播,没有发生故障
    backup:接受广播,若没发生故障,就静默,若发生故障,就是使用vip,这样会保证负载均衡的实现

    1. HTTP Server和Application Server的区别和联系
      Apache/nignx是静态服务器(HTTP Server):
      Nginx优点:负载均衡、反向代理、处理静态文件优势。nginx处理静态请求的速度高于apache;
      Apache优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解
      析,适合静态HTML、图片等。
      HTTP Server 关心的是 HTTP 协议层面的传输和访问控制,所以在 Apache/Nginx 上你可以看到代
      理、负载均衡等功能
      HTTP Server(Nginx/Apache)常用做静态内容服务和代理服务器,将外来请求转发给后面的应
      用服务(tomcat,jboss,jetty等)。应用服务器(tomcat/jboss/jetty)是动态服务器(Application Server):
      应用服务器Application Server,则是一个应用执行的容器。它首先需要支持开发语言的
      Runtime(对于 Tomcat 来说,就是 Java,若是Ruby/Python 等其他语言开发的应用也无法直接
      运行在 Tomcat 上)。
    2. 但是事无绝对,为了方便,应用服务器(如tomcat)往往也会集成 HTTP Server 的功能,nginx也可
      以通过模块开发来提供应用功能,只是不如专业的 HTTP Server 那么强大,所以应用服务器往往
      是运行在 HTTP Server 的背后,执行应用,将动态的内容转化为静态的内容之后,通过 HTTP
      Server 分发到客户端。
    3. 常用开源集群软件有:lvs,keepalived,haproxy,nginx,apache,heartbeat
      常用商业集群硬件有:F5, Netscaler,Radware,A10等

    相关文章

      网友评论

          本文标题:基础,虚拟主机,代理基础

          本文链接:https://www.haomeiwen.com/subject/eyxbpctx.html