编程技术分享平台

网站首页 > 技术教程 正文

记一次项目迁移升级 nginx 与php分离部署

xnh888 2024-10-08 20:43:37 技术教程 28 ℃ 0 评论

LNMP分离部署

最近公司的一个项目需要迁移升级,老大让我来负责,我利用碎片时间来记录一下,迁移的原因,由于以前此项目用户量不大,且都是公司内使用,一直都是单体模式来运行,现在 需要对公司外提供服务,对方要求必须要稳定,没(t)办(m)法(d),只能上云了,一(买)顿(买)操(买)作后, SLB,VPC,ECS,EIP,SNAT等一些服务就可以用了,这里并没有记录全部的记录,只记录了 配置nginx 与php的分离模式的搭建,这里为啥没有用常规的nginx和php放在一起呢,主要是原因,考虑到后期要使用lua,redis,网关等,不想与php来进行资源竞争,才选的这种方式

模拟环境

在本地测试,原理差不多,这里只开2台服务器

  • ubuntu环境
  • 2台服务器
  • 一台IP 10.10.100.136的 服务器安装openresty
  • 一台IP 为10.10.100.200的 服务器安装php7.4

在10.10.100.136服务器上安装openresty

openresty 是一款基于 NGINX 和 LuaJIT 的 Web 平台,有好多实用的组件,做网关,缓存啥的,都是不错的选择,推荐可以看看

安装步骤

步骤一:安装导入 GPG 公钥时所需的几个依赖包(整个安装过程完成后可以随时删除它们):

 sudo apt-get -y install --no-install-recommends wget gnupg ca-certificates

步骤二:导入我们的 GPG 密钥:

 wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add -

步骤三:添加我们官方 APT 仓库。

对于 x86_64amd64 系统,可以使用下面的命令:

 echo "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" \
     | sudo tee /etc/apt/sources.list.d/openresty.list

步骤四:更新 APT 索引:

 sudo apt-get update

然后就可以像下面这样安装软件包,比如 openresty

 sudo apt-get -y install openresty

安装目录

默认安装目录 /usr/local/openresty

运行命令

  • 查看状态
  • systemctl status openresty.service
  • 启动
  • systemctl start openresty.service
  • 停止
  • systemctl stop openresty.service
  • 重载
  • systemctl reload openresty.service

在10.10.100.200服务器上安装PHP7.4

在正式环境下,最好还是用源码或是yum安装吧,自定义比较方便,这里主要是为了方便而已

设置软件源并更新(可选 )

如果是新服务器,需要做以上的步骤,具体操作这 里不写了

安装php7.4

 apt-get install php7.4

安装php7.4-fpm

 apt-get install php7.4-fpm

运行命令

  • 查看状态
  • systemctl status php7.4-fpm.service
  • 启动
  • systemctl start php7.4-fpm.service
  • 停止
  • systemctl stop php7.4-fpm.service

openresty 和php的配置文件调整

openresty配置文件如下

配置文件目录

 /usr/local/openresty/nginx/conf

nginx.conf配置文件

说明:这里由于 是本地环境,并没有做任何的优化设置,直接在nginx.conf里修改的,正式环境上自行调整吧

 {
 
 worker_processes  1;
 
 error_log  logs/error.log  info;
 
 
 
 events {
     worker_connections  1024;
 }
 
 
 http {
     include       mime.types;
     default_type  application/octet-stream;
 
     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  logs/access.log  main;
 
     sendfile        on;
 
     keepalive_timeout  65;
     #反向代理池,这里可以设置多个参数,这里省略了
     upstream phppools {
     server 10.10.100.200:9000;
     }
     server {
         listen       80;
         server_name  localhost;
 
         location / {
             root   /wwwdata;#这个目录也必须要 在php服务器上有才可以
             index  index.php index.html index.htm;
         }
 
         error_page   500 502 503 504  /50x.html;
         location = /50x.html {
             root   /wwwdata;
         }
 
         location ~ \.php$ {
             root           /wwwdata;#这个目录也必须要 在php服务器上有才可以
             fastcgi_pass   phppools; #如果php服务器有多个,可以使用upstream来实现
             #fastcgi_pass   10.10.100.200:9000; #如果php服务器只有一台,可以这样设置
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;#如果访问出现404时,试试改下这里
             include        fastcgi_params;
         }
 
     }
 
 
 }
 

php7.4-fpm配置修改如下

配置目录

 /etc/php/7.4/fpm/pool.d

www.conf配置文件

需要修改监听 地址 ,需要把127.0.0.1socket的监听方式改成监听本地ip地址的 方式

 listen=10.10.100.200:9000

php 服务器上也需要有与openrestry服务器上有同样的目录,就是 这个/wwwdatap目录,需要与openresty配置文件中的root参数中的目录保持一 样,这样以后你的php项目都是放在这个php服务器上的/wwwdata目录里就可以正常访问了

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表