Nginx 前端,带有 DirectAdmin 帐户的 Apache 后端

Nginx 前端,带有 DirectAdmin 帐户的 Apache 后端

我有一台安装了直接管理和 httpd apache 服务器。我听说如果你使用nginx作为前端,然后 apache 作为后端,它可以加快网站的加载速度。但在某些情况下教程据我了解,我需要在 apache 和 nginx 中配置虚拟主机。在我的服务器中,我有很多虚拟主机(DirectAdmin 帐户),有很多工作要做。

有没有什么捷径?

答案1

我非常怀疑有人编写了任何脚本来向每个虚拟主机添加代理代码。

我通常用以下两种方法之一来解决此类问题:

  • 正则表达式搜索和替换
  • 文本编辑器宏

我用的是文本编辑器 nedit,我曾在博客中讨论过它为什么很棒. 它具有出色的正则表达式支持和宏。

假设您有一堆类似这样的 nginx 指令:

server {
  listen myhost:80;
  server_name  myhost;
  location / {
    root /path/to/myapp/public;
  }
}

你需要让它看起来像这样

server {
  listen myhost:80;
  server_name  myhost;
  location / {
    root /path/to/myapp/public;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_pass http://myapp:8080;
  }
}

正则表达式搜索和替换

我使用正则表达式搜索root /path/to/(myapp)/public(请注意 myapp 周围的括号,以便我可以在替换中使用它)并将其替换为:

    root /path/to/\1/public;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_pass http://\1:8080;

我可以使用以下步骤创建一个宏来执行同样的事情:

  1. 搜索“位置 /”
  2. 将光标置于文档顶部
  3. 开始录制宏
  4. 按“ctrl g”再次搜索,找到“location /”的第一个实例
  5. 按“home”键,然后按“向下”箭头,到达下一行的开头
  6. 按“ctrl 右箭头”将光标按单词移动,直到到达“myapp”的开头
  7. 按“ctrl shift 右箭头”然后按“shift 左箭头”突出显示“myapp”
  8. 按“ctrl c”复制“myapp”
  9. 输入代理指令,需要时使用“ctrl p”粘贴“myapp”
  10. 停止录制宏
  11. 根据需要重复播放宏多次。

相关内容