Articles of Apache

优化Nginx

我使用Nginx作为RPS,并有服务器无法处理超过100个请求/秒的问题。 如果一个IP发送了这么多的请求,Nginx将为大家服务502错误。 这是我的。 这个规格的专用机器, 100 mbps(双向)。 双核CPU 5 GB内存Windows Server 2008 R2 Apache,PHP(作为模块)和MySQL在后面handelingdynamic内容。 Nginx在前面,并将请求传递给Apache。 服务器上的每个页面都是dynamic生成和优化的,没有MySQL负载等。每个页面大小在50KB以下。 响应时间/加载时间在0.6s以下。 所以一切都很快,直到有人打开任何软件并向服务器发送请求,当请求速率大约为100req / s时,它开始发送502错误。 请求永远不会到达Apache。 所以这不是一个Apache问题。 那台服务器能处理多less? 这里是Nginx CONF的样子, http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log K:/logs/nginx/access.log main; sendfile off; server_tokens off; keepalive_timeout 65; server_names_hash_bucket_size 64; […]

mod_wsgi和uwsgi有什么区别?

在Apache中似乎有mod_wsgi模块,而在Nginx中似乎有uwsgi模块。 而且似乎也有wsgi协议和uwsgi协议。 我有以下问题。 mod_wsgi和uwsgi只是不同的实现向Python web开发人员提供WSGIfunction吗? 有没有mod_wsgi的Nginx? uwsgi是否也向开发者提供了application(environ, start_response)入口点? 除了wsgi之外,uwsgi是否也是一个单独的协议? 在这种情况下,uwsgi协议与wsgi协议有什么不同?

如何防止用户访问wp admin和wp-login.php?

我想限制所有用户访问WordPress网站login。 例如 :假设我有WordPress网站域example1.com ,我想限制所有用户访问example1.com/wp-admin和密码example1.com/wp-admin和example1.com/wp-login.php 。 当任何用户点击这些URLredirect到restrict_user页面,我也想访问example1.com/user_login wordpresslogin页面,而不是命中example1.com/wp-admin和example1.com/wp-login.phpurl。 并请build议我如何使我的WordPress网站从黑客更安全?

Ubuntu 14.04 Apache + SSL服务器,如何configurationVarnish

我有一个运行在Apache2和SSL的Ubuntu 14.04服务器上的Magento。 我已经安装了Varnish,但不知道如何使用SSL进行设置,而不使用Nginx。 这是我目前的虚拟主机文件; <VirtualHost *:443> ServerName mysite.com ServerAlias www.mysite.com ServerAdmin webmaster@localhost DocumentRoot /var/www/mysite.com <Directory /var/www/mysite.com/> Options Indexes FollowSymLinks MultiViews AllowOverride All </Directory> SSLEngine on SSLCertificateFile /home/ssl/mysite_com.crt SSLCertificateKeyFile /home/ssl/mysite.com.key SSLCACertificateFile /home/ssl/mysite_com.ca-bundle ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <VirtualHost *:80> ServerName mysite.com RewriteEngine On RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=permanent] </VirtualHost>

使用Apache2(或Nginx)处理Http请求。 是否为每个或一组N个请求创build一个新的进程?

Web服务器(WS)(比如apache2或者nginix(或者像tomcat(TC)这样的容器)会创build一个新的进程来处理接收到的请求,我担心的是支持大量并行用户(比如20K +并行用户)的服务器。 我认为负载平衡发生在Web服务器的另一端(如果它用于Tomcat等)。 所以从理论上讲,一个Web服务器应该接受所有(20K +)传入请求,然后才能将负载分发给支持它的其他服务器。 所以,问题是:Web服务器(WS)在一个进程中处理所有这些请求,或者巧妙地产生其他进程来帮助共享工作(我知道“客户端 – 服务器”绑定发生 – client_host:random_port plus server_host: fixed_port )。 参考资料:在阅读本文之前: 用Apache来面向Tomcat我认为这是一个完成所有聪明工作的单一过程。 但是在这篇文章中提到了MPM(多处理模块) 它结合了两个世界中最好的,有一组subprocess,每个进程有一组独立的线程。 有些网站正在使用此技术运行10K +并发连接。 而且随着线程的产生,如上所述,线程变得越来越复杂。 (这些不是通过调用服务方法为每个单独请求提供服务的tomcat线程,而是Apache WS上的线程来处理请求并将其分发到节点进行处理。 如果有人使用MPM。 所有这些工作如何进一步的解释将是伟大的。 像 – (1)随着儿童进程的产生,确切的作用是什么。 是subprocess只是为了调解的请求到tomcat或更多的事情。 如果是这样,那么在subprocess得到TC的响应后,subprocess是否将响应转发给父进程或直接发送给客户端(因为它可以从父进程得知client_host:random_port ,我不确定这是否允许在理论,虽然subprocess不能接受任何新的请求,因为只能绑定到一个进程的fixed_port已经绑定到父进程。 (2)由subprocess或父进程共享什么样的负载。 再次,它几乎必须和(1)中的一样。 但是我不确定的是,即使在理论上,如果一个线程可以直接发送请求到客户端。

如何在Apache服务器(和其他服务器)上检测对.htaccess的PHP支持

出于安全考虑,我需要检查一个目录是否不能被客户端读取, 即 Apache服务器支持.htaccess (在Apacheconfiguration文件中不允许AllowOverride None )。 这是非常重要的,因为我最近发现很多产品和框架都没有检查(包括Zend和Symphony)。 有没有办法检查这只使用PHP? 顺便说一句,纠正我,如果我错了,但似乎其他服务器(nginx或lighttpd)不支持.htaccess 。 在这些情况下,我如何检查我的目录不能被客户端读取?

Django / Apache使用mod_wsgi冻结

我有一个Django应用程序运行在Nginx之后的2个负载均衡的mod_wsgi / Apache服务器(静态文件,反向代理/负载均衡)之后。 隔几天,我的网站变得完全没有反应。 我的猜测是,一群客户端正在请求阻止的URL。 这是我的configuration WSGIDaemonProcess web1 user=web1 group=web1 processes=8 threads=15 maximum-requests=500 python-path=/home/web1/django_env/lib/python2.6/site-packages display-name=%{GROUP} WSGIProcessGroup web1 WSGIScriptAlias / /home/web1/django/wsgi/wsgi_handler.py 我试过只使用一个线程和更多的进程,更多的线程和一个进程。 几乎所有我尝试迟早会导致页面加载超时。 任何build议,我可能会尝试? 如果能解决问题,我愿意尝试其他部署选项。 另外,有没有更好的方法来监视Apache状态模块以外的mod_wsgi? 我一直在打: curl http://localhost:8080/server-status?auto 并且观察一下忙碌的工人数量,作为我是否会陷入困境的一个指标(我假设我有更多的忙碌工作者,现在正在进行更多的封锁工作)。 注意:这些请求中的一部分是我为应用程序托pipe的REST Web服务。 以某种方式通过Nginx来限制URL位置是否有意义?

从PHP触发一个Node.js事件

我有一个PHP脚本正在运行,据说我想在某些PHP逻辑完成时触发Node.js向客户端发送一个事件,我应该怎么做? Node.js部分还没有设置,但可能会在除PHP / Apache之外的其他服务器上,并且被放在一个Nginx之后,这个Nginx就是一个反向代理。

WebDAV规格缩略图/预览文件图像

现在我正在使用WebDAV协议来共享写入我自己的webdav客户端的文件。 我想实现从位于Web服务器(nginx / Apache / other)的指定文件获取缩略图预览。 WebServer必须生成缩略图/预览图像,并以PROPFIND请求或其他方式返回。 RFC中描述的propfind或response头中是否有任何属性,并且支持nginx / Apache的Web服务器?

为NGINX重写Mod

我目前使用nginx作为apache的透明代理。 我想使用nginx + fcgi(php),但需要mod-rewrite支持。 这是可能的还是有其他解决scheme来解决我的困境? 这是只有一个网站,litespeed是一个有效的解决scheme?