AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

    • 主页
    • 系统&网络
    • Ubuntu
    • Unix
    • DBA
    • Computer
    • Coding
    • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-64204

Max's questions

Martin Hope
Max
Asked: 2012-11-20 06:07:37 +0800 CST

我能用 percona 工具包的 pt-table-sync 做什么?

  • 3

我一直在寻找一种工具来同步来自 2 个不同数据库的表,并找到了pt-table-sync. 我阅读了文档并感到困惑:他们主要使用引用复制环境的示例,但我认为复制的全部意义在于为您处理数据同步,因此我的问题是:

问题

  1. pt-table-sync如果复制过程应该为您处理数据同步,那么使用它有什么意义呢?

  2. 我可以pt-table-sync在非复制环境中使用吗(2+主机之间没有任何关系,是不是给的pt-table-sync --execute host1 host2 host3例子的作用)?

  3. 如果我必须pt-table-sync在复制的环境中使用,我可以不使用吗bin-logs(master有一个例子讨论解决因 pt-table-checksum想知道是否bin-logs绝对必要而发现的差异)?

mysql
  • 3 个回答
  • 8534 Views
Martin Hope
Max
Asked: 2012-11-16 03:27:35 +0800 CST

如何将自定义参数从 Nginx 传递给 PHP?

  • 12

我正在Nginx 1.2.4结合使用PHP-FPM 5.4.8并fastcgi尝试将自定义参数传递给PHP. 以下是我目前找到的选项:

  • 使用env指令在中设置环境变量并使用或从中nginx获取它。问题是它只在上下文中运行,而我需要在上下文中设置参数。getenv()$_ENVPHPenvmainserver

  • 使用fastcgi_param专为此设计的指令。

我尝试使用以下方法更改某些参数的值fastcgi_param但未成功:

nginx:

fastcgi_param PATH_INFO "/var/tmp";

PHP:

我检查了我能找到的所有预定义数组:

echo '<pre>';
echo "\n".'$GLOBALS'."\n"; var_dump($GLOBALS);
echo "\n".'$_SERVER'."\n"; var_dump($_SERVER);
echo "\n".'$_GET'."\n"; var_dump($_GET);
echo "\n".'$_POST'."\n"; var_dump($_POST);
echo "\n".'$_FILES'."\n"; var_dump($_FILES);
echo "\n".'$_REQUEST'."\n"; var_dump($_REQUEST);
echo "\n".'$_SESSION'."\n"; var_dump($_SESSION);
echo "\n".'$_ENV'."\n"; var_dump($_ENV);
echo "\n".'$_COOKIE'."\n"; var_dump($_COOKIE);
echo "\n".'$php_errormsg'."\n"; var_dump($php_errormsg);
echo "\n".'$HTTP_RAW_POST_DATA'."\n"; var_dump($HTTP_RAW_POST_DATA);
echo "\n".'$http_response_header'."\n"; var_dump($http_response_header);
echo "\n".'$argc'."\n"; var_dump($argc);
echo "\n".'$argv'."\n"; var_dump($argv);
echo '</pre>';

唯一要显示PATH_INFO的是$_SERVER:

var_dump($_SERVER); // ["PATH_INFO"]=> string(0) ""

但是我设置的值nginx没有被考虑在内。

Q1:我是否需要在nginx/php级别配置任何东西才能使fastcgi_param指令生效?

Q2:该fastcgi_param指令是否仅限于预定义的参数列表(例如,我可以设置PATH_INFO但不能设置我自己的自定义变量,例如FOO)?

Q3:如果 Q2 是:有没有办法从 Nginx 向 PHP 传递自定义参数?

php
  • 2 个回答
  • 27107 Views
Martin Hope
Max
Asked: 2012-09-25 05:50:11 +0800 CST

为 mysql 复制准备服务器并将其用作独立服务器

  • 0

我想在运行服务器的单个服务器上托管应用程序MySQL。为了获得最佳性能,我计划使用UNIX套接字连接(以避免TCP开销)。后来,我想通过添加额外的服务器来扩大规模,这些服务器是从第一台服务器 ( ) 复制的MySQL只读实例 ( )。我感兴趣的是提出一个初始设计,使我能够轻松顺利地扩展到后期阶段的复制设置,对此我有几个问题:slavemaster

UNIXQ1:是否建议在复制到其他服务器时不要通过套接字使用同一台服务器TCP?

MySQLQ2:将服务器设置为复制为主但不使用复制是否会对性能产生影响(如果有,数量级是多少) ?

mysql
  • 1 个回答
  • 172 Views
Martin Hope
Max
Asked: 2012-06-24 03:29:50 +0800 CST

直接从 nginx 回显 404 以提高性能

  • 0

我负责为网站提供静态内容的生产服务器。这些服务器不断被机器人抓取以寻找潜在的漏洞利用(这在安全方面并不是什么大问题,因为无法访问 Web 服务器后面的应用程序)但404每天生成数千个,有时每小时生成数以千计。我正在研究阻止这些请求的方法,但这很棘手(你想确保你不阻止合法流量,而且这些机器人变得越来越聪明,看起来像是合法的)并且需要我一段时间找到可接受的解决方案。

与此同时,我想减少服务这些404页面对性能的影响。事实上,我们使用nginx的是默认配置为404从磁盘提供页面(这可以使用error_page指令更改,但最终404必须从磁盘或其他外部源(例如上游应用程序,这将是最差))这并不理想。

ab我在我的本地机器上用基本配置运行了一个测试:在一种情况下,我echo直接从中发送一条消息,nginx所以磁盘根本没有被触及,在另一种情况下,我找到了一个丢失的页面并从磁盘nginx提供它。404

server {
  # [...] the default nginx stuff
  location / {

  }
  location /this_page_exists {
     echo "this page was found";
  }
}

以下是测试结果(我的笔记本电脑有 Intel(R) Core(TM) i7-2670QM + SSD,以防你想知道为什么它们这么高):

$ ab -n 500000 -c 1000 http://localhost/this_page_exists
Requests per second:    25609.16 [#/sec] (mean)

$ ab -n 500000 -c 1000 http://localhost/this_page_doesnt_exists
Requests per second:    22905.72 [#/sec] (mean)

如您所见,返回一个值为echo( 11%(25609−22905)÷22905×100) 的值比404从磁盘提供页面更快。因此,我想echo从.404 Page not Foundnginx

到目前为止我尝试了很多东西但都失败了,基本上这个想法是这样的:

location / {
  try_files $uri @not_found;
}
location @not_found {
  echo "404 - Page not found";
}

问题是一旦使用该echo指令,http response code就会设置为200. 我尝试通过这样做来改变它,error_page 200 = 400但这会破坏配置。

如何404直接从 nginx 提供页面?(不破解可能是下一步的来源)

ubuntu nginx
  • 2 个回答
  • 1832 Views
Martin Hope
Max
Asked: 2012-06-22 05:53:49 +0800 CST

使用 Ubuntu 12.04 重启后文件夹从 /var/run 中消失

  • 3

我在Ubuntuphp5-fpm上使用. 在安装过程中,我手动创建了里面的文件夹,以便可以在其中创建它的套接字,它可以。问题是每当我重新启动计算机时,该文件夹就会消失并且不再能够创建套接字,因此每次重新启动时我都需要再次手动创建该文件夹。我可以将该例程放在启动脚本中,但我想知道以下内容:UNIX/var/run/php5-fpm/www.conf.sockphp5-fpm/var/run/php5-fpmphp5-fpm/var/runphp5-fpm/var/run/php5-fpm//etc/init.d/php5-fpm

/var/run/php5-fpm/重新启动时应删除该文件夹是否有任何原因?

信息:我正在运行ubuntu 12.04桌面(我计划在主机上使用服务器版本,但现在我正在笔记本电脑上使用桌面版本进行一些测试)。

ubuntu socket
  • 1 个回答
  • 1846 Views
Martin Hope
Max
Asked: 2012-06-21 12:11:07 +0800 CST

如何确保客户在我的网站更新时更新他们的浏览器缓存?

  • 2

我正在使用HTTP 1.1 Cache-Control标头来实现客户端缓存。因为我每个月只更新一次我的网站,所以我希望CSS和JS文件可以缓存 30 天Cache-Control: max-age=2592000。问题是定义的30天周期Cache-Control与网站更新周期不一致,是从用户访问网站的那一刻开始,到30天后结束,这意味着更新可能在此期间发生,用户会使用过时的内容运行一段时间,这可能会破坏网站的呈现,例如,如果HTML和CSS不再匹配。

我如何在几天内执行客户端内容缓存,但以某种方式让用户CSS/JS在网站更新后刷新他们的文件?

我能想到的一种解决方案是,如果网站更新可以定时,max-age服务器返回的每天可以相应减少,这样无论人们什么时候访问网站,缓存期的结束都会与网站更新同步,但是每天更改服务器配置违背了我的系统管理员原则之一(一旦它运行,就不要碰它)。

http cache static-content
  • 1 个回答
  • 5794 Views
Martin Hope
Max
Asked: 2012-06-14 04:57:59 +0800 CST

编译 Nginx 时保持 sites-available/enabled 结构

  • 1

我正在使用nginx默认ubuntu情况下具有sites-available/enabled类似于Apache存储站点配置文件的目录结构。我已经nginx使用以下配置编译(因为我需要第三方模块):

./configure \
    --prefix=/opt/nginx/version \
    --http-log-path=/var/log/nginx/access.log \
    --error-log-path=/var/log/nginx/error.log \
    --pid-path=/var/run/nginx.pid \
    --with-http_ssl_module \
    --user=nginx \
    --group=nginx \
    --add-module=...

Nginx 工作正常,但现在我需要配置我的所有站点,/opt/nginx/version/conf/nginx.conf其中不像sites-available/enabled目录结构那样易于维护,因此我可以为每个站点创建 1 个文件并决定哪些站点启用了符号链接。

我查看了安装选项,但我看到的只是--conf-path指定nginx.conf.

有没有办法通过sites-available/enabled编译的 nginx 重用目录结构?

ubuntu configuration nginx
  • 2 个回答
  • 1808 Views
Martin Hope
Max
Asked: 2012-06-02 04:00:54 +0800 CST

仅针对某些请求单独的 Nginx 访问日志文件

  • 8

据我所知,Nginx 默认支持 2 个日志文件:(error_log跟踪与 Nginx 服务器本身相关的问题)和access_log(跟踪 Nginx 处理的请求)。虽然可以access_log使用log_format指令控制格式,但我一直未能找到一种仅将某些请求记录到单独文件的方法,因此想问 SF 上的问题作为未来读者的参考:

有没有办法将某些请求记录到与定义的日志文件不同的日志文件中access_log?

仅供参考,这个问题背后的原因是我有一条规则拒绝使用 200 访问不需要的爬虫(因为 403 会暗示他们被阻止),并且过滤掉这些请求access_log变得更加困难。

ubuntu logging nginx request blocking
  • 4 个回答
  • 13756 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助
subwaysurfers
my femboy roommate

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve