Nginx配置http和tcp

来源:http://www.cnblogs.com/LittleTwoLee/archive/2016/03/09/5258279.html
-Advertisement-
Play Games

最近在弄ejabberd+riak。其實這倆東西配置挺坑的,然後具體這倆貨怎麼配置,我以後會抽空寫出配置的詳細過程。對於負載均衡,我知道的現在有Nginx/LVS/HAProxy這三個大仙兒,各自有各自的優缺點,有關優缺點大家可以度娘一下。先來看看什麼是負載均衡。 負載均衡:是由多台伺服器以對稱的方


  最近在弄ejabberd+riak。其實這倆東西配置挺坑的,然後具體這倆貨怎麼配置,我以後會抽空寫出配置的詳細過程。對於負載均衡,我知道的現在有Nginx/LVS/HAProxy這三個大仙兒,各自有各自的優缺點,有關優缺點大家可以度娘一下。先來看看什麼是負載均衡。

  負載均衡:是由多台伺服器以對稱的方式組成一個伺服器集合,每台伺服器都具有等價的地位,都可以單獨對外提供服務而無須其他伺服器的輔助。通過某種負載分擔技術,將外部發送來的請求均勻分配到對稱結構中的某一臺伺服器上,而接收到請求的伺服器獨立地回應客戶的請求。均衡負載能夠平均分配客戶請求到伺服器列陣,籍此提供快速獲取重要數據,解決大量併發訪問服務問題。這種群集技術可以用最少的投資獲得接近於大型主機的性能。--摘自度娘

  今天先來看看Nginx。

  一、本機環境:

    ubbuntu 14

    pcre-8.38  傳送門-->pcre

    nginx-1.9.12  傳送門-->nginx

  二、安裝

    1.分別解壓兩個壓縮包

1 #解壓pcre並重命名文件夾
2 tar zxvf ./pcre-8.38.tar.gz
3 mv pcre-8.38 pcre
4 #解壓nginx並重命名文件夾
5 tar zxvf ./nginx-1.9.12.tar.gz
6 mv nginx-1.9.12 nginx
View Code

    2.安裝依賴

1 sudo apt-get install -y gcc g++ make
View Code

    3.安裝pcre

1 cd ./pcre
2 ./configure prefix=/usr/local/pcre
3 make && make install
View Code

    4.安裝nginx

1 #進入nginx文件夾
2 cd ../nginx
3 #加入參數編譯
4 ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx.pid --with-http_stub_status_module --with-http_ssl_module --with-pcre=stream --with-pcre=/programs/pcre
View Code

    在這步,需要註意註意幾點:

    第一點,--with-pcre=stream這個參數,自從nginx1.9.0版本開始,開始支持tcp的負載均衡,但是預設沒有這個功能,加入這個參數才能對tcp金星負載均衡。

    第二點,--with-pcre這個參數,這個其實是要你定位你pcre的源代碼的,不管你是否剛纔裝了pcre。

    第三點,就是有關openssl。當你遇到如下錯誤,要安裝Openssl

1 #錯誤1,需要安裝openssl
2 ./configure: error: SSL modules require the OpenSSL library.
3 You can either do not enable the modules, or install the OpenSSL library
4 into the system, or build the OpenSSL library statically from the source
5 with nginx by using --with-openssl=<path> option.
6 #安裝openssl
7 sudo apt-get install -y openssl
View Code

    第四點,有關zlib。當遇到如下錯誤,要安裝libssl-dev

1 #錯誤,需要安裝libssl-dev
2 ./configure: error: the HTTP gzip module requires the zlib library.
3 You can either disable the module by using --without-http_gzip_module
4 option, or install the zlib library into the system, or build the zlib library
5 statically from the source with nginx by using --with-zlib=<path> option.
6 #安裝libssl-dev
7 sudo apt-get install -y libssl-dev
8 #./configure通過以後,開始編譯
9 sudo make && make install
View Code

  現在你可以到轉到/usr/local/nginx/sbin/目錄去啟動Nginx。不出意外,你打開瀏覽器輸入網址,應該可以看到Nginx的歡迎界面

   

  那現在先恭喜下,你的Nginx安裝成功了。下麵開始做配置。

  三、將Nginx添加到PATH

1 #編輯/etc/bash.bashrc
2 sudo vim /etc/bash.bashrc
View Code

  在最下麵添加如下代碼

1 #添加如下代碼
2 if [ -d "/usr/local/nginx/sbin" ]; then
3 PATH="$PATH:/usr/local/nginx/sbin"
4 fi
5 #保存退出
6 #刷新配置
7 source /etc/bash.bashrc
View Code

  現在你在任何地方都可以用nginx來啟動了

  四、配置

    1.Http

    你的conf文件在/usr/local/nginx/conf中,叫做nginx.conf,你需要對其進行配置,下麵我的一個簡單的例子,來展示如何配置

 1 http {
 2     upstream backend {
 3         server 10.0.1.11:1234;
 4         server 10.0.1.12:1234;
 5     }
 6     server {
 7         listen   80;
 8         server_name example.com;
 9         location / {
10         limit_except GET {
11             deny   all;
12         }
13         proxy_pass http://backend;
14         }
15     }
16 }    
View Code

    其中upstream部分設置你要負載的地址,可以添加weight來設置比重

    proxy_pass後面要跟http://upstreamname這樣才能配置成功,然後你可以重啟你的nginx來驗證你的配置

    2.tcp

    還是更改conf文件,如下例子

 1 stream {
 2     upstream backend {
 3         server 10.17.0.1:1234;
 4         server 10.17.0.2:1234;
 5     }
 6     server {
 7         listen 8080;
 8         proxy_connect_timeout 1s;
 9         proxy_timeout 3s;
10         proxy_pass backend;
11     }
12 }
View Code

    這裡要註意proxy_pass填的是upstreamname,沒有http://

    這樣你就能訪問tcp介面了。

  其實有關Nginx還有很多細項配置,我以後可能會在講解實際軟體配置時再講解。這篇先寫到這了,希望對大家有幫助。

  轉載請註明
      作者:李小二的春天
      地址:http://www.cnblogs.com/LittleTwoLee/p/5258279.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 來自系統媽:http://www.xitongma.com 新蘿蔔家園GHOST win7系統64位官方經典版 V2016年3月 系統概述 新蘿蔔家園ghost win7系統64位官方經典版加快“網上鄰居”共用速度;取消不需要的網路服務組件,系統支持Windows安裝,可以在Windows中一鍵安裝
  • http://win10.ithome.com/win10xiazai/ http://msdn.itechzero.com/
  • 系統來自系統媽:http://www.xitongma.com 電腦公司最新GHOST win7系統64位極速安全版 V2016年3月 系統簡介 電腦公司ghost win7系統64位極速安全版集成了最新的安全補丁和其它系統升級程式,可以通過微軟正版驗證,支持線上更新。支持Windows下一鍵全自動
  • groupadd - create a new groupgroupadd命令用於創建一個新的組語法 groupadd [options] group選項: -h 獲得幫助信息 -g 創建指定GID的用戶組 -p 創建組的同時指定組密碼 -r --system 創建一個系統用戶,UID在1-499
  • Atitit.創建快捷方式 windows快捷方式的原理 1. Windows中有2種快捷方式的文件:1 2. Jshortcut2 2.1. 提示新不上jshortcut.dll2 2.2. 使用win api實現3 2.3. 使用WshShell com實現3 2.4. Win沒提供cli格式的
  • 今天晚上突然停電,等我打開電腦發現不然上網,用google瀏覽器出現這個錯誤: 用IE診斷錯誤如下: 說是不能連到代理伺服器,但是我沒有連接到代理伺服器啊,但是我的QQ能登,就是不能用瀏覽器上網,經過一番折騰,終於解決了,方法如下: 把這個覆選框去掉就好了,我從來沒有手動去勾選,不知道為什麼會被勾選
  • 當使用useradd添加好用戶之後,想要做一些修改,這時需要用到usermod命令。功能說明:修改用戶帳號的各項信息。 語 法:usermod [-L | U][-c <備註>][-d <登入目錄>][-e <有效期限>][-f <緩衝天數>][-g <群組>][-G <群組>] [-l <帳號名稱
  • 最近項目不忙,想著沒事看看簡單的嵌入式,弄弄物聯網什麼的。於是就從廉價的STM32開刀了。因為一直是做PC軟體開發的,那VS的智能感知那叫一個爽啊,相比之下,覺得這個Keil簡直就像文本編輯器一樣low。於是想換一個開發環境,就把矛頭指向了Eclipse,以前PC開發也正好用過。(其實拿他寫C++也
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...