0


Nginx详解

目录

  1. Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。

nginx做为HTTP服务器,有以下几项基本特性:

  • 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.
  • 无缓存的反向代理加速,简单的负载均衡和容错.
  • FastCGI,简单的负载均衡和容错.
  • 模块化的结构。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其它代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。
  • 支持SSL 和 TLSSNI.

一、nginx安装

1.1 环境准备

  1. # 禁止防火墙自启动并立刻关闭防火墙
  2. systemctl disable firewalld.service --now
  3. # 安装所需软件
  4. yum -y install gcc make pcre-devel openssl-devel
  • gcc 可以编译 C,C++,Ada,Object C和Java等语言(安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境)
  • pcre-devel 是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库
  • openssl-devel 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
  • make 编译工具

1.2 安装nginx

nginx安装包网址:https://nginx.org/

  1. # 下载nginx
  2. wget https://nginx.org/download/nginx-1.22.1.tar.gz
  3. # 解压
  4. tar xvf nginx-1.22.1.tar.gz
  5. cd nginx-1.22.1
  6. # 配置(带有https模块)
  7. ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
  8. # 编译安装
  9. 编译:make
  10. 安装:make install

1.3 nginx基本使用

  • nginx安装目录- conf 配置文件- sbin 主程序- html 网站页面- logs 日志

nginx命令用法

  1. # 提高安全性
  2. useradd -s /sbin/nologin nginx
  3. # 启动服务
  4. /usr/local/nginx/sbin/nginx
  5. # 关闭服务
  6. /usr/local/nginx/sbin/nginx -s stop
  7. # 重新加载配置文件
  8. /usr/local/nginx/sbin/nginx -s reload
  9. # 查看软件信息
  10. /usr/local/nginx/sbin/nginx -v

1.4 使用systemd管理Nginx服务

编写service文件

  1. vim /lib/systemd/system/nginx.service
  2. [Unit]
  3. Description=nginx service
  4. After=network.target remote-fs.target nss-lookup.target
  5. [Service]
  6. Type=forking
  7. ExecStart=/usr/local/nginx/sbin/nginx
  8. ExecReload=/usr/local/nginx/sbin/nginx -s reload
  9. ExecStop=/usr/local/nginx/sbin/nginx -s stop
  10. PrivateTmp=true
  11. [Install]
  12. WantedBy=multi-user.target
  13. # 写好service文件后systemctl daemon-reload重新加载配置
  14. systemctl daemon-reload

进行systemctl 管理

  1. # 开机自启
  2. systemctl enable nginx.service
  3. # 取消开机自启动
  4. systemctl disable nginx.service
  5. # 启动
  6. systemctl start nginx.service
  7. # 关闭
  8. systemctl stop nginx.service
  9. # 重启服务
  10. systemctl restart nginx.service
  11. # 查看状态
  12. systemctl status nginx.service

1.5 Nginx配置文件

  • nginx 配置文件有三部分组成
  • 每次修改完配置文件后都要reload一下,使文件生效
  1. worker_processes 1; # 第一部分
  2. events { # 第二部分
  3. worker_connections 1024;
  4. }
  5. http { # 第三部分
  6. include mime.types;
  7. default_type application/octet-stream;
  8. sendfile on;
  9. keepalive_timeout 65;
  10. server {
  11. listen 80;
  12. server_name localhost;
  13. location / {
  14. root html;
  15. index index.html index.htm;
  16. }
  17. error_page 500 502 503 504 /50x.html;
  18. location = /50x.html {
  19. root html;
  20. }
  21. }
  22. }

1.5.1 第一部分:全局块

从配置文件开始到 events 块之间的内容,主要会设置一些影响nginx 服务器整体运行的配置指令,主要包括配 置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以 及配置文件的引入等。
比如上面第一行配置的:

  1. worker_processes 1;

这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是 会受到硬件、软件等设备的制约。

1.5.2 第二部分:events块

  1. events {
  2. worker_connections 1024;
  3. }

events 块涉及的指令,主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等

般来说,有多少cpu就有多少 worker_processes,worker_connections的连接数就是CPU数量×1024

1.5.3 第三部分

  1. http {
  2. include mime.types;
  3. default_type application/octet-stream;
  4. sendfile on;
  5. keepalive_timeout 65;
  6. server {
  7. listen 80;
  8. server_name localhost;
  9. location / {
  10. root html;
  11. index index.html index.htm;
  12. }
  13. error_page 500 502 503 504 /50x.html;
  14. location = /50x.html {
  15. root html;
  16. }
  17. }
  18. }
  • http全局块- http全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等
  • server 块- 每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。- 而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。- 最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置
  • location 块- 这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如server_name/uri-string),对虚拟主机名称 (也可以是IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。 地址定向、数据缓 存和应答控制等功能,还有许多第三方模块的配置也在这里进行

二、HTTPS加密网站

  • 源码安装Nginx时必须使用--with-http_ssl_module参数,启用加密模块,对于需要进行SSL加密处理的站点添加ssl相关指令(设置网站需要的私钥和证书)。
  • 加密算法一般分为对称算法、非对称算法、信息摘要。
  • 对称算法有:AES、DES,应用在单机数据加密。(加密解密同一密码,用的最多)

配置SSL虚拟主机

2.1 修改Nginx配置文件

  • ssl_certificate cert.pem- 这里是证书文件(文件要自己创建)文件要创建配置文件conf下
  • ssl_certificate_key cert.key- 这里是私钥文件(文件要自己创建)
  • 加密网站根目录,最好改成https
  1. [root@proxy nginx]#vim /usr/local/nginx/conf/nginx.conf
  2. server {
  3. listen 443 ssl;
  4. server_name localhost;
  5. ssl_certificate cert.pem; #这里是证书文件
  6. ssl_certificate_key cert.key; #这里是私钥文件
  7. ssl_session_cache shared:SSL:1m;
  8. ssl_session_timeout 5m;
  9. ssl_ciphers HIGH:!aNULL:!MD5;
  10. ssl_prefer_server_ciphers on;
  11. location / {
  12. root https; #加密网站根目录
  13. index index.html index.htm;
  14. }
  15. }

2.2 生成私钥与证书(公钥)

  1. [root@proxy nginx]#openssl genrsa > conf/cert.key #生成私钥
  2. [root@proxy nginx]#openssl req -x509 -key conf/cert.key > conf/cert.pem #生成证书,生成过程会询问诸如你在哪个国家之类的问题,可以随意回答
  3. Country Name (2 letter code) [XX]:dc 国家名
  4. State or Province Name (full name) []:dc 省份
  5. Locality Name (eg, city) [Default City]:dc 城市
  6. Organization Name (eg, company) [Default Company Ltd]:dc 公司
  7. Organizational Unit Name (eg, section) []:dc 部门
  8. Common Name (eg, your name or your server's hostname) []:dc 服务器名称
  9. Email Address []:dc@dc.com 电子邮件

2.3 重新加载配置

  1. [root@proxy nginx]# mkdir https #创建安全网站的目录
  2. [root@proxy nginx]# echo "https~~~~ " > https/index.html #创建安全网站的页面
  3. [root@proxy nginx]# sbin/nginx #服务没开的话开服务
  4. [root@proxy nginx]# sbin/nginx -s reload #已经开了的话重加载配置
  5. [root@proxy nginx]# curl -k https://192.168.99.5 #检验,-k是忽略安全风险
  6. https~~~~ #看到这个内容就说明实验成功
  7. [root@proxy nginx]# systemctl stop firewalld #如果用真机的火狐浏览器测试需要
  8. 关闭防火墙,然后输入https://192.168.99.5
  1. # 启动Nginx服务,如果服务器上已经启动了其他监听80端口的服务(如httpd),则需要先关闭该服务。
  2. [root@proxy ~]# systemctl stop httpd #如果该服务存在则关闭该服务
  3. [root@proxy ~]# /usr/local/nginx/sbin/nginx #启动Nginx服务
  4. [root@proxy ~]# ss -utnlp | grep :80
  5. # 启动MySQL服务
  6. [root@proxy ~]# systemctl enable mariadb --now #启动服务器,并设置开机自启
  7. # 启动PHP-FPM服务
  8. [root@proxy ~]# systemctl enable php-fpm --now #启动fpm,并设置开机自启

三、nginx地址重写

  • 什么是地址重写?- 获得一个URL的请求,然后改成服务器可以处理的另一个URL
  • 地址重写好处- 缩短URL,隐藏实际路径提高安全性- 易于用户记忆
  • 关于Nginx服务器的地址重写,主要用到的配置参数是rewrite- rewrite regex replacement flag- regex:表示正则匹配规则 replacement:表示跳转后的内容 flag:表示rewrite支持的flag标记- rewrite 旧地址 新地址 [选项]

3.1 地址重写的选项

  • redirect 临时重定向,状态码302,爬虫不更新URI(redirect 自动跳到修改后的地址)
  • permanent 永久重定向,状态码301,爬虫更新URI
  • last 不再读其他语句,但还会继续匹配其他location语句
  • **break **不再读其他语句,结束请求
  1. # redirect 服务器会返回一个302状态码,告诉浏览器该页面已被重定向
  2. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  3. .. ..
  4. location /imgs {
  5. rewrite ^/imgs/(.*\.jpg)$ /images/$1 redirect;
  6. }
  7. # permanent 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
  8. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  9. .. ..
  10. location /imgs {
  11. rewrite ^/imgs/(.*\.jpg)$ /images/$1 permanent;
  12. }
  13. # last 本条规则匹配完成后,继续向下匹配新的location URL规则,一般用在server和if中
  14. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  15. .. ..
  16. location /imgs {
  17. rewrite ^/imgs/(.*\.jpg)$ /images/$1 last; #没有其他location语句时,打开此页面,若有其他location,跳转其他页面
  18. }
  19. location /images {
  20. rewrite ^/images/(.*\.jpg)$ https://music.y444.cn/#/ last;
  21. }
  22. # break 本条规则匹配完成即终止,不在匹配后面的任何规则,一般使用在location中
  23. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  24. .. ..
  25. location = /imgs {
  26. rewrite ^/imgs/(.*\.jpg)$ /images/$1 break; #break可以阻止后面的语句
  27. }

3.2 简单地址重写

访问a.html重定向到b.html

  1. [root@proxy nginx]# vim conf/nginx.conf
  2. .. ..
  3. server {
  4. listen 80;
  5. server_name localhost;
  6. rewrite /a.html /b.html;
  7. location / {
  8. root html;
  9. index index.html index.htm;
  10. }
  11. }

访问192.168.99.5/下面子页面,重定向至www.tmooc.cn/下相同的子页面

$1 = 粘贴前面第一个小括号里的东西

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. .. ..
  3. server {
  4. listen 80;
  5. server_name localhost;
  6. rewrite /(.*) http://www.tmooc.cn/$1;
  7. location / {
  8. root html;
  9. index index.html index.htm;
  10. }
  11. }

3.3 不同网站跳转

/ 不管你访问什么网站 都往后面那个域名跳, 访问192.168.99.5的请求重定向至www.tmooc.cn

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. .. ..
  3. server {
  4. listen 80;
  5. server_name localhost;
  6. rewrite / http://www.tmooc.cn/;
  7. location / {
  8. root html;
  9. index index.html index.htm;
  10. }
  11. }

3.4 if判断

3.4.1 基本语法

  1. if (condition) { }
  2. if 可以支持如下条件判断匹配符号
  3. ~ 正则匹配 (区分大小写)
  4. ~* 正则匹配 (不区分大小写)
  5. !~ 正则不匹配 (区分大小写)
  6. !~* 正则不匹配 (不区分大小写)
  7. -f 和!-f 用来判断是否存在文件
  8. -d 和!-d 用来判断是否存在目录
  9. -e 和!-e 用来判断是否存在文件或目录
  10. -x 和!-x 用来判断文件是否可执行
  11. #在匹配过程中可以引用一些Nginx的全局变量
  12. $args 请求中的参数;
  13. $document_root 针对当前请求的根路径设置值;
  14. $host 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名;
  15. $limit_rate 对连接速率的限制;
  16. $request_method 请求的方法,比如"GET""POST"等;
  17. $remote_addr 客户端地址;
  18. $remote_port 客户端端口号;
  19. $remote_user 客户端用户名,认证用;
  20. $request_filename 当前请求的文件路径名(带网站的主目录/usr/local/nginx/html/images/a.jpg
  21. $request_uri 用于表示客户端请求的完整 URI,也就是请求地址,它记录了客户端发起的请求地址
  22. $query_string $args相同;
  23. $scheme 用的协议,比如http或者是https
  24. $server_protocol 请求的协议版本,"HTTP/1.0""HTTP/1.1";
  25. $server_addr 服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费);
  26. $server_name 请求到达的服务器名;
  27. $document_uri $uri一样,URI地址;
  28. $server_port 请求到达的服务器端口号;

假如旧的域名是www.lty.com,有需要使用新的域名www.liutianyang.com代替,但是旧域名不能废除,需要跳转到新的域名上,而且后面的参数保持不变

  1. //修改配置文件,写入rewrite和if结合使用
  2. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  3. server {
  4. listen 80;
  5. server_name www.lty.com;
  6. location / {
  7. if ($host = 'www.lty.com') {
  8. rewrite ^/(.*)$ http://www.liutianuang.com/$1 permanent;
  9. }
  10. root html;
  11. index index.html index.htm;

四、nginx反向代理

反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

反向代理的好处

  • 可以起到保护网站安全的作用,因为任何来自Internet的请求都必须先经过代理服务器。
  • 通过缓存静态资源,加速Web请求。
  • 实现负载均衡。顺便说下,目前市面上,主流的负载均衡方案,硬件设备有F5,软件方案有四层负载均衡的LVS,七层负载均衡的Nginx、Haproxy等。

4.1 部署实施后端Web服务器

后端部署两台web服务器

4.2 配置Nginx服务器

修改/usr/local/nginx/conf/nginx.conf配置文件

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. .. ..
  3. http {
  4. .. ..
  5. #使用upstream定义后端服务器集群,集群名称任意(如webserver)
  6. #使用server定义集群中的具体服务器和端口
  7. upstream webserver {
  8. server 192.168.99.100:80;
  9. server 192.168.99.200:80;
  10. }
  11. .. ..
  12. server {
  13. listen 80;
  14. server_name localhost;
  15. location / {
  16. #通过proxy_pass将用户的请求转发给webserver集群
  17. proxy_pass http://webserver;
  18. }
  19. }
  20. .. ..
  21. }

4.3 设置权重

weight 可以设置后台服务器的权重,权重越大任务的分配量就越大,权重值默认 1

就是访问两次web1,在访问一次web2,然后重复

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. upstream webserver {
  3. server 192.168.99.100 weight=2;
  4. server 192.168.99.200;
  5. }

4.4 设置健康检查

max_fails可以设置后台服务器的失败次数,fail_timeout可以设置后台服务器的失败超时时间

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. upstream webserver {
  3. server 192.168.99.100;
  4. server 192.168.99.200 max_fails=2 fail_timeout=30;
  5. }

4.5 设置相同客户端访问相同Web服务器

ip_hash根据客户端IP分配固定的后端服务器

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. upstream webserver {
  3. ip_hash;
  4. server 192.168.99.100 ;
  5. server 192.168.99.200 ;
  6. }

4.6 添加down标记

down标记可以让集群主机暂时不参与集群活动

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. upstream webserver {
  3. server 192.168.99.100 ;
  4. server 192.168.99.200 down;
  5. }

五、Nginx优化

5.1 自定义报错页面

优化前,客户端使用浏览器访问不存在的页面,会提示404文件未找到

修改Nginx配置文件,自定义报错页面

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. .. ..
  3. charset utf-8; #仅在需要中文时修改该选项
  4. error_page 404 /test.jpg; #自定义错误页面为一张图片,图片可以从真机拷入
  5. .. ..
  6. [root@proxy ~]# nginx -s reload

优化后,客户端再次使用浏览器访问不存在的页面,会看到图片

5.2 查看服务器状态信息

编译安装时使用--with-http_stub_status_module开启状态页面模块

  1. [root@proxy nginx]# cd ~/lnmp_soft/nginx-1.22.1/
  2. [root@proxy nginx-1.22.1]# ./configure \
  3. > --with-stream #开启4层代理模块
  4. > --with-http_stub_status_module #开启status状态页面
  5. [root@proxy nginx-1.22.1]# make #编译
  6. [root@proxy nginx-1.22.1]# killall nginx
  7. [root@proxy nginx-1.22.1]# cp objs/nginx /usr/local/nginx/sbin/ #覆盖原文件
  8. [root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx #开启nginx

修改Nginx配置文件,定义状态页面

  1. [root@proxy ~]# cat /usr/local/nginx/conf/nginx.conf
  2. location /status {
  3. stub_status on;
  4. #allow IP地址;
  5. #deny all;
  6. }
  7. [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload

优化后,查看状态页面信息

  1. [root@proxy ~]# curl http://192.168.99.5/status
  2. Active connections: 1
  3. server accepts handled requests
  4. 10 10 3
  5. Reading: 0 Writing: 1 Waiting: 0

Active connections:当前活动的连接数量。

Accepts:已经接受客户端的连接总数量。

Handled:已经处理客户端的连接总数量。

Requests:客户端发送的请求数量。

Reading:当前服务器正在读取客户端请求头的数量。

Writing:当前服务器正在写响应信息的数量。

Waiting:当前多少客户端在等待服务器的响应。

5.3 优化Nginx并发量

优化前使用ab高并发测试,使用web1或proxy自己作为海量客户(防火墙与selinux都关闭

  1. [root@proxy ~]# ab -n 100 -c 100 http://192.168.99.5/ #-n任务量,-c是连接数
  2. ...
  3. ...
  4. 100% #成功
  5. [root@proxy ~]# ab -n 2000 -c 2000 http://192.168.99.5/
  6. Benchmarking 192.168.99.5 (be patient)
  7. socket: Too many open files (24) #失败

修改Nginx配置文件,增加并发量

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. .. ..
  3. worker_processes 2; #与CPU核心数量一致
  4. events {
  5. worker_connections 50000; #每个worker最大并发连接数
  6. }
  7. .. ..
  8. [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload

优化Linux内核参数(最大文件数量)

  1. [root@proxy ~]# ulimit -n #查看最大文件数量
  2. [root@proxy ~]# ulimit -n 100000 #临时设置最大文件数量
  3. [root@proxy ~]# vim /etc/security/limits.conf
  4. .. ..
  5. * soft nofile 100000
  6. * hard nofile 100000
  7. #该配置文件分4列,分别如下:
  8. #用户或组 硬限制或软限制 需要限制的项目 限制的值

5.4 优化Nginx数据包头缓存

优化前,使用脚本测试超长头部请求是否能获得响应

默认情况下nginx无法支持长地址栏,会报414错误

  1. [root@proxy ~]# cat lnmp_soft/buffer.sh
  2. #!/bin/bash
  3. URL=http://192.168.99.5/index.html?
  4. for i in {1..5000}
  5. do
  6. URL=${URL}v$i=$i
  7. done
  8. curl $URL #经过5000次循环后,生成一个超长的URL地址
  9. [root@proxy ~]# ./buffer.sh
  10. .. ..
  11. <center><h1>414 Request-URI Too Large</h1></center> #访问失败

修改Nginx配置文件,增加数据包头部缓存大小

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. .. ..
  3. http {
  4. client_header_buffer_size 200k; #请求包头信息的缓存大小
  5. large_client_header_buffers 4 200k; #大请求包头部信息的缓存个数与容量
  6. .. ..
  7. }
  8. [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload

六、Session共享

  1. nginx将用户的请求分发到不同的服务器时,如果用户的两次请求被分发到了不同的服务器,而这些服务器之间没有共享session信息,就会出现session不一致的问题。具体来说,如果用户的第一次请求被分发到服务器A,并在该服务器上创建了session,而第二次请求被分发到服务器B,但服务器B上没有该用户的session信息,那么服务器B就无法识别用户的会话状态,导致用户需要重新登录或遇到其他会话相关的问题。

Nginx的Session共享主要解决以下几个问题:

  1. 单点登录(SSO):在单点登录系统中,用户只需要在一个地方登录,就可以访问所有与之关联的服务。Nginx通过Session共享,可以确保用户在不同服务之间的会话状态保持一致。
  2. 服务器集群:在服务器集群环境中,Nginx作为负载均衡器,将用户请求分发到不同的服务器上。如果每个服务器都独立维护Session,那么当用户请求被分发到不同的服务器时,可能会出现Session不一致的情况。通过Session共享,可以确保无论请求被分发到哪个服务器,用户都能保持一致的会话状态。

我们将使用Session共享存储:使用共享存储后端(如Redis、Memcached等)来存储Session数据。Nginx将用户的Session数据存储在共享存储中,并通过某种机制(如Session标识符)来关联用户的请求和Session数据。当用户请求到达不同的服务器时,这些服务器可以从共享存储中获取用户的Session数据,从而实现Session共享。

6.1 构建redis服务

redis安装-CSDN博客

6.2 服务器安装redis扩展

web主机上安装redis扩展

  1. yum -y install phpredis-5.1.0-1.x86_64.rpm

6.3 服务器上部署Session共享

修改PHP-FPM配置文件,并重启服务

  1. [root@web1 ~]# vim /etc/php-fpm.d/www.conf #修改该配置文件的两个参数
  2. # 最后一页的部分内容,修改前效果如下:
  3. php_value[session.save_handler] = files
  4. php_value[session.save_path] = /var/lib/php/session
  5. # 修改后效果如下:
  6. php_value[session.save_handler] = redis
  7. php_value[session.save_path] = "tcp://192.168.99.5:6379"
  8. [root@web1 ~]# systemctl restart php-fpm
标签: nginx 服务器 前端

本文转载自: https://blog.csdn.net/2301_78183285/article/details/138911740
版权归原作者 我爱云计算 所有, 如有侵权,请联系我们删除。

“Nginx详解”的评论:

还没有评论