1 Nginx负载均衡
2 ssl原理
3 生成ssl密钥对
4 Nginx配置ssl
5 php-fpm的pool
6 php-fpm慢执行日志
7 open_basedir
8 php-fpm进程管理
扩展
ssl相关
https://coding.net/u/aminglinux/p/nginx/git/blob/master/ssl/ca.md
https://coding.net/u/aminglinux/p/nginx/git/blob/master/ssl/ssl.md
负载均衡
https://coding.net/u/aminglinux/p/nginx/git/blob/master/proxy/lb.md
nginx算法分析https://blog.whsir.com/post-1482.html
root和alias
http://www.ttlsa.com/nginx/nginx-root_alias-file-path-configuration/
1 Nginx负载均衡
什么是负载均衡
代理一台机器为代理,两台机器,就叫负载均衡
代理服务器后面可以是多台web服务器,多个web服务器提供服务的时候,就可以实现一个负载均衡
正常情况下,用户访问web服务器,是一台一台去请求;要么就是指定一个IP,把这域名解析到多台服务器上
例:
用户1 --> web1服务器
用户2 --> web2服务器
用户1 --> web1服务器(宕机)
用户1因为解析到了web1,但web1宕机了。没法访问
这时候如果使用了nginx负载均衡,web1宕机,代理服务器就不会继续把请求发送到web1
配置负载均衡
通过dig可以查看到域名的解析IP地址
包“ bind-utils ”
[root@aminglinux-02 vhost]# yum install -y bind-util
[root@aminglinux-02 vhost]# dig qq.com
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7_3.1 <<>> qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29688
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;qq.com. IN A
;; ANSWER SECTION:
qq.com. 353 IN A 14.17.32.211
;; Query time: 35 msec
;; SERVER: 119.29.29.29#53(119.29.29.29)
;; WHEN: 三 8月 16 00:14:17 CST 2017
;; MSG SIZE rcvd: 51
新增一个配置文件load.conf
upstream qq_com //这个名字可以自定义
{
ip_hash; //目的是为了让同一个用户始终保持在同一个机器上
server 14.17.32.211:80; //如果域名解析端口是80,这段配置上的指定端口80是可以省略的
}
server
{
listen 80; //定义监听端口
server_name www.qq.com; //域名
location /
{
proxy_pass http://qq_com; //这里填写的是upstream 的名字即“http://upstream”,因为作为一个模块,代理访问的是通过解析后的IP访问;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
upstream来指定多个web server
当有多个服务器同时对一个域名提供服务的时候,长时间访问一个域名,在一定的时效内,会出现需要重新登录或者是说跳转到另外一个地址的服务器上;ip_hash,就是使通过这个代理访问的同一个域名的多个IP的服务器是,始终保持在一个IP上对这个域名进行访问
测试
没有使用负载均衡配置的时候,curl -x 127.0.0.1 默认访问的是虚拟主机的
[root@aminglinux-02 vhost]# curl -x127.0.0.1:80 www.qq.com
This is the default site.
配置完成后检查语法和重新加载服务
-t && -s reload
测试
[root@aminglinux-02 vhost]# curl -x127.0.0.1:80 www.qq.com
var _mtac = {};
(function() {
var mta = document.createElement("script");
mta.src = "http://pingjs.qq.com/h5/stats.js?v2.0.2";
mta.setAttribute("name", "MTAH5");
mta.setAttribute("sid", "500460529");
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(mta, s);
})();