架构师的成长之路初片~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 暂停工作
原文地址:https://www.cnblogs.com/ahaocloud/p/14493878.html