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 | 暂停工作 |