当前位置: 首页 > 编程笔记 >

Laravel 不同生产环境服务器的判断实践

张鹏鹍
2023-03-14
本文向大家介绍Laravel 不同生产环境服务器的判断实践,包括了Laravel 不同生产环境服务器的判断实践的使用技巧和注意事项,需要的朋友参考一下

项目的前期为了开发速度会使用单一应用,就是一个 Laravel 框架实现 API 和后台接口。

用户体量上来后,一台服务器不够了,项目就采用了 API 和 后台接口分开放到不同的服务器上面。

发现路由数量变多后影响到了性能,这个时候需要区别不同服务器去加载不同的路由。

如何去别不同的服务器区别环境,但是又要区别是生产环境。

代码实现

可以使用 app()->environment(); 方法实现,生产环境和测试环境的区别。

查看代码后发现可以使用更多的方法。

/**
 * 获取或检查当前应用程序环境。
 *
 * @return string|bool
 */
public function environment()
{
  // 返回传递给函数的参数数量
  if (func_num_args() > 0) {
    // 如果第一个参数是数组就去第一个,不是的话取全部的。
    $patterns = is_array(func_get_arg(0)) ? func_get_arg(0) : func_get_args();

    return Str::is($patterns, $this['env']);
  }

  return $this['env'];
}

Str::is 函数判断给定的字符串是否匹配给定的模式。星号 * 可以用来表示通配符:

# 判断在 API 环境
app()->environment("production.api");
# 判断在 ADMIN 环境
app()->environment("production.admin");
# 判断在所有环境
app()->environment("production.*");

修改 RouteServiceProvider 文件

/**
 * Define the routes for the application.
 */
public function map()
{
  // 公共路由

  if (app()->environment('production.api')) {
    # production api 路由
    $this->mapApiRoutes();
  } elseif (app()->environment('production.admin')) {
    # production admin 路由
    $this->mapAdminRoutes();
  } else {
    # local testing stanging 环境下加载所有路由
    $this->mapApiRoutes();

    $this->mapAdminRoutes();
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 我的插座有问题。io作为一名广播员与laravel echo合作。 我试过什么: 我可以看到用户在日志中连接: 我的队列正在运行,正在正确记录所有事件。 我可以在redis控制台中完美地看到redis我的事件和数据库通知。 但是没有广播任何事件,我也没有在laravel echo服务器控制台中看到它们。一切都在我的本地主机上运行,但在生产环境中没有,我失去了理智。 以下是我的laravel ech

  • 我在我的Laravel项目中有这个ajax请求(这是一个简单的版本,但它正在工作): 当我在本地工作,我使用PHP工匠服务ajax调用工作,但当我部署到我的正式服没有(因为路径 /admin/lessons/addMember/licenseMemberId不是服务器中的完整路径)。最好的方法应该是走这条路线,但我不知道怎么走。这是路由表: 有没有办法在参数设置中使用laravel路线?如果没有,

  • 生产中的EAP EAP在默认的FreeRADIUS安装中开箱即用。但是,也有一些要点需要注意或更改以适应您的环境。在本节中,我们将介绍以下几点: 适当的公钥基础设施(PKI)的重要性 配置内部隧道虚拟服务器 内部和外部隧道识别的问题 禁用未使用的EAP方法 公共密钥基础设施简介公钥基础结构主要用于两件事: 验证某人的身份 通过不安全的连接交换安全数据 为了确保某人是他们声称的人,我们使用证书颁发机

  • 我用的是插座。io和laravel echo服务器上安装了Redis和SSL,但未安装套接字。io文件没有加载到生产ubuntu服务器上。在我的本地窗口中一切正常。我不确定生产是否需要任何其他配置。我还允许UFW 6001端口。 这是我的laravel-echo-server.json档案。 } 我在不同的门户网站上搜索,并得到一些帮助,我应用了以下一些东西。 允许ufw端口6001 运行命令la

  • 更新时间:2019-08-31 11:22:33 服务分为生产环境与开发环境,未发布的服务认为是在开发环境,发布后的服务为生产环境的服务。生产环境的服务才可以在web工作台,或代码工程内调用。生产环境的服务不可再进行修改,需要在开发环境中修改部署发布服务后,才可生效。 服务运维监控功能是为生产环境的服务提供的,您可以在此查看生产环境服务的调用量及运行日志。

  • 生产环境打包要做两件事: 压缩应用代码; 使用 Vue.js 指南中描述的部署方式去除 Vue.js 中的警告。 下面是配置示例: // webpack.config.js module.exports = { // ... other options plugins: [ // short-circuits all Vue.js warning code new webp

  • 在构建我们的生产bundle时有两件事情要做: 1.压缩我们的应用代码; 2.使用Vue.js指南中描述的设置删除Vue.js源代码中的所有警告。 这里有一个示例的配置: // webpack.config.js module.exports = { // ... 其余配置 plugins: [ // 忽略所有Vue.js警告代码 new webpack.DefinePlu

  • 引言 Sentinel 目前已可用于生产环境,除了阿里巴巴以外,也有很多企业在生产环境中广泛使用 Sentinel。 生产环境的 Sentinel Dashboard 需要具备下面几个特性: 规则管理及推送,集中管理和推送规则。sentinel-core 提供 API 和扩展接口来接收信息。开发者需要根据自己的环境,选取一个可靠的推送规则方式;同时,规则最好在控制台中集中管理。 监控,支持可靠、快