1. Nginx 负载均衡
1.1 概述
- Nginx 作为代理服务器角色, 有正向代理和反向代理 两种.
- 正向代理
- 一般用于代理局域网络 内的服务器访问外网的站点, 代理的对象是客户端, 目的是访[图片上传中...(001.png-8d30e2-1544731366941-0)]
问外网资源.
- 一般用于代理局域网络 内的服务器访问外网的站点, 代理的对象是客户端, 目的是访[图片上传中...(001.png-8d30e2-1544731366941-0)]
- 反向代理
- 反向代理一般是为 让对互联网上对自己的访问, 代理到内网资源, 由内网资源提供服务.
- 常用与 负载均衡, 静态资源缓存服务器
1.2 nginx 反向代理指令
-
语法:
proxy_pass
-
作用:
- 用于代理服务器协议和地址以及映射位置可以选URI, 作为协议, 可以指定 http 或 https 作为地址指定为域名 或者IP 地址, 可选端口
- 可以指定URI, 如果指定了URI, 那么请求传递到服务器时会将请求URI
-
示例:
upstream host1cc {
server 192.168.10.11;
server 192.168.10.12;
}
server {
listen 80;
server_name host1.cc;
location ~ .*$ {
proxy_pass http://host1cc;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
}
}
- 测试
2. nginx 配合 php-fpm
- cgi 概念
-
CGI (Common Gateway Interface)
- 通用网关接口 是HTTP Server和一个独立应用程序进程之间 通信的协议, Web 服务器能够将用户提交的的信息通过 CGI 交给程序处理, 由应用程序处理后, 返回给web程序, 再由web 返回给客户端.
- 一般web 服务器只提供简单的静态文件处理(如html, jpg, text), 如果有动态请求(如 php, python.. ) 会fork 出来一个新的CGI 程序, 动态脚本请求交给CGI 处理, 不过启动CGI 程序 比较消耗性能, 需要 读取配置文件, 加载扩展等等, 当本次请求处理结束后, 该CGI 程序会被销毁.
-
FastCGI
- 快速的 CGI, 由于CGI 每次处理请求都会创建和销毁 比较消耗性能, FastCGI 就可以解决该问题,
- FastCGI 会有一个常驻的程序, 用于一次读取配置文件 加载CGI 程序需要的东西, 每当有新请求时启动CGI 就不会消耗过多性能, 配置也不会反复加载, 并且可以在请求处理结束后, 保留进程作为下次使用.
-
php-fpm
- FastCGI process Manager 就是php的 fastCGI 管理器的简称.
- 对于php 的FastCGI 进程管理器.
- 当fastcgi 配置文件有变动时, 可以平滑重启, 不影响已启动的 CGI, 而是在启动新的CGI 时, 使用新的配置, 旧的CGI 运行结束后会被关闭.
- 启动php-fpm
[root@node10009 php7]# /opt/app/php7/sbin/php-fpm -t
[14-Dec-2018 03:45:38] NOTICE: configuration file /opt/app/php7/etc/php-fpm.conf test is successful
[root@node10009 php7]# /opt/app/php7/sbin/php-fpm
[root@node10009 php7]# ss -tan | grep 9000
LISTEN 0 128 127.0.0.1:9000 *:*
[root@node10009 php7]#
- nginx 配置 php-fpm
server {
listen 82;
server_name host2.cc;
root /opt/case/wwwroot/host2;
index index.html;
charset utf8;
access_log logs/host2.access.log;
location ~ .*\.php$ {
root /opt/case/wwwroot/host2;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /opt/case/wwwroot/host2/$fastcgi_script_name;
include fastcgi_params;
}
}
- 测试
END
网友评论