nginx 结合 apache 实现动静分离
  FgoJFQXsSXly 2023年11月02日 141 0

(目录)

apache的安装

apache下载地址:http://httpd.apache.org/download.cgi#apache24

wget   https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.51.tar.gz
tar -zxvf httpd-2.4.51.tar.gz  #解压安装包
cd httpd-2.4.51
./configure --prefix=/usr/local/apache --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate
make && make install  # 编译安装
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd  #复制启动文件到/etc/init.d目录
service httpd start #启动Apache

$\color{red}因为Apache与nginx默认都会监听80端口,所以我们在安装Apache或者启动Apache之前先关闭nginx,或者先把Apache的配置进行修改$

Apache的配置修改

apache的配置目录在/usr/local/apache/conf/httpd.conf。$\color{red}注:这里只是我配置文件的地址。$ Apache的虚拟主机可以在conf/httpd.conf中进行配置,也可以在conf/extra/httpd-vhost.conf中配置。后者是在httpd.conf文件中通过include指令引入的子配置文件,但是在使用前需要现在httpd.conf中找到如下一行配置取消注释,否则配置将不会生效。

#include conf/extra/httpd-vhost.conf  #去掉前面的#号

然后打开httpd-vhost.conf文件,可以看到Apache提供的默认配置。我们只需要删除多余的配置,添加自己的配置即可:

<VirtualHost *:81>
    DocumentRoot "/www/study_nginx"
    ServerName www.study_apache.com
    ServerAlias study_apache.com
</VirtualHost>
<Directory "/www/study_nginx">
    Require all granted
</Directory>

在 httpd.conf 文件中修改 ==listen== 并添加 ==ServerName==

listen 81
ServerName localhost

保存之后,重启Apache

Apache配置访问php文件

Apache处理PHP动态请求的稳定性高于NGINX+PHP-fpm的方式,这个是因为PHP利用Apache的动态模块机制实现了高度整合。在安装Apache时,编译选项中有一个--enable-so,添加此选项后,Apache就会在bin目录下生成一个apxs程序,apxs是Apache提供的一个扩展工具,用于编译模块,PHP能够利用apxs编译一个用于Apache访问PHP的模块,以实现整合。

因为之前我已经安装了nginx+php-fpm,这里需要整合php-fpm与Apache,所以对于php需要重新编译

cd /home/php-7.4.16   #php所在位置
make clean #清除之前安装过的nginx+PHP

./configure --prefix=/usr/localphp --with-apxs2=/usr/local/apache/bin/apxs --with-zlib --enable-zip --enable-mbstring --with-mcrypt --with-mysql --with-mysqli --with-pdo-mysql --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-curl --with-openssl --with-mhash --enable-bcmath --enable-opcache

make && make install

Apache配置的修改:

在 httpd.conf文件加入:

<FilesMatch "\.php$">
setHandler application/x-httpd-php
</FilesMatch>

<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

编译完成之后,使用在之前我们添加的Apache服务下新增PHP代码文件,并访问: image.png

nginx结合Apache动静分离

==静分离的优势== $\color{red}api接口服务化$:动静分离之后,后端应用更为服务化,只需要通过提供api接口即可,可以为多个功能模块甚至是多个平台的功能使用,可以有效的节省后端人力,更便于功能维护。

$\color{red}前后端开发并行$:前后端只需要关心接口协议即可,各自的开发相互不干扰,并行开发,并行自测,可以有效的提高开发时间,也可以有些的减少联调时间

$\color{red}减轻后端服务器压力,提高静态资源访问速度$:后端不用再将模板渲染为html返回给用户端,且静态服务器可以采用更为专业的技术提高静态资源的访问速度。

修改nginx对动态请求的处理

server{
   listen       80;
   server_name  www.study_nginx.com;
   root   /www/study_nginx;
   index index.html index.htm;

   location ~ \.php$ {
      proxy_pass http://127.0.0.1:81;
      proxy_set_header Host $host;
      proxy_set_header X-Client-IP $remote_addr;
      # root           /www/study_nginx;
      # fastcgi_pass   127.0.0.1:9000;
      # fastcgi_index  index.php;
      # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ;
      # include        fastcgi_params;
   }
}

访问 www.study_nginx.com image.png

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  IjoZzDAdQBm4   2023年11月12日   31   0   0 apache禅道
FgoJFQXsSXly