Nginx 簡介與安裝、經常使用的命令和配置文件

一、nginx 簡介
(1)介紹 nginx 的應用場景和具體能夠作什麼事情php

(2)介紹什麼是反向代理html

(3)介紹什麼是負載均衡java

(4)介紹什麼是動靜分離linux

二、nginx 安裝
(1)介紹 nginx 在 linux 系統中如何進行安裝nginx

三、nginx 經常使用的命令和配置文件
(1)介紹 nginx 啓動、關閉、從新加載命令c++

(2)介紹 nginx 的配置文件web

 

1.1 Nginx 概述
Nginx ("engine x") 是一個高性能的 HTTP 和反向代理服務器,特色是佔有內存少,併發能 力強,事實上 nginx 的併發能力確實在同類型的網頁服務器中表現較好,中國大陸使用 nginx 網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等數據庫

1.2 Nginx 做爲 web 服務器
Nginx 能夠做爲靜態頁面的 web 服務器,同時還支持 CGI 協議的動態語言,好比 perl、php 等。可是不支持 java。Java 程序只能經過與 tomcat 配合完成。Nginx 專爲性能優化而開發, 性能是其最重要的考量,實現上很是注重效率 ,能經受高負載的考驗,有報告代表能支持高 達 50,000 個併發鏈接數。 https://lnmp.org/nginx.html緩存

1.3 正向代理
Nginx 不只能夠作反向代理,實現負載均衡。還能用做正向代理來進行上網等功能。 正向代理:若是把局域網外的 Internet 想象成一個巨大的資源庫,則局域網中的客戶端要訪 問 Internet,則須要經過代理服務器來訪問,這種代理服務就稱爲正向代理。tomcat

 

1.4 反向代理
反向代理,其實客戶端對代理是無感知的,由於客戶端不須要任何配置就能夠訪問,咱們只 須要將請求發送到反向代理服務器,由反向代理服務器去選擇目標服務器獲取數據後,在返 回給客戶端,此時反向代理服務器和目標服務器對外就是一個服務器,暴露的是代理服務器 地址,隱藏了真實服務器 IP 地址。

 

 

 

1.5 負載均衡

客戶端發送多個請求到服務器,服務器處理請求,有一些可能要與數據庫進行交互,服 務器處理完畢後,再將結果返回給客戶端。

        這種架構模式對於早期的系統相對單一,併發請求相對較少的狀況下是比較適合的,成 本也低。可是隨着信息數量的不斷增加,訪問量和數據量的飛速增加,以及系統業務的複雜 度增長,這種架構會形成服務器相應客戶端的請求日益緩慢,併發量特別大的時候,還容易 形成服務器直接崩潰。很明顯這是因爲服務器性能的瓶頸形成的問題,那麼如何解決這種情 況呢?

        咱們首先想到的多是升級服務器的配置,好比提升 CPU 執行頻率,加大內存等提升機 器的物理性能來解決此問題,可是咱們知道摩爾定律的日益失效,硬件的性能提高已經不能 知足日益提高的需求了。最明顯的一個例子,天貓雙十一當天,某個熱銷商品的瞬時訪問量 是極其龐大的,那麼相似上面的系統架構,將機器都增長到現有的頂級物理配置,都是不能 夠知足需求的。那麼怎麼辦呢?

          上面的分析咱們去掉了增長服務器物理配置來解決問題的辦法,也就是說縱向解決問題 的辦法行不通了,那麼橫向增長服務器的數量呢?這時候集羣的概念產生了,單個服務器解 決不了,咱們增長服務器的數量,而後將請求分發到各個服務器上,將原先請求集中到單個 java 課程系列服務器上的狀況改成將請求分發到多個服務器上,將負載分發到不一樣的服務器,也就是咱們 所說的負載均衡

 

 

1.6 動靜分離

爲了加快網站的解析速度,能夠把動態頁面和靜態頁面由不一樣的服務器來解析,加快解析速 度。下降原來單個服務器的壓力。

 

 

第 2 章 Nginx 安裝

2.1 進入 nginx 官網,下載

http://nginx.org/

 

 

2.2 安裝 nginx
第一步,安裝 pcre
 

wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
解壓文件,
./configure 完成後,回到 pcre 目錄下執行 make,
再執行 make install
第二步,安裝 openssl

第三步,安裝 zlib

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
第四步,安裝 nginx

一、 解壓縮 nginx-xx.tar.gz 包。
二、 進入解壓縮目錄,執行./configure。
三、 make && make install
查看開放的端口號

firewall-cmd --list-all
設置開放的端口號

firewall-cmd --add-service=http –permanent
sudo firewall-cmd --add-port=80/tcp --permanent
重啓防火牆

firewall-cmd –reload
第 3 章 nginx 經常使用的命令和配置文件
3.1 nginx 經常使用的命令:
(1)啓動命令

在/usr/local/nginx/sbin 目錄下執行 ./nginx

(2)關閉命令

在/usr/local/nginx/sbin 目錄下執行 ./nginx -s stop

(3)從新加載命令

在/usr/local/nginx/sbin 目錄下執行 ./nginx -s reload

3.2 nginx.conf 配置文件
nginx 安裝目錄下,其默認的配置文件都放在這個目錄的 conf 目錄下,而主配置文件 nginx.conf 也在其中,後續對 nginx 的使用基本上都是對此配置文件進行相應的修改

 

 

 配置文件中有不少#, 開頭的表示註釋內容,咱們去掉全部以 # 開頭的段落,精簡以後的 內容以下:

 

 

根據上述文件,咱們能夠很明顯的將 nginx.conf 配置文件分爲三部分:
第一部分:全局塊
          從配置文件開始到 events 塊之間的內容,主要會設置一些影響 nginx 服務器總體運行的配置指令,主要包括配 置運行 Nginx 服務器的用戶(組)、容許生成的 worker process 數,進程 PID 存放路徑、日誌存放路徑和類型以 及配置文件的引入等。

好比上面第一行配置的:

worker_processes 1;
這是 Nginx 服務器併發處理服務的關鍵配置,worker_processes 值越大,能夠支持的併發處理量也越多,可是 會受到硬件、軟件等設備的制約

第二部分:events 塊
好比上面的配置:

events {
worker_connections 1024;
}
events 塊涉及的指令主要影響 Nginx 服務器與用戶的網絡鏈接,經常使用的設置包括是否開啓對多 work process 下的網絡鏈接進行序列化,是否容許同時接收多個網絡鏈接,選取哪一種事件驅動模型來處理鏈接請求,每一個 word process 能夠同時支持的最大鏈接數等。

 

上述例子就表示每一個 work process 支持的最大鏈接數爲 1024.
這部分的配置對 Nginx 的性能影響較大,在實際中應該靈活配置。
第三部分:http 塊

http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.htm;
}
}

  


這算是 Nginx 服務器配置中最頻繁的部分,代理、緩存和日誌定義等絕大多數功能和第三方模塊的配置都在這裏。 須要注意的是:http 塊也能夠包括 http 全局塊、server 塊。

①、http 全局塊

http 全局塊配置的指令包括文件引入、MIME-TYPE 定義、日誌自定義、鏈接超時時間、單連接請求數上限等。
②、server 塊

這塊和虛擬主機有密切關係,虛擬主機從用戶角度看,和一臺獨立的硬件主機是徹底同樣的,該技術的產生是爲了 節省互聯網服務器硬件成本。

每一個 http 塊能夠包括多個 server 塊,而每一個 server 塊就至關於一個虛擬主機。
而每一個 server 塊也分爲全局 server 塊,以及能夠同時包含多個 locaton 塊。
一、全局 server 塊

最多見的配置是本虛擬機主機的監聽配置和本虛擬主機的名稱或 IP 配
二、location 塊

一個 server 塊能夠配置多個 location 塊。這塊的主要做用是基於 Nginx 服務器接收到的請求字符串(例如 server_name/uri-string),對虛擬主機名稱 (也能夠是 IP 別名)以外的字符串(例如 前面的 /uri-string)進行匹配,對特定的請求進行處理。地址定向、數據緩 存和應答控制等功能,還有許多第三方模塊的配置也在這裏進行。

相關文章
相關標籤/搜索