图龙网络科技

问答社区

原创作者: 图龙网络科技 发布时间: 2023-09-23 250.45K 人阅读

Nginx配置:提供伪静态配置和WebSocket代理配置(/ws路径)

太极混元 发布于 2星期前 分类:知识文档

我们正在使用宝塔面板搭建一个后端环境。根据教程,我们需要安装和配置多个组件。以下是详细步骤:

1. 环境要求:

- Nginx: 1.16+,推荐1.24

- PHP: 7.2.x

- MySQL: 5.7~8.0,推荐5.7

- Redis: 7.x/6.x/5.x,推荐7.3

- Node.js版本管理器

- Supervisor管理器(进程管理器)

2. PHP扩展:需要安装fileinfo, redis, swoole4, imagemagick, opcache。同时,要求删除函数`proc_open`。

3. 新建一个站点,并部署后台程序。

4. Nginx配置:提供伪静态配置和WebSocket代理配置(/ws路径)。

5. 安装swoole扩展:需要上传`swoole_loader73.so`文件到指定目录,并在PHP配置中添加相关设置,包括指定许可证文件路径。

6. Node.js版本管理器:安装v16.19.1版本。

7. Supervisor配置:

- 通过yum安装supervisor。

- 安装进程守护管理器插件(注意版本要求)。

- 修改主配置文件,并重启supervisord。

8. 数据库:新建一个字符集为utf8mb4的数据库,并导入数据。

9. 注意事项:不要使用CDN。

10. 后台登录账号:admin,密码:admin123。

现在,我们将按照这个流程来操作。由于我们是在宝塔面板中操作,大部分步骤可以通过图形界面完成。

具体步骤:

### 1. 安装所需软件

在宝塔面板的“软件商店”中安装:

- Nginx(选择1.24版本)

- PHP 7.3(注意:教程要求7.2.x,但后面提到了PHP7.3的目录,所以我们安装7.3版本。可能是教程笔误?如果没有7.2,则用7.3。如果有7.2则安装7.2)

- MySQL 5.7

- Redis(推荐7.3,如果没有7.3,选择7.x)

- 安装“Node.js版本管理器”插件

- 安装“Supervisor管理器”插件(注意版本要求:3.0.1或3.0.0,不要3.0.2)

注意:如果PHP7.2和7.3都可用,根据教程后面提到的路径(/www/server/php/73)来看,应该使用PHP7.3。所以这里我们安装PHP7.3。

### 2. 配置PHP

进入PHP7.3的设置:

- 安装扩展:fileinfo, redis, swoole4, imagemagick, opcache。

注意:swoole4扩展可能需要通过“安装扩展”选项卡来安装。如果宝塔的扩展列表中没有swoole4,可以选择安装swoole(并选择版本4),或者手动编译安装。

- 在“禁用函数”中,删除`proc_open`函数(将其从禁用列表中移除)。

### 3. 新建站点

- 在网站菜单中,添加站点。

- 设置域名(如果没有域名,可以使用IP或本地hosts解析的域名)。

- 选择PHP版本为7.3。

### 4. 配置Nginx

在站点的设置中,修改Nginx配置:

- 在“伪静态”中,填入教程提供的伪静态规则。

- 在“配置修改”中,添加WebSocket代理的配置(即`location /ws`部分)。注意:这个配置应该放在server块内,与其他location同级。

### 5. 安装swoole_loader

- 按照教程,将`swoole_loader73.so`文件上传到`/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731`目录(注意:目录中的`20180731`可能因PHP版本和编译参数不同而不同,请根据实际情况调整。可以通过PHP信息页面查看扩展目录)。

- 然后,在PHP配置文件的最后(通过宝塔的PHP配置修改),添加:

```

[swoole]

extension = swoole.so

extension = swoole_loader73.so

swoole_loader.license_files=/www/wwwroot/你的站点目录/swoole-compiler.license

```

注意:需要将许可证文件`swoole-compiler.license`上传到站点目录(绝对路径),并在配置中指定正确路径。

### 6. 安装Node.js

- 在“软件商店”中找到“Node.js版本管理器”,进入。

- 找到v16.19.1,点击安装。

### 7. 配置Supervisor

- 通过SSH终端执行:`yum install supervisor -y`(如果已经安装则跳过)。

- 在宝塔面板的“软件商店”中安装“Supervisor管理器”插件(注意版本)。

- 进入Supervisor管理器的设置,点击“主配置文件”,用教程提供的配置替换。

- 然后,在SSH终端执行:`pkill -9 supervisord`,然后重启Supervisor服务(可以在宝塔插件界面重启,或者使用命令`supervisord -c /etc/supervisord.conf`启动)。

### 8. 数据库

- 在宝塔的数据库菜单中,新建一个数据库,字符集选择`utf8mb4`。

- 导入数据库文件。

### 9. 部署程序

- 将后台程序文件上传到站点目录。

- 确保许可证文件`swoole-compiler.license`已上传到站点目录(绝对路径,与PHP配置中的路径一致)。

### 10. 访问网站

通过浏览器访问站点,使用后台账号admin和密码admin123登录。

注意:教程中强调不要使用CDN,因此确保域名直接解析到服务器IP。

以上步骤涵盖了教程的主要内容。由于实际操作中可能会遇到路径或版本差异,请根据实际情况调整。

根据提供的教程,以下是基于宝塔面板的后端环境搭建步骤:

一、环境准备

  1. 安装必要组件(在宝塔面板的「软件商店」中安装):

    • Nginx 1.24(推荐)

    • PHP 7.2.x

    • MySQL 5.7(推荐)

    • Redis 7.3(推荐)

    • Node.js 版本管理器

    • Supervisor 管理器(进程守护)

  2. PHP 扩展安装

    • 进入 PHP 7.3 的「设置」→「安装扩展」:

      • fileinfo

      • redis

      • swoole4

      • imagemagick

      • opcache

    • 删除禁用函数
      在 PHP 设置的「禁用函数」中移除 proc_open

二、站点部署

  1. 新建站点

    • 域名填写您的实际域名(或服务器IP)。

    • PHP 选择 7.3 版本。

    • 数据库选择 MySQL 5.7,字符集设为 utf8mb4

  2. Nginx 伪静态配置
    在站点设置的「伪静态」中粘贴以下规则:

    location / {
        if (!-e $request_filename) {
            rewrite  ^(.*)$  /index.php?s=$1  last;
            break;
        }
    }
    
    location /ws {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_pass_request_headers on;
        proxy_read_timeout 60s;
        proxy_pass http://127.0.0.1:9501;
    }

三、Swoole 扩展配置

  1. 上传文件

    • 将 swoole_loader73.so 上传到目录:
      /www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/

    • 将 swoole-compiler.license 上传到站点根目录(如 /www/wwwroot/your-domain.com/)。

  2. 修改 PHP 配置
    在 PHP 7.3 的「配置文件」末尾添加:

    [swoole]
    extension = swoole.so
    extension = swoole_loader73.so
    swoole_loader.license_files=/www/wwwroot/your-domain.com/swoole-compiler.license

    替换 your-domain.com 为实际站点目录名。

四、Node.js 配置

  1. 在「Node.js 版本管理器」中安装 v16.19.1

五、Supervisor 配置

  1. 安装 Supervisor(通过 SSH 执行):

    yum install supervisor -y
  2. 安装插件

    • 在宝塔「软件商店」安装 Supervisor 管理器 3.0.1 或 3.0.0(勿用 3.0.2)。

  3. 修改主配置

    • 打开 Supervisor 的「主配置文件」,替换为以下内容:

      [unix_http_server]
      file=/var/run/supervisor.sock
      
      [inet_http_server]
      port=127.0.0.1:9001
      
      [supervisord]
      logfile=/var/log/supervisord.log
      pidfile=/var/run/supervisord.pid
      
      [rpcinterface:supervisor]
      supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
      
      [supervisorctl]
      serverurl=unix:///var/run/supervisor.sock
      serverurl=http://127.0.0.1:9001
      
      [include]
      files = /www/server/panel/plugin/supervisor/profile/*.ini
  4. 重启 Supervisor

    pkill -9 supervisord
    supervisord -c /etc/supervisord.conf  # 重新启动

六、数据库初始化

  1. 在宝塔「数据库」中创建新数据库:

    • 字符集选择 utf8mb4

  2. 导入您的 SQL 文件。

七、访问系统

  1. 上传程序文件
    将后端代码上传到站点根目录。

  2. 访问后台

    • 地址:http://您的域名或IP

    • 账号:admin

    • 密码:admin123

关键注意事项

  1. 禁用 CDN

    • 系统依赖实时数据与 WebSocket(端口 9501),使用 CDN 会导致功能异常。

  2. Supervisor 版本

    • 必须使用 3.0.1 或 3.0.0 版本,避免 3.0.2 的 Bug。

  3. 文件权限

    • 确保 swoole-compiler.license 的路径在 PHP 配置中正确,且文件可读。

  4. 防火墙设置

    • 放行端口:80(HTTP)、443(HTTPS)、9501(WebSocket)。

按以上步骤操作即可完成部署。遇到问题可检查 Nginx 错误日志(/www/wwwlogs/域名.error.log)和 PHP 日志(/www/server/php/73/var/log/php-fpm.log)。

0个回复

  • 龙族们都在等待回复

提供中小企业建站高端正版精品系统

正品模板 购买协议