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;
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章