我想将一个PHP应用程序从Apache迁移到Nginx。 问题是,应用程序中断,因为路由不再工作,我不知道如何解决它。 PHP应用程序包含一些.htaccess文件,我试图将它们转换为Nginx。 第一个是在文档根目录下: <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IfModule> 第二个是在/ public / <IfModule mod_rewrite.c RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Rewrite all other URLs to index.php/URL RewriteRule ^(.*)$ index.php?url=$1 [PT,L] </IfModule> <IfModule !mod_rewrite.c> ErrorDocument 404 index.php </IfModule> 第三个也是最后一个是: deny from all 我的nginx版本如下所示: #user nobody; […]
我从源代码自己编译和安装了很多程序。 因为我有一个工作安装的Apache + PHP,但想尝试Nginx + PHP-FPM我想安装这些非标准的位置,如/ nginx和/ php-fpm 除了可执行文件不在PATH中(但可以解决这个问题),还有什么其他的问题或后果呢?
我正在寻找像domain.com/login而不是domain.com/login.php文件 我的NGiNX站点configuration是: #02API server { # listen 80 deferred; # for Linux # listen 80 accept_filter=httpready; # for FreeBSD listen 80; # The host name to respond to server_name api.api.com; # Path for static files root /app/api/api; # Try static files first, then php index index.html index.htm index.php; # Specific logs for this vhost access_log […]
如果有很多小型网站(大约300个)在轻量级网站上运行,他们是否应该使用同一个池,还是为每个池设置单独的池? 让我们假设这些网站是可信的,并且在池中拥有一个单独的用户/组(例如,更好地控制访问/权限)在这里不被考虑。
我正在使用linode nodebalancer(loadbalancer)来设置我的nginx / php5-fpm服务器。 这平衡器被动检查。 这些被动检查,检查请求的状态代码。 如果5XX状态码过多,节点(vps)将由负载平衡器标记为脱机状态 节点平衡器将我的服务器以随机方式离线。 当联系linode支持他们得出结论,没有500错误,但连接丢失(或超时)。 我在我的nginx日志中找不到任何东西。 有没有什么办法可以debugging这个问题,看看哪些连接被nginx放弃了? 编辑我可以看到来自相同的IP /用户代理大量的408请求。 他们进来散装..这是可疑的? 你将如何处理这种情况? 来自access.log的快照 69.30.*.* – – [22/Apr/2014:19:28:29 +0200] "POST /error/register-image-error/ HTTP/1.1" 408 0 "http://www.mysite.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 69.30.*.* – – [22/Apr/2014:19:28:29 +0200] "POST /error/register-image-error/ HTTP/1.1" 408 0 "http://www.mysite.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 69.30.*.* […]
这是我的第一个使Varnish在我的专用服务器上工作,该服务器托pipe2个具有2个独立IP地址的域。 我简化的设置如下: Nginx conf server { listen ip-address-1:8080; } server { listen ip-address-2:8080; } 清漆vcl backend default { .host = "127.0.0.1"; .port = "80"; } 在我定义的清漆conf VARNISH_LISTEN_PORT=80 Varnish和Nginx(和php-fpm)运行正常,但是当我尝试去我的网站时,显示nginx页面的欢迎。 标题中没有x-varnish。 看起来由于某种原因,清漆不听80端口。我怀疑这与127.0.0.1主机正在监听的vcl文件有关。 我正在运行两个WordPress的网站。 我应该在哪里寻找让Varnish正常工作? 干杯,阿德南 编辑: Nginx似乎在8080正确,但Varnish不听正确的IP地址。 使用Jens多个清漆IP地址netstat -lnp产生: Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 46.105.40.241:8080 0.0.0.0:* LISTEN 21610/nginx tcp […]
这里是“make test”的结果: ===================================================================== TEST RESULT SUMMARY ——————————————————————— Exts skipped : 46 Exts tested : 33 ——————————————————————— Number of tests : 13061 9219 Tests skipped : 3842 ( 29.4%) ——– Tests warned : 1 ( 0.0%) ( 0.0%) Tests failed : 7 ( 0.1%) ( 0.1%) Expected fail : 38 ( 0.3%) ( 0.4%) Tests passed […]
我使用php-fpm和nginx,我正在运行一个缓慢的脚本,但是它阻止了所有的Cloudflare连接,很可能是一个php-fpm的问题,但我无法通过Googlefind任何东西。 如果我运行php脚本(sleep(10)),它将阻塞所有其他页面,直到脚本完成。 但是,我直接访问服务器,我不知道这个问题。 有任何想法吗? php-fpmconfiguration: pm = dynamic pm.max_children = 50000 pm.start_servers = 120 pm.min_spare_servers = 90 pm.max_spare_servers = 180 pm.max_requests = 5000 request_slowlog_timeout = 60s slowlog = /var/log/php-fpm/www-slow.log catch_workers_output = yes nginxconfiguration: user nginx; worker_processes 12; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 19000; } worker_rlimit_nofile 20000; http { include /etc/nginx/mime.types; default_type application/octet-stream; […]
我想configuration一个能够托pipe多个网站的NGINX服务器,这个网站是相互独立的,所以vhosta不能从vhostb访问文件。 我安装了一个新的Debian 7.5服务器,并从默认的debian软件包中安装了NGINX和PHP FPM。 然后,我将添加2个新用户vhosta和vhostb ,并将NGINX web服务器用户www-data到每个用户的组中。 接下来我创build了以下目录结构。 var/ |—www/ |—vhosta |—httpdocs (permissions 750 – owner: vhosta – group: vhosta) |—vhostb |—httpdocs (permissions 750 – owner: vhostb – group: vhostb) 我为每个虚拟主机configuration了一个单独的PHP FPM池,以便为每个虚拟主机分离PHP进程。 configuration如下(只显示vhosta ) [vhosta] listen = /var/run/php5-fpm-vhosta.sock user = vhosta group = vhosta listen.owner = vhosta listen.group = vhosta 据我所知,这个configuration应该单独访问vhostb's httpdocs目录中的文件,因为vhosta没有从vhosta的httpdocs文件夹的访问权限。 我validation了这一点,试图在vhosta创build一个简单的PHP脚本,该脚本尝试访问vhostb's httpdocs目录中的文件。 到现在为止还挺好。 […]
最近我重新安装了Ubuntu 14.04 LTS,nginx / 1.6.1和php5-fpm的服务器。 当我尝试访问index.html它正在工作,当我尝试访问index.php我得到“404未find”。 我再次检查.conf文件,我无法find问题。 server { listen myip:80; server_name www.example.com; rewrite ^(.*) http:// example.com$1 permanent; } server { listen myip:80; server_name example.com; root /var/www; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.html; } access_log off; error_log /var/www/error.log; rewrite_log on; error_page 403 404 /404.html; error_page 500 502 503 504 /404.html; […]