日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx 笔记与总结(15)nginx 实现反向代理 ( nginx + apache 动静分离)

發(fā)布時間:2025/5/22 Nginx 156 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx 笔记与总结(15)nginx 实现反向代理 ( nginx + apache 动静分离) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在 nginx 中,proxy 用來實現(xiàn)反向代理,upstream 用來實現(xiàn)負載均衡。

例如有兩臺服務器,nginx 服務器作為代理服務器,執(zhí)行 .html 文件,apache 服務器上執(zhí)行 .php 文件,客戶端發(fā)來的請求首先發(fā)送給 nginx 服務器,如果發(fā)送請求的是 .php 文件,則把請求通過 proxy pass 轉發(fā)給 apache 服務器,apache 服務器處理后把結果返回給 nginx 服務器,nginx 服務再把結果返回給客戶端。該例中 nginx 服務器實現(xiàn)了反向代理,或者說實現(xiàn)了 nginx + apache 的動靜分離。 ?

?

配置過程:

① 首先不讓 nginx 服務器執(zhí)行 .php 文件,修改 /usr/local/nginx/conf/nginx.conf 文件,把以下 location 段注釋:

location ~ \.php$ {#root html;#fastcgi_pass 127.0.0.1:9000;#fastcgi_index index.php;#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#include fastcgi_params;}

保存退出。平滑重啟 nginx。

此時訪問?http://192.168.254.100/test.php:

nginx 已經不能解析 .php 文件了。

?

② 編輯 apache 的配置文件?httpd.conf

[root@localhost nginx]# find / -name httpd /usr/local/apache2/bin/httpd /root/httpd-2.2.21/httpd /root/httpd-2.2.21/.libs/httpd [root@localhost nginx]# vim /usr/local/apache2/conf/httpd.conf

修改監(jiān)聽端口(nginx 已經監(jiān)聽 80 端口,所以把 apache 的監(jiān)聽端口改為 8080):Listen 8080

保存退出。

?

③ 啟動 apache:

[root@localhost nginx]# /usr/local/apache2/bin/apachectl start

?

訪問?http://192.168.254.100:8080:

?

?

④ 配置 apache 的虛擬主機及端口:

[root@localhost nginx]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

?修改 httpd-vhosts.conf:

NameVirtualHost *:8080# # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ServerName or ServerAlias in any <VirtualHost> block. # <VirtualHost *:8080>DocumentRoot "/usr/local/nginx/html"ServerName test.com </VirtualHost>

把 DocumentRoot 定義到 /usr/local/nginx/html 目錄下。保存退出。

?

編輯?httpd.conf:

<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from all </Directory>

改為

<Directory />Options FollowSymLinksAllowOverride allOrder deny,allowAllow from all </Directory>

?

把 line:151

AllowOverride None

改為

AllowOverride All

保存退出。重啟 apache。

?

⑤ 測試:訪問?http://192.168.254.100:8080

?

?

訪問?http://192.168.254.100:8080/ecshop/

?

?

?

⑥ 配置 nginx 的反向代理

[root@localhost nginx]# vim conf/nginx.conf

nginx.conf,修改 location ~ \.php$,只需要添加一句:proxy_pass 192.168.254.100:8080;

location ~ \.php$ {proxy_pass http://192.168.254.100:8080;#root html;#fastcgi_pass 127.0.0.1:9000;#fastcgi_index index.php;#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#include fastcgi_params;}

?保存退出。平滑重啟 nginx。

?

測試動靜分離:此時訪問?http://192.168.254.100/test.php

也就是說,此時的 url 不帶 8080 端口,訪問 .php 文件,同樣能夠解析,而且是通過 apache 進行解析。

?

測試動靜分離 2:

修改 /usr/local/nginx/html/test.php

[root@localhost nginx]# vim html/test.php

test.php:

<?php //phpinfo(); echo rand(1,100000); ?> <img src='image/nginx.png'>

保存退出。

?

再次訪問?http://192.168.254.100/test.php

此時分析 apache 日志:

[root@localhost nginx]# tail -f /usr/local/apache2/logs/access_log

access.log:

apache 沒有響應圖片。

?

再分析 nginx 日志:

[root@localhost nginx]# tail -f /usr/local/nginx/logs/access.log

nginx 響應的圖片。

?

總結

以上是生活随笔為你收集整理的Nginx 笔记与总结(15)nginx 实现反向代理 ( nginx + apache 动静分离)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。