• 架构师的成长之路初片~Nginx篇~上篇


    Nginx:

    环境:Centos7  

    环境包:gcc     make               //编译包

                   pcre-devel                 //支持正则的包

                   openssl-devel             //支持搭建加密(ssl)技术的网站

    常用软件包:    bash-com*            vim        net-tools          psmisc

    netstat:常用组合选项:ntupl

    nginx编译:

    ./config

    make 

    make install 

    模块 作用
    --with-stream   开启其他业务集群功能
    --with-http_stub_status_module 查看用户数量
    --user= 指定用户
    --with-http_ssl_module 加密模块

    一、开启nginx登陆验证功能:

    打开nginx主配置文件:

    42 行:  auth_basic "password";           开启登陆网页

                   auth_basic_user_file        " /usr/local/nginx/passwd "     //用户及密码所在的文件。(由于此文件比较特殊,所以不能用touch或vim创建。需要安装一个特定的软件包并且用特殊的命令生成用户与密码

    httpd-tools                    安装此包,支持htpaaswd命令

    创建pass文件与x账户

    1:  htpasswd -c /usr/local/nginx/pass     用户名                       //创建pass文件与x  账户    

    2:   /sbin/nginx  -s  reload                                                          //重新加载

    3:   htpasswd  /usr/local/nginx/pass    用户名                           //追加(添加)新用户

    二、开启https加密功能      (需在编译时添加--with-http_ssl_module  加密模块)  

    1:修改主配置文件(https)

    2:创建私钥

    openssl   genrsa > cert.key

    3:  创建公钥及证书

    openssl    req    -new    -x509    -key    cert.key   >   cert.pem   

    回车过程~~~~~~

    测试:

    curl    -k   https://www.a.com   或者  访问页面时  出现不安全等页面即可。

    搭LNMP

    1:装包:  mariadb  mariadb-server  mariadb-devel    php   php-fpm    php-mysql

    2:起服务: mariadb     php-fpm

    3:查端口:    3306:mysql、9000:php-fpm

    FastCGI

    FastCGI实际上是php-fpm的子程序,在php-fpm中实际上是不工作,是将任务分配给FastCGI执行,当FastCGI工作完成后将结果发给pfp-fpm,php-fpm将结果发给nginx,nginx又将结果发给用户。

    主配置文件: /etc/php-fpm.d/www.conf

    nginx地址重写:

    /usr/local/nginx/nginx.conf

    rewrite   旧地址      新地址;             必须以分号结尾

    例:

    rewrite   /^a.html$      /b.html; 访问A,看到B 但地址栏不变
       
    rewrite    /^a.html$     /b.html     redirect; 访问A,看到B,且地址栏也会发生相应的变化
       
    老网站跳到新网站  
    rewrite    /        /(,*)http://www.a.com; 访问初始网站,会自动跳到新网站
    rewrite    /(.*)http:///www.a.com.cn/$1; 访问某个老网站的页面时,跳转到新网站对应的相同页面。前面使用正则表达式匹配用户输入的任意页面,并保存起来(小括号在正则中 的效果时保留,相当于复制)后面使用   $1  将之前保存的页面地址粘贴到新页面
       
    不同浏览的物理机访问不同页面  

    if ($http_user-agent~*firefox){

    }

    rewrite   /index.html     /firefox/index.html;{

    }

    ~代表匹配正则,*是不区分大小写,$http_user-agent是nginx的内置变量,存储了用户的信息

    分别使用火狐浏览器与其他浏览器访问IP,可得到2个不同的页面

    地址重写的选项:

    last 不再读其他rewrite
    break 不再读其他语句
    redirect 临时重定向   ,网页状态码   302
    permanent 永久重定向    , 网页状态码  301

    地址重选选项例子:

    last  例:

     

    rewrite   /a.html   /b.html   last;

    rewrite    /b.html    /c.html;

    如果看到last,页面则不会执行下面的语句。看到的就是b.html页面。
    break  例:  

    location / {

      rewrite  /a.html  /b.html   break;

    }

    location / {

      rewrite  /a.html  /b.html;

    }

    在2个location中,如果第一个里面又break语句,则停止,不会再执行下面的语句。
       

    NGINX  关键字

    stream 创建其他服务(业务)
    upstream 创建集群
    proxy_pass 调用集群
    rewrite 地址重写
    last  
    break  
    redirect 临时重定向
    permanent 永久重定向
    wegiht  
    max_fails 检测失败次数
    fill_timeout 再次检测时间

    ip_hash

    相同客户机访问相同服务器
    down 暂停工作
  • 相关阅读:
    Java:类与继承(隐藏和覆盖的问题)
    Java中的static关键字解析
    面向对象(Java中普通代码块,构造代码块,静态代码块区别及代码示例)
    面向对象要点(this关键字)
    急须知道postman RSA加密的方式
    RSA加密原理
    postman获取变量
    Mysql通过cmd访问
    一个简单的postman实例
    sum(coalesce(adjust_value,prediction_value))
  • 原文地址:https://www.cnblogs.com/ahaocloud/p/14493878.html
Copyright © 2020-2023  润新知