linux 18

4.50负载均衡
负载均衡就是,把请求均衡的分发到后端各个机器上面。
比如,A B C D 四台web服务器,现在E要访问这4台服务器,F为Nginx反向代理服务器,可以让F把E的请求均衡地发送到A B C D 4台服务器上

配置:# vi qq.com.conf
upstream qq_com
{
ip_hash;
server 61.135.157.156:80;
server 125.39.240.113:80;
}
server
{
listen 80;
server_name www.qq.com;
location /
{
proxy_pass http://qq_com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
修改host文件 192.168.236.128 www.qq.com
测试访问 www.qq.com
同一个nginx服务器不允许出现 相同的Upstream
实验2;

# vi apelearn.com.conf

upstream apelearn
{
ip_hash;
server 115.159.51.96:80 weight=100;
server 47.104.7.242:80 weight=10;
}
server
{
listen 80;
server_name www.apelearn.com;
location /
{
proxy_pass http://apelearn;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

4.51-配置Nginx的SSL
Nginx的SSL
让Nginx实现用https来访问网站。http是80端口,https是443端口。
https其实是一种加密的http
为什么要加密
举例:咱们要在网上银行汇款,在你汇款过程中,你会输入银行卡的密码,如果不加密,这些数据在传输过程中就有可能被人截获。
如果使用了https,那么数据在传输过程中是会加密的,即使抓到了数据包,但是无法破解出来。
知识点;
http 1.1 http2 (https)

配置文件:

ssl on;
ssl_certificate /path/to/xxx.crt;
ssl_certificate_key /path/to/xxx.key;
ssl_protocols TLSv1.1 TLSv1.2;

申请证书
网站:www.wosign.com(沃通)
免费的:freessl.org
注册账号,输入域名,开始申请,在这个过程中需要去加一条TXT记录
在域名管理平台添加TXT记录和记录值
验证通过生成三个文件ca 证书 key

  # cd /etc/nginx/
   # mkdir ssl   创建ssl目录
   # cd ssl
   # vi ssl    把CA文件放入ssl
   # vi bbs crt  放入证书文件
   # vi bbs key  放入key文件

nginx]# vi conf.d/bbs.qinkailinux.cc.conf
server {
listen 443 ssl;
server_name bbs.qinkailinux.cc;
ssl on;
ssl_certificate /path/to/bbs.crt;
ssl_certificate_key /etc/nginx/ssl/bbs.key;
ssl_protocols TLSv1.1 TLSv1.2;

检查重新加载 重启nginx服务

# firewall-cmd –reload   加入443端口

修改host文件 重新解析域名
在另一台机器测试 curl访问https

 # curl –K -H “host:bbs.qinkailinux.cc” https://192.168.x.x/index.php

扩展连接:https://github.com/aminglinux/nginx/tree/master/ssl

4.52-php-fpm配置
实验:# cat /etc/nginx/conf.d/bbs.qinkailinux.cc.conf
在这里插入图片描述
fastcgi_pass 127.0.0.1:9000; php-fpm服务地址和端口
如果端口或地址错误访问会提示502

比如:

在这里插入图片描述
修改端口位9001

# netstat –lntp   查看端口

查看错误日志

# ps aux |grep php-fpm  查看进程

# cd php-fpm.d/
# vi www.conf

在这里插入图片描述
监听服务的用户和组
在这里插入图片描述

# /usr/local/php-fpm/sbin/php-fpm –t  重启服务并检查服务

在这里插入图片描述
使用www.socket通信配置

# vi /etc/nginx/conf.d/bbs.qinkailinux.cc.conf

在这里插入图片描述
#(nginx)注释不生效
打开bbs.qinkailinux.cc发现没有生效
查看错误日志发现权限不顾
srw-rw----. 1 root root 0 2月 15 16:38 /tmp/www.socket
在这里插入图片描述
修改文件权限mode=0666
修改完文件重启

# /etc/init.d/php-fpm restar

4.53 总结:
php-fpm配置文件路径:
/usr/local/php-fpm/etc/php-fpm.conf
包含了一个目录 php-fpm.d/*.conf
www.conf就是其中一个配置文件
www.conf配置讲解
pool 名字:【www】可以自定义,启动后,ps aux |grep php-fpm 看最右侧就是pool的名字
listen 指定监听的ip:port或者 socket的地址
这地址需要和nginx配置文件里面的那个fastcgi_pass所指定的地址一致,否则就会502,如果监听的是socket文件,那么要保证nginx服务用户(nginx)对该socket文件有读写权限,否则502
listen.mode指定socket文件的权限

listen.allowed_clients = 127.0.0.1 定义允许访问的客户端
pm = dynamic 启动服务类型 可动态调整服务进程个数
pm.max_children = 5 一共有多少个进程 max定义最大进程
pm.min_spare_servers = 1 限制子进程空闲时最少有多少个
pm.max_requests = 500 单个子进程最多处理多少个请求

php_flag[display_errors] = off off改成on 页面错误直接显示在浏览器

php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[error_reporting] = E ALL 错误日志级别

猜你喜欢

转载自blog.csdn.net/qinaki/article/details/87376099