1. 程式人生 > >Nginx做前端,Apache做後端的配置例項

Nginx做前端,Apache做後端的配置例項

Nginx做前端,Apache做後端的配置例項,供大家學習參考。

Nginx做前端處理靜態檔案,Apache做後端伺服器。

一、基礎知識

1.1、反向代理過程

Nginx前端,Apache後端過程其實很簡單,首先使用者訪問的是80埠的nginx,然後nginx將靜態內容留給自己,其餘的轉發給非80埠的apache,apache處理完畢後再回傳給nginx。

1.2、Nginx location 基礎

詳細見 Nginx 中的 Location 指令基礎,在不同的 Location 位置新增反向代理,Nginx 前端就充當了完全不一樣的角色。

二、編輯 Nginx 配置檔案

vim /usr/local/nginx/conf/nginx.conf

2.1、新增"proxy_set_header"指令
編輯Nginx配置檔案,在"http"欄位內新增相應程式碼,傳送傳送真實IP到後端。
vim /usr/local/nginx/conf/nginx.conf
# 向後端伺服器發起請求時新增指定的header頭資訊
proxy_set_header  Host $host;
# 向後端伺服器傳送真實 IP
proxy_set_header  X-Real-IP $remote_addr;
#讓後端如php能直接通過變數獲取真實IP
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

2.2、新增"proxy_pass"指令
在相應 ”location" 欄位新增如下反向代理語句。這部分是難點,也是國內教程都沒有提及的地方。

方法一:
將所有請求都轉發給後端 apache 處理,但由於 "~*" 優先順序高於 "/" ,所以圖片、JS、CSS例外,"expires" 用於設定快取時間。
 

複製程式碼程式碼如下: location / {
    proxy_pass  http://127.0.0.1:8080;
}
location ~* \.(jpg|jpeg|gif|png)$ {
    access_log  off;
    expires  30d;
}
location ~* \.(js|css)$ {
    access_log  off;
    expires  1d;
}

方法二:
只將.php字尾的檔案,交由後端 apache 處理
 

複製程式碼程式碼如下: location ~ \.php$ {
    proxy_pass  http://127.0.0.1:8080;
}

2.3、新增高階選項(選做)

#請求連線後端伺服器超時時間。即在規定時間,後端必須響應前端握手請求。
proxy_connect_timeout 30;

#後端伺服器響應時間。即連線成功,在後端排隊等候處理不能超過的時間。
proxy_read_timeout 60;

#後端資料回傳時間。即在規定時間,後端伺服器必須將所有資料回傳完畢。
proxy_send_timeout 30;

#從後端伺服器讀取的頭資訊的緩衝區大小。
proxy_buffer_size 4k;

#從後端伺服器讀取的頭資訊的緩衝區數目和大小
proxy_buffers 4 32k;

如果伺服器繁忙,可申請的proxy_buffers大小
proxy_busy_buffers_size 64k;

#代理快取臨時檔案大小
proxy_temp_file_write_size 64k;

#代理最大快取臨時檔案大小
proxy_max_temp_file_size 128m;

三、編輯 Apache 配置檔案(選做)

注意:mod_rpaf 模組不是必須安裝,除非你需要開啟 Apache 日誌,但有多此一舉之嫌,因為已經有 Nginx 日誌了,再開 Apache 日誌話就出現重複了。

Apache rpaf 模組作用是獲取Nginx轉發過來的真實IP,否則在Apache日子中來訪IP全部為127.0.0.1。
 

複製程式碼程式碼如下: wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/www/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

vim /usr/local/apache/conf/httpd.conf LoadModule rpaf_module modules/mod_rpaf-2.0.so
 

複製程式碼程式碼如下: RPAFenable On
RPAFproxy_ips 127.0.0.1
RPAFsethostname On
RPAFheader X-Forwarded-For

相關推薦

Nginx前端Apache配置例項

Nginx做前端,Apache做後端的配置例項,供大家學習參考。 Nginx做前端處理靜態檔案,Apache做後端伺服器。 一、基礎知識 1.1、反向代理過程 Nginx前端,Apache後端過程其實很簡單,首先使用者訪問的是80埠的nginx,然後nginx將靜態內容留給自己,其餘的轉發給非80

web前端篇(1)——瞭解什麼是前端以及與的關係

簡介   1.什麼是web前端 說這個之前,我們先了解web前端工程師是幹什麼的,百度百科的解釋: Web前端開發工程師,主要職責是利用(X)HTML/CSS/JavaScript/Flash等各種Web技術進行客戶端產品的開發。完成客戶端程式(也就是瀏覽器端)的開發,開發JavaSc

web前端篇(1)——了解什麽是前端以及與的關系

都差不多 打開 baidu 開發工程師 頁面 http png 我們 web技術 簡介 1.什麽是web前端 說這個之前,我們先了解web前端工程師是幹什麽的,百度百科的解釋: Web前端開發工程師,主要職責是利用(X)HTML/CSS/JavaScript

繞過前端直接呼叫介面的可能性

換而言之,怎麼才能避免暴露自己的後端介面,不暴露,可以做到嗎? 如果後端介面被抓包到,怎樣才能防止別人惡意地隨便地進行呼叫? 1. 入參中加入簽名欄位,進行控制,簽名可以是入參中若干個欄位的組合加上一個key值,在進行加密,簽名規則只給paetner方,其他人不知道 2. UI端隨機生成碼,有reques

vue前端flask後臺使用ajax傳遞json

照樣是個記錄博文,是從九月份開始,幫老師做的一個app,一直到現在....不能直接貼專案的原始碼,我貼出的是用於測試的完整程式碼,有時間會繼續更新... 其實做的是個網頁,通過HBuilder可以轉成app 先說幾個注意點(前提都是基於vue和flask的): 1. 使用ajax發起po

ReactJS學習-使用webpack構建工程使用materialUI構建前端與hprose通訊

實現目標: Material-UI 是一套用React寫成的,符合Google Material Design 的UI元件庫。 前端通過Material-UI構造介面,然後通過hprose-html5呼叫後端hprose服務取資料 hprose服務參考

ss-panel v3前端與ss-manyuser配置supervisord守護完整教程

這是一個sspanel v3 配置的完整教程,我用的是lnmp框架,當然lamp也是可以的,安裝lnmp的過程我就不說了。 一,安裝ss-panel 首先我們進入網站目錄 cd /home/wwwroot/ss.iforday.com git clone https://

一直糾結前端好是

個人牢騷~~~ 做前端感覺有成就啊,奮鬥一上午做出一個beautiful的網頁很有成就感,可是周邊人都說將來沒有前途。做後端也很有挑戰性,主要是最近要學zend framework完全的面向物件,看著我頭都大,對著手冊上的內容不知所云,很迷惑不知道該怎麼辦。我是不是應該回去

nginx是什麼什麼tengine於它的關係網站設計的優化方法

一說到nginx我們可能想到它跟伺服器掛鉤: 那麼具體他有哪些功能呢: 1:反向代理 2:負載均衡 3:資源伺服器: 接下來具體說說不同功能下都做了哪些事情: 一說到反向代理我們可能會想到的是代理了,那麼代理和反向代理的區別到底是什麼呢: 我們一般說到的代理很大程度上跟翻

從零開始微信小程式---學習日記

wx.login(OBJECT) 呼叫介面獲取登入憑證(code)進而換取使用者登入態資訊,包括使用者的唯一標識(openid) 及本次登入的 會話金鑰(session_key)等。使用者資料的加解密通訊需要依賴會話金鑰完成。   獲取到初步的目標,

作為一個前端如何聯調?

1.首先把基礎路徑放到api檔案裡面 export default { //測試環境介面地址 appid api: `http:// } 2.把測試地址放到api檔案裡 export const CONTEXT = "http://"; 3.把需要用到

java伺服器android客戶實現資料傳輸

許久未動筆,有個小專案開始動工。 需要用一臺windows電腦做伺服器,在android端與其進行資料交換,實現一些業務。 簡單起見,用java寫這個伺服器,以前沒做過,試試水。很簡單的程式碼,純粹找思路。 伺服器端程式碼: package com.test; impor

百度富文字編輯器UEditor:PHP + Nginx 配置圖片上傳下載

由於公司專案需求,花了點時間研究UEditor的後端配置,分享一下使用經驗。注意,這裡的圖片上傳配置,僅能保證圖片管理器的上傳下載正常,而單張照片上傳,後端顯示成功,也接收到檔案了,可是前端會報錯,筆者沒有找到解決方案,所以註釋掉了單張照片上傳的功能,以後有時間再研究。1.後

繫結事件的時候如果pc與移動都用可以一下pc與移動的相容

這裡只談及PC端的mousedown mousemove mouseup事件 與 移動端的touchstart  touchmove touchend事件  var hastouch = 'ontouchstart' in window?true:false,      

C#伺服器Android客戶完成Socket通訊

先說幾句廢話,我沒學過java語法,所以寫起來很痛啊,只能多百度,多看別人的程式碼~ 1.按照慣例,先寫一下遇到的問題: 1.java.net.SocketException: socket failed EACCES (Permission denied) 初始化Sock

前端上傳多張圖片編譯發給

今天分享一個找上傳多張圖片的方法,使用於網頁,移動端。 HTML頁面 <fieldset>   <legend>瀏覽圖片檔案:</legend>   <input type='file' name='fleUpload' id='f

jquery使用CORS跨域請求時(前後分離通過nginx部署前端)cookie丟失問題

1. 我遇到的問題專案通過前後端分離模式開發,部署時:前端獨立部署在nginx上,登入成功後會往使用者地址上寫入cookie資訊,前端呼叫後臺地址時通過在nginx中配置location,後臺介面系統中有攔截器會攔截判斷前端頁面是否攜帶cookie資訊過來:此時發現出現coo

開發者從零一個移動應用(篇)

先來上一張前端頁面的效果圖(Vue + Vux + Vuex + Vue-Router)。 * 第一次做gif 沒什麼經驗,太大了。載入慢 * 專案地址: http://m.jiasux.com ,大家可以自行手機開啟檢視效果。 好了,廢話少說,

ueditor 配置項沒有正常加載上傳插件不能正常使用!

建議 工廠 代碼 修改 area mat 結構 editor 例如 我用的是開發版,1.4.3.3 .Net版 網上查了很多,後來發現只是配置的問題而已。 在根目錄下:config.json 其中有Img上傳的配置:imageUrlPrefix 這個是你上傳完成後,在文本編

如何用前端模板語言處理生成器參數

abi 但是 出了 list true 通過 latest field address 數據庫模型如下: class Server(models.Model): """ 服務器信息 """ # asset = models.OneToOneField