fastcgi php 集群,nginx高级应用之upstream与fastcgi模块功能

1.ngx_http_upstream_module群集模块

1)在nginx的主配置的http段添加一下内容:

[cc lang="bash"]

http{

upstream upservers {

server 172.16.249.164 weight=2 ; //weight可以设置权重

server 172.16.0.1;

}

}

[/cc]

2)在nginx的默认default文件中添加如下内容:

[cc lang="bash"]

location /{

#proxy_cache mycache;

#proxy_cache_valid 200 1d;

#proxy_cache_valid 301 302 10m;

#proxy_cache_valid any 1m;

#proxy_cache_use_stale error timeout http_500 http_503 http_504;

proxy_pass http://upservers/;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

}

location ~* \.(jpg|txt)$ {

proxy_pass http://upservers;

}

[/cc]

3)重读配置文件,测试访问

[cc lang="bash"]

[root@kali 0]# service nginx reload

[/cc]

http://172.16.249.23/ 访问即可看到是以轮询的方式调度的。

4)自带的健康状态监测功能

当某一节点宕机时,切换至另一节点,上线时会自动切换。

配置方法,在nginx的主配置文件的定义群集部分添加:

[cc lang="bash"]

upstream upservers {

server 172.16.249.164 max_fails=2 fail_timeout=1;

server 172.16.0.1 max_fails=2 fail_timeout=1;

}

[/cc]

4)标记服务器的状态

backup标记为备用状态,设置方法同上。

[cc lang="bash"]

server 172.16.0.1 max_fails=2 fail_timeout=1 server 172.16.0.1 max_fails=2 fail_timeout=1;

;

[/cc]

更新升级之后,再取消备用状态即可。

5)基于sticky实现session绑定

cookie

route

learn()

调度方法:

least_conn:调度方法,最少连接。

keepalive:保持连接。

6)自定义响应首部:

在server段内添加:

[cc lang="bash"]

add_header X-Via $server_addr;

add_header X-Cache $ustream_cache_status;

[/cc]可以在服务器响应头部显示缓存的命中状态

缓存有7种状态:

MISS:缓存没命中

BYASS: 没检查缓存

EXPIRED: 过期

STALE: 腐败的

UPDATING:更新中

REVALIDATED:重新校验

HTI:命中

更多方法查阅:http://nginx.org/en/docs/http/ngx_http_upstream_module.html

2. ngx_http_fastcgi_module模块

fastcgi支持nmp

1)安装php-fpm

Linux中系统的第二张光盘中提供了:php-fpm安装包

[cc lang="bash"]

[root@node1 ~]# yum install php-fpm -y

[/cc]

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

2)启动php

[cc lang="bash"]

[root@node1 etc]# service php-fpm start

Starting php-fpm: [ OK ]

[/cc]

3)编辑nginx的配置文件启用支持php

[cc lang="bash"]

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

include fastcgi_params;

}

[/cc]

4)备份配置文件,并编辑其配置文件将内容修改为:

[cc lang="bash"]

[root@node1 nginx]# cp fastcgi_params{,.bak}

[/cc]

[cc lang="bash"]

[root@node1 nginx]# vim fastcgi_params

[/cc]

[cc lang="bash"]

fastcgi_param GATEWAY_INTERFACE CGI/1.1;

fastcgi_param SERVER_SOFTWARE nginx;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param REQUEST_URI $request_uri;

fastcgi_param DOCUMENT_URI $document_uri;

fastcgi_param DOCUMENT_ROOT $document_root;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param REMOTE_ADDR $remote_addr;

fastcgi_param REMOTE_PORT $remote_port;

fastcgi_param SERVER_ADDR $server_addr;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_NAME $server_name;

[/cc]

5)在nginx的网站目录添加测试页面,重启php-fpm

[cc lang="bash"]

[/cc]

6)让php跟mysql结合

[cc lang="bash"]

[root@node1 html]# yum install php-mysql

[/cc]

安装完成之后重启php-fpm,在php的测试页面Additional .ini files parsed段可以看到已经把mysql的驱动加载进去了。

7)安装mysql-server

[cc lang="bash"]

[root@node1 html]# yum install mysql-server -y

[/cc]

在测试页面添加mysql连接测试:

[cc lang="bash"]

[/cc]

重启mysqld服务之后,再次访问。

更多方法查阅:http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html

3. fsatcgi_cache_path 模块

fsatcgi_cache_path 需要定义在http的内:

[cc lang="bash"]

http{

fastcgi_cache_path /cache/fastcgi/ levels=1:1 keys_zone=fcgicache:10m

inactive=3m max_size=1g;

}

[/cc]

然后在localtion中的fastcgi中调用。

[cc lang="bash"]

fastcgi_cache fcgicache;

fastcgi_cache_valid 200 10m;

fastcgi_cache_valid 302 3m;

fastcgi_cache_valid any 1m;

[/cc]

38f7d6fee9619ab927bd7b797559d27a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值