Ubuntu下的NGINX

對於NGINX的研究,我的學習目標就是使用他的三大功能:
1.靜態web服務器
2.反向代理
3.負載均衡

操作系統

本次記錄過程是基於如下操作系統進行操作演示,執行指令lsb_release -a

root@instance-fqhtxc7e:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic

備註:
因爲這邊直接使用root賬號進行指令操作,所以並未使用sudo,非root用戶需在指令前添加sudo

遠程工具

SecureCRT 7.3

依賴庫

由於以下的操作記錄是基於Ubuntu環境下采用源碼編譯方式進行安裝的NGINX服務,所以在該操作系統下必須擁有編譯源碼的能力,那麼就需要一些必備的編譯所需工具

gcc/g++

gccg++分別是GNU基於linux系統下c 和 c++ 的程序編譯器,其中
版本查看方式分別如下
gcc -v
g++ -v
安裝方式分別如下
apt-get install gcc
apt-get install g++

PCRE

PCREperl語言兼容正則表達式,是一個用C語言編寫的正則表達式函數庫,Nginx編譯需要PCRE(Perl Compatible Regular Expression),因爲Nginx的Rewrite模塊和HTTP核心模塊會使用到PCRE正則表達式語法。這裏需要安裝兩個安裝包pcrepcre-devel
第一個安裝包提供編譯版本的庫
第二個提供開發階段的頭文件和編譯項目的源代碼,
如果不安裝這些,那麼在編譯NGINX時就會拋出缺少PCRE library的異常
安裝方式如下
apt-get install libpcre3 libpcre3-dev

zlib

zlib是一個壓縮庫,類似於zip。我們在linux下看到的*.gz文件,就是用zlib壓縮的.
這裏需要用到這個主要是因爲接下來的NGINX安裝是由我去官網下載的一個gz壓縮包,所以需要用這個進行解壓,而且在Nginx的各種模塊中同樣也需要使用gzip壓縮。如同安裝PCRE一樣,同樣需要安裝庫和它的源代碼:zlibzlib-devel
安裝方式如下
apt-get install zlib1g zlib1g-dev

openssl

libssl-dev是OpenSSL通用庫,openssl是一個安全套接字層密碼庫,囊括主要的密碼算法、常用密鑰、證書封裝管理功能及實現SSL協議(Secure Sockets Layer-安全套接層協議)
在Nginx中,如果服務器提供安全網頁時則會用到OpenSSL庫,所以需要安裝庫和它的源代碼:opensslopenssl-devel
查看當前是否已經安裝方式如下
openssl version -a

root@instance-8scsy8qh:~# openssl version -a
OpenSSL 1.1.1  11 Sep 2018
built on: Tue Nov 12 16:58:35 2019 UTC
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-kxN_24/openssl-1.1.1=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1"
Seeding source: os-specific

以上信息說明已經安裝
安裝方式如下
apt-get install openssl
apt-get install libssl-dev

NGINX常用操作

進入到NGINX的sbin目錄下,如/usr/local/nginx/sbin
查看NGINX進程ps -ef|grep nginx
查看NGINX進程
啓動nginx./nginx

驗證nginx配置文件是否正確./nginx -t
下圖信息表是成功
驗證nginx配置文件是否正確
重載配置文件./nginx -s reload或者kill -HUP 進程ID

NGINX源碼編譯

源碼下載

源碼官網下載地址
指令下載方式wget http://nginx.org/download/nginx-1.15.8.tar.gz

源碼解壓

tar -zxvf nginx-1.15.8.tar.gz

編譯前的配置

進入解壓出來的nginx-1.15.8目錄,執行如下指令
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
指令說明如下
指定安裝路徑--prefix=/usr/local/nginx
配置模塊--with-http_stub_status_module、-with-http_ssl_module(配置https使用時用到,如果不加上這些參數的話,啓動https時會提示找不到ssl模塊)

編譯NGINX

配置好上述編譯前的配置配置後,在解壓出來的nginx-1.15.8目錄執行make
說明:make是用來編譯的,它從Makefile中讀取指令,然後編譯

安裝NGINX

編譯好NGINX之後,在相同目錄下執行make install(即nginx-1.15.8目錄),即可安裝到配置NGINX時指定的目錄中
說明:make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置

參考資料:https://blog.csdn.net/u013564742/article/details/81746335

NGINX配置

配置文件路徑/usr/local/nginx/conf
配置文件nginx.conf

反向代理

http {
在http塊中進行配置
}

1.http塊中配置upstream

    upstream myapi{
		server ip1:port1;
		server ip2:port2;
    }

2.http塊中的server下配置location

	location /api{
	    #要轉發的地址
	    proxy_pass http://myapi/api;

	    #添加header避免swagger-ui出現no response from server的錯誤
	    proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章