在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、演示 1、规划 a、我们前面一台主机为nginx主机,用来处理静态资源和代理php资源。192.168.10.13 b、后端的一台主机作为fpm server和mysql server。192.168.10.14 2、实验 a、在后端主机安装相应的程序包。 (1)、安装程序包 [root@rs1 ~]# yum install -y php-fpm php-mysql php-mbstring php-mcrypt mariadb-server (2)、下载phpMyAdmin包
(3)、配置fpm进程参数 1)、配置进程参数 [root@rs1 /]# cat /etc/php-fpm.d/www.conf |grep -Ev "^;|^$|^ " [www] listen = 0.0.0.0:9000 user = apache group = apache pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 slowlog = /var/log/php-fpm/www-slow.log php_admin_value[error_log] = /var/log/php-fpm/www-error.log php_admin_flag[log_errors] = on php_value[session.save_handler] = files php_value[session.save_path] = /var/lib/php/session 2)、创建相应的目录并给其相应的用户权限 [root@rs1 /]# mkdir -p /var/lib/php/session [root@rs1 /]# chown apache:apache /var/lib/php/session 3)、然后启动我们的php-fpm进程即可 [root@rs1 /]# systemctl start php-fpm [root@rs1 /]# netstat -anpt |grep 9000 tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 2664/php-fpm: maste b、我们在前端nginx节点上配置相应参数 (1)、配置 [root@www ~]# cat /etc/nginx/conf.d/fpm_proxy.conf server { listen 80; server_name www.ilinux.io; index index.php index.html; location / { root /data/nginx/html; } location ~* \.hph$ { fastcgi_pass 192.168.10.14:9000; #指明代理到哪个地址的哪个端口上去,这儿是走的fastcgi协议。用的是我们nginx的fastcgi模块。但是只有这一项是远远不够的,因为我们在向后端进行传递时还需要传递很 多参数到后端服务器,否则后端服务器运行将无法获得用户请求时用户自己的各种属性信息。我们作为代理服务器来讲他会把客户端各种信息都隐藏起来,然后用自己向服务端发送请求,但是实际上很多客户端信息是需要发给服务器的,尤其是php服务器,因为他只有这样才能根据不同的用户请求生成不同的内容,这个传递是需要靠/etc/nginx/fastcgi_params这个文件来实现的。 } } (2)、我们/etc/nginx/fastcgi_params文件中定义了要把什么参数传递给后端主机 1)、fastcgi_param QUERY_STRING $query_string; #这段的意思是把nginx自己的变量 $query_string中保存的客户端信息的值传递给fastcgi所使用的变量QUERY_STRING。他们的名字很相像,只是nginx用的是小写字符,fastcgi使用的是大写字符。 [root@www nginx]# cat /etc/nginx/fastcgi_params fastcgi_param QUERY_STRING(fastcgi中使用的变量名) $query_string(通过nginx的这个变量传过去); fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; 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 REQUEST_SCHEME $scheme; fastcgi_param HTTPS $https if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 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; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200; 2)、在代理服务器中配置 server { listen 80; server_name www.ilinux.io; index index.php index.html; location / { root /data/nginx/html; } location ~* \.php$ { fastcgi_pass 192.168.10.14:9000; #指明代理到哪个地址的哪个端口上去,这儿是走的fastcgi协议。用的是我们nginx的fastcgi模块。但是只有这一项是远远不够的,因为我们在向后端进行传递时 还需要传递很多参数到后端服务器,否则后端服务器运行将无法获得用户请求时用户自己的各种属性信息。我们作为代理服务器来讲他会把客户端各种信息都隐藏起来,然后用自己向服务端发送请求,但是实际上很多客 户端信息是需要发给服务器的,尤其是php服务器,因为他只有这样才能根据不同的用户请求生成不同的内容,这个传递是需要靠/etc/nginx/fastcgi_params这个文件来实现的。 fastcgi_index index.php; #fastcgi自己的主页为index.php
c、在后端主机配置相应页面并且访问 www.ilinux.io/index.php即可 [root@rs1 ~]# mkdir -p /data/apps [root@rs1 ~]# cat /data/apps/index.php <?php phpinfo(); ?> [root@rs1 ~]# systemctl restart php-fpm d、然后我们在192.168.10.14上启动mysql
|
2022-07-29
2022-08-17
2022-11-06
2022-07-30
2022-08-17
请发表评论