我将 nginx 与 php5-fpm 以及以下fastcgi_params文件一起使用:
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param HTTPS $https;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
Run Code Online (Sandbox Code Playgroud)
我注意到该$_SERVER['HTTP_REFERER']变量未设置。我在 nginx wiki 中搜索了任何对 Referer 标头的引用,但找不到任何提及与 fastcgi 相关的问题的内容。 …
我的 httpd.conf 文件中有一个 Apache 301 重定向,它将所有流量重定向到单个域以实现标准化。我最近注意到此重定向不会在标头中保留引荐来源网址。 RFC2616似乎表明在重定向中保留引荐来源网址是可选的,并且实际上建议在 HTTP 和 HTTPS 之间交叉时不要这样做。
不过,我发现了其他问题,其中简单的 Apache 301 重定向保留了引用者,并且默认情况下通常是这种情况。还有哪些其他因素可能会影响这种行为,我可以利用这些因素来保留推荐人?唯一的因素是否基于 Apache 服务器版本和/或客户端的浏览器设置(IE。超出我的控制范围)?
我的重定向:
ServerAlias www.example.com sub1.example.com
## Redirect all sub-domains to www
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
关于上述重写规则,我正在访问http://sub1.example.com. 为了简单起见,我目前只是使用 HTTP,直到我能弄清楚这一点。
我确定引荐来源网址未被保留的方法是通过打开开发人员工具的浏览器手动访问重定向的站点。我还确定引荐来源网址未包含在$_SERVER接收页面上的 PHP 全局中。我可以确认仅发生 1 次重定向。服务器端语言是PHP。
以下是初始页面 (sub1.example.com) 的请求标头:
GET / HTTP/1.1
Host: sub1.example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate …Run Code Online (Sandbox Code Playgroud) 我有一台运行 Fedora Core 5 的 Web 服务器(是的,我知道它很旧)并且它运行的是 PHP 5.1.6,所以我下载并编译了 5.2.9 的源代码并重新启动了服务器,phpinfo() 仍然返回 5.1.6 .
$ which php
/usr/local/bin/php
Run Code Online (Sandbox Code Playgroud)
但是当我在这个 PHP 安装上进行版本切换时,我得到了
$ /usr/local/bin/php -v
PHP 5.2.9 (cli) (built: May 26 2009 10:17:42)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
Run Code Online (Sandbox Code Playgroud)
我可能遗漏了什么,或者我该如何纠正?
在我们其中一台服务器的 apache 错误日志 (/usr/local/apache/logs/error_log) 中,我们看到一个 shell 命令经常运行并抛出错误,如下所示:
sh: list_price: command not found
Run Code Online (Sandbox Code Playgroud)
list_price 是我们在 50 多个网站上的电子商务系统中使用的一个字段,当然没有任何可疑之处。问题是我们不知道这是如何传递给 shell 的——我们已经检查了 exec() 和 system() 的所有出现,但我们看不出这是如何传递的。有什么方法可以让我们更容易地检测到它的来源可能是什么,因为没有什么比我上面所说的更有意义的输出了。仅供参考,这是在运行 CentOS 5 的服务器上,有问题的站点都是 PHP。
我如何从我的操作系统 WindowsServer2003 中创建一个 Internet 网络服务器,例如在它上面有我自己的 PHP 论坛?
将通用 Web 应用程序代码共享到多个 Web 服务器的最佳方式是什么?
例如,我有一个包含用 PHP 编写的 Web 应用程序的目录。现在,我有多台机器可以提供相同的内容,每台机器都运行一个网络服务器,使用 TCP/IP 平衡器进行负载平衡。
对于这种情况,我还没有尝试过 NFS。但是根据Slow NFS transfer performance of small files,传输性能会很慢,因为涉及到很多[小]文件。
编辑:我想将所有文件集中存储在一个位置,因此网络服务器将立即读取代码更新。
在具有不同主机的完全不同的位置拥有 Web 服务器 (apache/php) 和数据库服务器 (mysql) 对性能有何影响。
编辑:它是一个数据库密集型 Web 应用程序,因此每个页面都会多次访问数据库。数据库通常是 Web 应用程序的瓶颈,只是想知道与数据库交互的典型速度相比,网络速度是否重要。
最近在我的一个运行 apache 和 php 的客户端服务器上,我注意到一堆随机文件被放置在网站上的每个文件夹中。它们以随机数命名,例如 205492.php。
还有 .htaccess 文件与这些随机编号的文件一起放置。我的主机告诉我它的客户端上传脚本在 php 中,但文件的所有者/组设置为 httpd。我认为这意味着它的 apache 守护进程将文件放在这里。这些文件的创建时间都设置为完全相同的时间戳。
在随机的 php 文件中有很多 CURL 和 base64_encode 函数。我确实注意到建立我的客户网站的人在整个文件夹中将 chmod 设置为 777。我从那以后改用 755 认为这可能是问题所在。
我想知道以前是否有人听说过这样的事情,是否有人有任何建议。非常感谢您的时间。
在很多情况下,我遇到过 apache 服务器,这些服务器“阻塞”了对编写不当的 PHP 页面的服务请求。查看HTTP状态页面,所有服务器都处于“W”状态。虽然有时可以使用日志和一些幸运的猜测找到有问题的站点,但在运行大量网站的系统上,使用日志找到有问题的脚本几乎是不可能的。
那么,有没有办法找出给定 apache 进程“现在”正在服务的请求?我查看了 /proc/ 目录,没有发现任何有用的东西。我认为 strace 可能会有所帮助,但前提是您在请求开始之前就开始使用它。
有任何想法吗?
顺便说一句:我对“slowloris”DOS 攻击很熟悉,这不是我要说的。
我正在用 PHP 和 MYSQL 创建一个分类广告网站。
我怎么知道我需要 Windows 服务器还是 Linux?
我要选主持人了。
任何其他建议也表示赞赏...
谢谢
php ×10
web-server ×4
apache-2.2 ×2
linux ×2
mysql ×2
apache-2.4 ×1
bash ×1
centos ×1
fedora ×1
html ×1
http ×1
http-headers ×1
mod-rewrite ×1
nginx ×1
php-fpm ×1
php5 ×1
shell ×1
sql ×1