Nginx在Linux下的安装

环境准备

1.需要安装 gcc 的环境

1
yum install gcc-c++

2.第三方的开发包。
PCRE
PCRE(Perl Compatible Regular Expressions)是一个 Perl 库,包括 perl 兼容的正则表达式库。nginxhttp 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。

1
2
Centos7 : yum install -y pcre pcre-devel
Ubuntu16.0.4 : apt install libpcre3 libpcre3-dev

注:pcre-devel 是使用 pcre 开发的一个二次开发库。nginx 也需要此库。

zlib
zlib 库提供了很多种压缩和解压缩的方式,nginx 使用 zlibhttp 包的内容进行 gzip,所以需要在 linux 上安装 zlib 库。

1
2
yum install -y zlib zlib-devel
apt install zlib1g-dev

OpenSSL
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 linux安装 openssl 库。

1
2
yum install -y openssl openssl-devel
apt-get install openssl libssl-dev

Nginx下载

官方网站下载 [nginx:http://nginx.org/]

Nginx安装 (tar)包

第一步:把 nginx 的源码包nginx-1.8.0.tar.gz上传到 linux 系统
第二步:解压缩

1
tar -zxvf nginx-1.8.0.tar.gz

第三步:进入nginx-1.8.0目录 使用 configure 命令创建一 makeFile 文件。

1
2
3
4
5
6
7
8
9
10
11
12
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

执行后可以看到Makefile文件

第四步:编译

1
2
3
make在centos8的环境下回报错,在Ubuntu16.0.4 的环境下正常执行

make

第五步:安装

1
make install

Nginx启动与访问

注意:启动nginx 之前,上边将临时文件目录指定为/var/temp/nginx/client, 需要在/var 下创建此 目录

1
2
3
mkdir /var/temp/nginx/client -p

-p 表示创建子目录

进入到Nginx目录下的sbin目录

1
cd /usr/local/ngiux/sbin

输入命令启动Nginx

1
./nginx

启动后查看进程

1
ps aux|grep nginx

地址栏输入虚拟机的IP即可访问(默认为80端口)

关闭 nginx:

1
2
./nginx -s stop
./nginx -s quit

重启 nginx:

1
2
3
1、先关闭后启动。
2、刷新配置文件:
./nginx -s reload

docker-compose启动

使用Docker 来安装和运行 Nginxdocker-compose.yml 配置如下:

1
2
3
4
5
6
7
8
9
10
11
version: '3.1'
services:
nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 8070:80
volumes:
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./wwwroot:/usr/share/nginx/wwwroot

docker-compose.yml,同级目录新建conf,wwwroot文件夹

1
2
3
4
5
mkdir conf
mkdir wwwroot

cd conf
vim nginx.conf