Nginx基礎整理

目錄結構如下:

Nginx基礎知識
Nginx HTTP服務器的特色及優點

Nginx的主要企業功能

Nginx作為web服務器的主要應用場景包括:

Nginx的安裝
安裝環境

快速安裝命令集合

各個命令解釋

腳本

注意

安裝故障總結
故障一:沒有安裝pcre或pcre-devel

故障二:沒有安裝openssl和openssl-devel

常用的Nginx http功能模塊
Nginx的目錄結構
Nginx最重要的配置文件nginx.conf詳解
生產中常見的網站狀態碼
 

Nginx基礎知識:
Nginx HTTP服務器的特色及優點

a. 支持高并發:能支持幾萬并發連接(特別是靜態小文件業務環境)

b. 資源消耗少:在3萬并發連接下,開啟10個Nginx線程消耗的內存不到200MB

c. 可以做HTTP反向代理及加速緩存,即負載均衡功能,內置對RS節點服務器健康檢查功能,這相當于專業的Haproxy軟件或LVS的功能

d. 具備Squid等專業緩存軟件等的緩存功能

e. 支持異步網絡I/O事件模型epoll

Nginx的主要企業功能

a. 使用Nginx運行HTML,JS,CSS,小圖片等靜態數據(此功能類似Lighttpd軟件)

b. Nginx結合FastCGI運行php等動態程序(例如使用fastcgi_pass方式)

c. Nginx結合Tomcat/Resin等支持Java動態程序(常用的proxy_pass)

Nginx作為web服務器的主要應用場景包括:

a. 使用Nginx運行HTML,JS,CSS,小圖片等靜態數據(此功能類似Lighttpd軟件)

b. Nginx結合FastCGI運行php等動態程序(例如使用fastcgi_pass方式)

c. Nginx結合Tomcat/Resin等支持Java動態程序(常用的proxy_pass)

一般情況下普通php引擎支持的并發連接參考為300-1000,Java引擎和數據庫的并發連接參考值為300-1500.當然架構不同可能會有浮動

Nginx的安裝
安裝環境

a. 查看當前系統cat /etc/redhat-release

[root@nginx /]# cat /etc/redhat-release

CentOS release 6.7 (Final)

[root@nginx /]#

b. 查看系統內核uname –r

[root@nginx /]# uname -r

2.6.32-573.el6.x86_64

[root@nginx /]#

快速安裝命令集合:

 View Code
各個命令解釋

a. 安裝前需要安裝pcre庫(兼容正則表達式)

yum install pcre pcre-devel –y

b. 還需要安裝openssl

yum install openssl openssl-devel –y

c. 編譯之前還需要創建一個用戶

useradd nginx -M -s /sbin/nologin

d. 編譯安裝:

./configure –user=nginx –group=nginx –prefix=/application/nginx1.6.2  –with-http_stub_status_module  –with-http_ssl_module

make&&make install

e. 安裝完成后的檢查與啟動

/application/nginx/sbin/nginx –t

/application/nginx/sbin/nginx

腳本

a. 同樣的可以通過腳本實現整體的安裝(腳本如下)

 View Code
注意

a. 如果是學習,需要關閉防火墻和selinux,關閉方法如下:

/etc/init.d/iptables stop

setenforce 0臨時關閉)

b. 如果想要永久關閉selinux

vi編輯/etc/selinux/config進行下面更改

SELINUX=disabled

c. 也可以通過命令sed直接對命令進行修改

sed -i ‘s#SELINUX=enable#SELINUX=disabled#g’ /etc/selinux/config

按照上述操作啟動成功后,通過瀏覽器打開訪問:

 

安裝故障總結
故障一:沒有安裝pcre或pcre-devel

會提示如下錯誤:

1 ./configure: error: the HTTP rewrite module requires the PCRE library.
2 You can either disable the module by using –without-http_rewrite_module
3 option, or install the PCRE library into the system, or build the PCRE library
4 statically from the source with nginx by using –with-pcre=<path> option.
故障二:沒有安裝openssl和openssl-devel

1 ./configure: error: SSL modules require the OpenSSL library.
2 You can either do not enable the modules, or install the OpenSSL library
3 into the system, or build the OpenSSL library statically from the source
4 with nginx by using –with-openssl=<path> option.
常用的Nginx http功能模塊
 

Nginx http功能模塊

模塊說明

Ngx_http_core_module

包括一些核心的http參數配置,對應Nginx的配合為HTTP區塊部分

Ngx_http_access_module

訪問控制模塊,用來控制網站用戶對Nginx的訪問

Ngx_http_gzip_module

壓縮模塊,對Nginx返回的數據壓縮,屬于性能優化模塊

Ngx_http_fastcgi_module

FastCGI模塊,和動態應用相關的模塊,例如PHP

Ngx_http_proxy_module

Proxy 代理模塊

Ngx_http_upstream_module

負載均衡模塊,可以實現網站的負載均衡功能及節點的健康檢查

Ngx_http_rewrite_module

URL地址重寫模塊

Ngx_http_limit_conn_module

限制用戶并發連接數及請求數模塊

Ngx_http_limit_req_module

根據定義的key限制Nginx請求過程的速率

Ngx_http_log_module

訪問日志模塊,以指定的格式記錄Nginx客戶訪問日志等信息

Ngx_http_auth_basic_module

web認證模塊,設置web用戶通過賬號,密碼訪問Nginx

Ngx_http_ssl_module

ssl模塊,用于加密的http連接如https

Ngx_http_stub_status_module

記錄Nginx基本訪問狀態信息等的模塊

Nginx的目錄結構
|– client_body_temp

|– conf                            #這是Nginx所有配置文件的目錄

|   |– fastcgi.conf                 #fastcgi相關參數的配置文件

|   |– fastcgi.conf.default   

|   |– fastcgi_params               #fastcgi的參數文件

|   |– fastcgi_params.default

|   |– koi-utf

|   |– koi-win

|   |– mime.types                #媒體類型

|   |– mime.types.default  

|   |– nginx.conf                  #nginx默認的主配置文件

|   |– nginx.conf.default

|   |– scgi_params               #scgi相關參數

|   |– scgi_params.default

|   |– uwsgi_params             #uwsgi相關參數

|   |– uwsgi_params.default

|   -- win-utf<br />
<br />
|-- fastcgi_temp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  &nbsp;#fastcgi臨時數據目錄<br />
<br />
|-- html &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#編譯安裝Nginx的默認站點目錄<br />
<br />
| &nbsp; |-- 50x.html &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #錯誤頁面優雅替代顯示文件<br />
<br />
| &nbsp;
— index.html               #默認的首頁文件

|– logs                             #默認的日志路徑包括錯誤日志和訪問日志

|   |– access.log

|   |– error.log

|   -- nginx.pid<br />
<br />
|-- proxy_temp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#臨時目錄<br />
<br />
|-- sbin &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Nginx命令目錄<br />
<br />
| &nbsp;
— nginx                     啟動命令

|– scgi_temp                   #臨時目錄

`– uwsgi_temp                  #臨時目錄

Nginx最重要的配置文件nginx.conf詳解
通過命令將nginx配置文件精簡化顯示(去掉#注釋和空行的內容):

egrep -v “#|^$” nginx.conf.default >nginx.conf

worker_processes  1;             #worker進程的數量

events {                         #事件區塊的開始

    worker_connections  1024;    #每個worker進程支持的最大連接數

}                                #事件區塊的結束

http {                           #http區塊的開始

    include       mime.types;     #nginx支持的媒體類型庫文件

    default_type  application/octet-stream;  #默認的媒體類型

    sendfile        on;           #開啟高效傳輸模式

    keepalive_timeout  65;        #連接超時

    server {                      #第一個server區塊開始,表示一個獨虛擬主機站點

        listen       80;          #服務端口,默認80

        server_name  localhost;   #提供服務的域名主機名

        location / {              #第一個location區塊開始

            root   html;          #站點的根目錄,相當于Nginx的安裝目錄

            index  index.html index.htm; #默認的首頁文件,如果多個用空格分開

        }                         #第一個location區塊結束

        error_page   500 502 503 504  /50x.html; #出現對象http狀態碼時使用50x.html回應用戶

        location = /50x.html {

            root   html;

        }

    }

}                                 #http區塊結束

 

生產中常見的網站狀態碼
 

狀態碼

詳細描述說明

200-OK

服務器成功返回網頁,這是成功的狀態碼

301-Moved Permanently

永久跳轉,所請求的網頁將永久跳轉到被設定的新位置

403-Forbidden

禁止訪問,雖然這個請求時合法的,但是服務器端因為匹配了預先設置的規則而拒絕相應客戶端的請求,此類問題一般為服務器或服務器權限配置不當所致

404-Not Found

服務器找不到客戶端請求的指定頁面,可能是客戶端請求了服務器上不存在的資源所導致

500-Internal Server Error

內部服務器錯誤,服務器遇到了意料不到的情況,不能完成客戶的請求,這是一個較為籠統的報錯,一般為服務器的設置或內部程序問題導致

502-Bad Gateway

壞的網關,一般是代理服務器請求后端服務時,后端服務不可用或沒有完成相應網關服務器,這通常為反向代理服務器下面的節點出問題導致

503-Service Unavailable

服務當前不可用,可能是服務器超載或停機維護導致的,或者是反向代理沒有可以提供的服務節點

504-Gateway Timeout

網關超時,一般是網關代理服務器請求后端服務時,后端服務沒有在特定的時間內完成處理請求,多數是服務器過載導致沒有在指定的時間內返回數據給前端代理服務器

原創文章,作者:sunhao,如若轉載,請注明出處:http://www.www58058.com/85623

(2)
sunhaosunhao
上一篇 2017-08-29 10:39
下一篇 2017-08-29 13:47

相關推薦

  • N27_第十三周作業

    1、建立samba共享,共享目錄為/data,要求:描述完整的過程 1)共享名為shared,工作組為magedu 2)添加組develop,添加用戶gentoo,centos和Ubuntu,其中gentoo和centos以develop為附加組,Ubuntu不屬于develop組,密碼均為用戶名 3)添加samba用戶gentoo,centos和Ubunt…

    2017-11-20
  • LVS 之 初識LVS

    LVS 之 初識LVS LVS 之 初識LVS 0x00 概述 0x01 LVS拓撲結構圖: lvs集群類型中的術語 : 0x02 lvs-type lvs-nat lvs-dr lvs-tun lvs-fullnat : 0x03 調度算法(scheduler) 0x00 概述 LVS : Linux Virtual Server lvs 工作在 IOS …

    2017-05-11
  • Linux基礎目錄命名的法則及規定功能

    Filesystem Hierarchy Standard (FHS):重點在于規范每個特定的目錄下應該要放置什么樣子的數據。 這樣做好處是,在Linux操作系統就能夠在既有的面貌下(目錄架構不變)發展出開發者想要的獨特風格。 /bin:系統有很多放置執行文件的目錄,但/bin比較特殊。因為/bin放置的是在單人維護模式下還能夠被操作的指令。 在/bin底下…

    Linux干貨 2017-07-02
  • CentOS 7 安裝 mysql-5.7.14

    在centos7上安裝 路上遇過各種坑 把在centos7正確安裝mysql-5.7.14分享一下 1. CentOs7 默認的數據庫為MariaDB,先卸載MariaDB,否則安裝mysql,引起沖突 rpm -qa mariadb rpm -e –nodeps mariadb 2. 準備好工作環境 mkdir /application&nbs…

    Linux干貨 2017-05-07
  • iptables

    練習:基于狀態放行telnet, ftp, ssh, http, samba, icmp等服務 (1) 對本機的ping請求每分鐘不得超出20個 (2) 每客戶端對本機的ssh的并發連接數不得超過3個 (3) 本機的telnet服務僅允許工作時間內訪問 [root@node1 ~]# vim iptables.sh iptabl…

    Linux干貨 2016-10-22
  • centos 6.9 安裝步驟

    一:虛擬機VMware安裝 windows下安裝推薦使用 VMware Workstation Pro12.5版本 ?? ?? 下載網址:http://www.vmware.com/products/workstation/workstation-evaluation.htm l 二: linux硬件資源分配 ??????? 1:硬件分配 ????? 內存:…

    2017-05-21
欧美性久久久久