1. 程式人生 > >Nginx動靜分離經典案例配置

Nginx動靜分離經典案例配置

隨著Nginx高效能Web伺服器大量被使用,目前Nginx最新穩定版為1.2.6,張宴兄在實際應用中大量使用Nginx,並分享Nginx高效能Web伺服器知識,使得Nginx在國內也是飛速的發展。那今天咱們再來溫習一下Nginx 動靜分離知識,這裡僅供參考。

一、實踐環境:

  1. 系統版本:CentOS6.0 X86_64 
  2. Nginx版本:Nginx-1.2.6 
  3. Tomcat版本:Tomcat-6.0.18 

二、Nginx安裝:

   實際環境中安裝Nginx,首先需要安裝pcre庫,然後再安裝Nginx:

  1. #安裝pcre支援rewrite庫,也可以安裝原始碼,注*安裝原始碼時,指定pcre路徑為解壓原始碼的路徑,而不是編譯後的路徑,否則會報錯。
  2. yum install pcre-devel pcre -y
  3. #下載Nginx原始碼包
  4. cd /usr/src ;wget -c http://nginx.org/download/nginx-1.2.6.tar.gz
  5. #解壓Nginx原始碼包
  6. tar -xzf nginx-1.2.6.tar.gz 
  7. #進入解壓目錄,然後sed修改Nginx版本資訊為TDTWS 
  8. cd nginx-1.2.6 ; sed -i -e 's/1.2.6//g' -e 's/nginx\//TDTWS/g' -e 's/"NGINX"/"TDTWS"/g' src/core/nginx.h 
  9. #預編譯Nginx
  10. ./configure --user=www --group=www --prefix=/usr/local/nginx --with
    -http_stub_status_module --with-http_ssl_module
  11. #.configure預編譯成功後,執行make命令進行編譯
  12. make
  13. #make執行成功後,執行make install 正式安裝
  14. make install
  15. #自此Nginx安裝完畢!!! 

三、配置Nginx:

   這裡鑑於我的51CTO部落格已經有Tomcat安裝和配置了,這裡忽略,只配置Nginx。

  1. #進入Nginx應用目錄 
  2. cd /usr/local/nginx/conf 
  3. #備份原nginx.conf檔案
  4. mv  nginx.conf  nginx.bak  

   建立 vi nginx.conf ,並寫入如下內容:

  1. user www www; 
  2. worker_processes 8; 
  3. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 
  4. pid /usr/local/nginx/nginx.pid; 
  5. worker_rlimit_nofile 102400; 
  6. events 
  7. use epoll; 
  8. worker_connections 102400; 
  9. http 
  10.   include       mime.types; 
  11.   default_type  application/octet-stream; 
  12.   fastcgi_intercept_errors on; 
  13.   charset  utf-8; 
  14.   server_names_hash_bucket_size 128; 
  15.   client_header_buffer_size 4k; 
  16.   large_client_header_buffers 4 32k; 
  17.   client_max_body_size 300m; 
  18.   sendfile on; 
  19.   tcp_nopush     on; 
  20.   keepalive_timeout 60; 
  21.   tcp_nodelay on; 
  22.   client_body_buffer_size  512k; 
  23.   proxy_connect_timeout    5; 
  24.   proxy_read_timeout       60; 
  25.   proxy_send_timeout       5; 
  26.   proxy_buffer_size        16k; 
  27.   proxy_buffers            4 64k; 
  28.   proxy_busy_buffers_size 128k; 
  29.   proxy_temp_file_write_size 128k; 
  30.   gzip on; 
  31.   gzip_min_length  1k; 
  32.   gzip_buffers     4 16k; 
  33.   gzip_http_version 1.1; 
  34.   gzip_comp_level 2; 
  35.   gzip_types       text/plain application/x-javascript text/css application/xml; 
  36.   gzip_vary on; 
  37. ###2012-12-19 change nginx logs 
  38. log_format  main  '$http_x_forwarded_for - $remote_user [$time_local] "$request" ' 
  39.               '$status $body_bytes_sent "$http_referer" ' 
  40.               '"$http_user_agent"  $request_time $remote_addr'; 
  41. #這裡為後端伺服器wugk應用叢集配置,根據後端實際情況修改即可,tdt_wugk為負載均衡名稱,可以任意指定
  42. #但必須跟vhosts.conf虛擬主機的pass段一致,否則不能轉發後端的請求。 
  43. upstream tdt_wugk { 
  44.     server   10.10.141.30:8080 weight=1max_fails=2fail_timeout=30s
  45.     server   10.10.141.30:8081 weight=1max_fails=2fail_timeout=30s
  46.     server   10.10.141.31:8080 weight=1max_fails=2fail_timeout=30s
  47.     server   10.10.141.31:8081 weight=1max_fails=2fail_timeout=30s
  48.     server   10.10.141.32:8080 weight=1max_fails=2fail_timeout=30s
  49.     server   10.10.141.32:8081 weight=1max_fails=2fail_timeout=30s
  50. #這裡為後端APP應用負載均衡配置,根據後端實際情況修改即可。tdt_app為負載均衡名稱,可以任意指定
  51. upstream tdt_app { 
  52.     server   10.10.141.40:8080 weight=1max_fails=2fail_timeout=30s
  53.     server   10.10.141.40:8081 weight=1max_fails=2fail_timeout=30s
  54.     server   10.10.141.41:8080 weight=1max_fails=2fail_timeout=30s
  55.     server   10.10.141.41:8081 weight=1max_fails=2fail_timeout=30s
  56.     server   10.10.141.42:8080 weight=1max_fails=2fail_timeout=30s
  57.     server   10.10.141.42:8081 weight=1max_fails=2fail_timeout=30s
  58. #include引用vhosts.conf,該檔案主要用於配置Nginx 虛擬主機  
  59. include vhosts.conf; 

   如上nginx.conf配置完畢,繼續配置nginx虛擬主機,繼續在當前目錄建立vhosts.conf

   vi vhosts.conf 內容如下:

  1. ####www.wuguangke.cn 
  2. server 
  3.   { 
  4.     listen       80; 
  5.     server_name  www.wuguangke.cn; 
  6.     index index.html index.htm; 
  7. #配置釋出目錄為/data/www/wugk  
  8.     root  /data/www/wugk; 
  9.     location / 
  10.     { 
  11.          proxy_next_upstream http_502 http_504 error timeout invalid_header; 
  12.          proxy_set_header Host  $host; 
  13.          proxy_set_header X-Real-IP $remote_addr; 
  14.       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
  15.          proxy_pass http://tdt_wugk; 
  16.          expires      3d; 
  17.     } 
  18.     #動態頁面交給http://tdt_wugk,也即我們之前在nginx.conf定義的upstream tdt_wugk 均衡 
  19.     location ~ .*\.(php|jsp|cgi)?$ 
  20.     { 
  21.          proxy_set_header Host  $host; 
  22.          proxy_set_header X-Real-IP $remote_addr; 
  23.       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
  24.          proxy_pass http://tdt_wugk; 
  25.     } 
  26. #配置Nginx動靜分離,定義的靜態頁面直接從Nginx釋出目錄讀取。
  27.     location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ 
  28.     { 
  29.     root /data/www/wugk; 
  30. #expires定義使用者瀏覽器快取的時間為3天,如果靜態頁面不常更新,可以設定更長,這樣可以節省頻寬和緩解伺服器的壓力
  31.     expires      3d; 
  32.     } 
  33.     #定義Nginx輸出日誌的路徑 
  34.     access_log  /data/logs/nginx_wugk/access.log main; 
  35.     error_log   /data/logs/nginx_wugk/error.log  crit; 
  36. ##########chinaapp.sinaapp.com 2012-12-19 
  37.   server 
  38.   { 
  39.     listen       80; 
  40.     server_name  chinaapp.sinaapp.com; 
  41.     index index.html index.htm; 
  42.     root  /data/www; 
  43.     location / 
  44.     { 
  45.          proxy_next_upstream http_502 http_504 error timeout invalid_header; 
  46.          proxy_set_header Host  $host; 
  47.          proxy_set_header X-Real-IP $remote_addr; 
  48.      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
  49.          proxy_pass http://tdt_app; 
  50.          expires      3d; 
  51.     } 
  52.     location ~ .*\.(php|jsp|cgi)?$ 
  53.     { 
  54.          proxy_set_header Host  $host; 
  55.          proxy_set_header X-Real-IP $remote_addr; 
  56.       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
  57.          proxy_pass http://tdt_app; 
  58.     } 
  59.     location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ 
  60.     { 
  61.     root /data/www/app; 
  62.     expires      3d; 
  63.     } 
  64.     access_log  /data/logs/nginx_app/access.log main; 
  65.     error_log   /data/logs/nginx_app/error.log  crit; 

四、部署測試:

   後端配置好Tomcat服務,並啟動,釋出的程式需同步到Nginx的/data/www對應的目錄,因為配置動靜分離後,使用者請求你定義的靜態頁面,預設會去nginx的釋出目錄請求,而不會到後端請求,所以這時候你要保證後端跟前端的程式保持一致,可以使用Rsync做服務端自動同步。

  1. #檢查Nginx配置檔案是否配置正確,提示Ok and successful表示正確,如下:  
  2. [[email protected] ~]# /usr/local/nginx/sbin/nginx -t
  3. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  4. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  5. #啟動Nginx服務 
  6. /usr/local/nginx/sbin/nginx 
  7. #檢視Nginx程序是否啟動 
  8. ps -ef |grep nginx 

相關推薦

Nginx動靜分離經典案例配置

隨著Nginx高效能Web伺服器大量被使用,目前Nginx最新穩定版為1.2.6,張宴兄在實際應用中大量使用Nginx,並分享Nginx高效能Web伺服器知識,使得Nginx在國內也是飛速的發展。那今天咱們再來溫習一下Nginx 動靜分離知識,這裡僅供參考。 一、實踐環境:

配置nginx動靜分離

nginx動靜分離 配置nginx動靜分離1.修改nginx配置文件#location ~ \.php$ {root html;

複習電商筆記-14-Nginx動靜分離和圖片回顯配置

    *Nginx動靜分離 Nginx解析圖片靜態資源。 注意:如果按下面方法修改後依然報這個錯誤,則換瀏覽器測試。chrome有的版本js相容不夠好。(chrome版本 43.0.2357.124 m正確) 優化:靜態資源儘量不要走應用伺服器,而直接

Nginx+Tomcat配置動靜分離(附完整配置+註釋)

我的環境 Centos6.5 X86_64 Nginx1.8.0 Tomcat7.o Nginx配置 #Nginx.conf user caogen; worker_processes 1; #因為我用的是虛擬機器 只設置了1CPU error_l

nginx 動靜分離

動靜分離隨著Nginx高性能Web服務器大量被使用,目前Nginx最新穩定版為1.2.6,張宴兄在實際應用中大量使用Nginx,並分享Nginx高性能Web服務器知識,使得Nginx在國內也是飛速的發展。那今天咱們再來溫習一下Nginx 動靜分離知識,這裏僅供參考。一、實踐環境:系統版本:CentOS6.0

nginx動靜分離小示例

lis span gin 其他 cati cal 分離 log root server { listen 80; server_name www.xxx.cn;          #靜態頁面     #匹配首頁,ur

Apache與Nginx動靜分離

one href tar .com spl 客戶機 serve ati 使用 概述   Nginx的靜態處理能力很強,但是動態處理能力不足,因此,在企業中常用動靜分離技術。動靜分離技術其實是采用代理的方式,在server{}段中加入帶正則匹配的location來指定匹配項

Nginx動靜分離《三》

cat 性能 app css oot 概念 nbsp war 8.0 1.概念   所謂的動靜分離就是指圖片,css, js之類的都交給nginx來處理,nginx處理不了的,比如jsp 就交給tomcat來處理   好處是nginx處理靜態內容的吞吐量很高,比tomcat

CentOS7.4—構建Apache+Nginx動靜分離

構建apache+nginx動靜分離構建Apache+Nginx動靜分離實驗目的:html靜態頁面由nginx處理,php動態頁面交給apache處理 目錄第一部分 準備工作第二部分 配置apache+nginx動靜分離第三部分 測試驗證 第一部分 環境準備一:服務器兩臺:Linux系統—CentOS

Nginx動靜分離

process type ces 分鐘 靜態文件 color RKE 提高 mime 當我們請求一個網頁的時候,可能會加載很多css,js,img等靜態文件;一般這些文件是很久都不會變化的,所以我們為了提高頁面響應速度,完全可以將這些文件緩存到瀏覽器中(可以理解為cooki

linux CentOS7 下 Nginx 動靜分離

動靜分離不解釋了,理論網上一堆一堆的,但實現手段我理解就是特定的請求使用特定的處理方式。 nginx安裝參考這個: https://blog.csdn.net/tangyaliang11/article/details/78675535 tomcat安裝參考這個:https://bl

網站集群架構實戰(LVS負載均衡、Nginx代理緩存、Nginx動靜分離、Rsync+Inotify全網備份、Zabbix自動註冊全網監控)--技術流ken

.com auth 分發 發生 lnmp process daemon bytes sendfile 前言 最近做了一個不大不小的項目,現就刪繁就簡單獨拿出來web集群這一塊寫一篇博客。數據庫集群請參考《MySQL集群架構篇:MHA+MySQL-PROXY+LVS實現M

nginx動靜分離之後,設定預設主頁

nginx動靜分離之後,設定預設主頁 預設情況下,配置nginx動靜分離之後,預設location / 是到後端,不能設定前段頁面為預設主頁。需如下配置   upstream abc { server 172.16.3.20:9000 weight=1 max_fails

nginx動靜分離後個別靜態檔案代理至後端

nginx動靜分離後個別靜態檔案代理至後端 vekergu關注1人評論16783人閱讀2015-07-21 16:12:47        網站通

Nginx 動靜分離與負載均衡的實現

一、前提        企業中,隨著使用者的增長,資料量也幾乎成幾何增長,資料越來越大,隨之也就出現了各種應用的瓶頸問題。        問題出現了,我們就得想辦法解決,一般網站環境

Nginx動靜分離+快取

Nginx動靜分離+快取 #進入Nginx應用目錄 cd /etc/nginx/ #備份原nginx.conf檔案 mv nginx.conf nginx.bak 建立 vi nginx.conf ,並寫入如下內容: user www www; worker_proce

網站叢集架構實戰(LVS負載均衡、Nginx代理快取、Nginx動靜分離、Rsync+Inotify全網備份、Zabbix自動註冊全網監控)--技術流ken

前言 WEB叢集專案簡介 隨著網站訪問量的激增,勢必會導致網站的負載增加,現需求搭載一套高效能,高負載,高可用的網站叢集架構以保障網站的持續、高效、安全、穩定的執行。 針對以上需求,我們採用瞭如下的技術: 使用負載均衡技術來實現網站請求的排程分發,減小後端伺服器的壓力。 配置了KEEPALIVED解決

nginx動靜分離,排除某個路徑下的靜態資源

我們的web專案在nginx上做了一次動靜分離,在nginx上的配置: location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { root /data/vangogh/;

Nginx動靜分離及效能調優實踐

直接看配置檔案!直接看配置檔案!直接看配置檔案! #user nobody; worker_processes 8; #error_log logs/error.log; #error_log logs/error.log notice; #error_log

5.3 Nginx 動靜分離

找不到 直接 linux apps css 腳本 images 0.10 inf Server 腳本片段 server { listen 80; server_name ccserver1; #chars