性能-其他解决方案,而不是NGINX的.htaccess

我正在开发一个较大的基于Web的项目,在以后的某个阶段(或更多)可能每分钟必须处理数百个请求.

我从没与NGINX一起工作过,但是用apache阅读比较,看来我可能应该走NGINX的路线.读到它,我总是看到’.htaccess’文件是一个懒惰的解决方案.现在,我想避免依赖.htaccess文件,但是我的问题是如何?

我的意思是-如果.htaccess被认为是懒惰,棘手的解决方案,那么针对此问题的干净解决方案到底是什么:

>将所有特定的URL(除了CSS / Images和类似的东西)重定向到单个php文件(顺便说一句,如果像index.php这样的单个文件处理URL并包括所需的模板,是否会对性能产生影响?我应该避免这种情况,并拆分成几十个文件吗?)
>在CSS文件中读取PHP标签(“ AddHandler application / x-httpd-php .css …”)
>另一层登录(.htaccess身份验证,带有一个小的弹出窗口)

这基本上是我使用.htaccess的三件事.尤其是第一个,基本上使整个应用程序都能工作.

但是对于这个项目,我实际上是在尝试保持清洁和最新的解决方案.我有什么可能?我在哪里可以提高表现?我该如何解决上述3个问题,而无法使用.htaccess在NGINX上进行开发?

非常感谢您的时间和精力.

最佳答案
为了充分利用nginx,您必须了解它不是Web服务器(例如Apache),而是代理.简单来说,它就像巨型规则引擎一样,可以根据请求的模式匹配将内容传递给其他应用程序.

因此,要使用nginx运行PHP,您需要一个单独的运行PHP的服务器(或进程).可以是Apache,但PHP包含FastCGI Process Manager (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;
   } 
}

相关文章

文章浏览阅读3.7k次,点赞2次,收藏5次。Nginx学习笔记一、N...
文章浏览阅读1.7w次,点赞14次,收藏61次。我们在使用容器的...
文章浏览阅读1.4k次。当用户在访问网站的过程中遇到404错误时...
文章浏览阅读2.7k次。docker 和 docker-compose 部署 nginx+...
文章浏览阅读1.3k次。5:再次启动nginx,可以正常启动,可以...
文章浏览阅读3.1w次,点赞105次,收藏182次。高性能:Nginx ...