我正在开发一个更大的基于Web的项目,可能要在稍后的阶段(或更多)处理每分钟几百个请求。
我从来没有和NGINX一起工作过,但是用apache读取比较数据,似乎我应该走NGINX路线。 阅读它,我总是看到“.htaccess”文件是一个懒惰的解决scheme。 现在,我想避免依靠.htaccess文件,但我的问题是如何?
我的意思是 – 如果.htaccess被认为是懒惰的,黑客的解决scheme,干净的解决scheme到底是什么问题:
redirect到所有特定的URL(除了CSS /图像,这东西),到一个单一的PHP文件(顺便说一句,这是否有一个性能的影响,如果像index.php单个文件处理的URL和包括所需的模板?我应该避免,并分成几十个文件?)
读取CSS文件中的PHP标签(“AddHandler application / x-httpd-php .css …”)
另一层login(.htaccess身份validation,用那个小popup窗口)
这基本上是我使用.htaccess的三件事情。 特别是第一个,基本上使整个应用程序工作。
但是对于这个项目,我真的想保持清洁,并且是最新的解决scheme。 我有什么可能? 我在哪里可以提高我的performance? 我怎样才能解决上面提到的三个问题,使用.htaccess来发展NGINX?
非常感谢您的时间和精力。
为了充分利用nginx,你必须明白,它不是一个Web服务器(如Apache),而是一个代理服务器。 简而言之,它就像一个巨大的规则引擎,根据请求上的模式匹配将东西传递给其他应用程序。
所以要用nginx运行PHP,你需要一个运行PHP的单独的服务器(或进程)。 这可以是Apache,但PHP包含一个FastCGI流程管理器(FPM) 。
这里是基本的样板,让你去:
server { listen 80; server_name www.example.com example.com; access_log /var/www/www.example.com/logs/access.log; error_log /var/www/www.example.com/logs/error.log; root /var/www/www.example.com/public_html; location / { index index.html index.htm index.php; auth_basic "Username Required"; auth_basic_user_file /etc/nginx/htpasswd; } location ~ (\.php|\.css)$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass php; } }