nginx
1.1、nginx简介

nginx是一款开源的、轻量级的Web服务器反向代理服务器电子邮件(IMAP/POP3)代理服务器

nginx是由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。

nginx的特点是占有内存少,并发能力强。nginx的并发能力在同类型的网页服务器中表现较好。

nginx官网:http://nginx.org

1.2、通过包管理器安装nginx
操作系统包管理器安装命令
Windowsscoopscoop install nginx
WindowsChocolateychoco install -y nginx
macOSHomeBrew

安装官方:brew install nginx

安装社区全能:

brew tap denji/nginx
brew install `brew options --compact nginx-full` nginx-full
GNU/LinuxLinuxBrew

安装官方:brew install nginx

安装社区全能:

brew tap denji/nginx
brew install `brew options --compact nginx-full` nginx-full
aptsudo apt-get install -y nginx
CentOSyumsudo yum install -y nginx
dnfsudo dnf install -y nginx
openSUSEzyppersudo zypper install -y nginx
Alphine Linuxapksudo apk add nginx

Arch Linux

ArcoLinux

Manjaro Linux

yaysudo yay -Syyu --noconfirm
sudo yay -S    --noconfirm nginx
Gentoo LinuxPortagesudo emerge nginx
1.3、通过源码安装nginx

step1、安装依赖

下载时cURL
解压时targzip
编译时POSIX shGNU CoreUtilsmakegcc
运行时
  • glibc ( libc.solibdl.solibpthread.sold-linux-x86-64.so )
  • zlib ( libz.so )
  • pcre2 ( libpcre.so )
  • OpenSSL ( libssl.solibcrypto.so )

step2、使用curl命令下载nginx源码包 (

curl -LO http://nginx.org/download/nginx-1.15.12.tar.gz

step3、使用tar解压nginx源码包

tar vxf nginx-1.15.12.tar.gz

step4、进入nginx-1.15.12目录,并查看它的内容

step5、配置、编译、安装

./configure && make && sudo make install
1.4、nginx Docker Image

Docker官方提供的nginx Docker镜像:https://hub.docker.com/_/nginx

1、对于该镜像,在创建并运行容器之前,我们需要知道的是:

  • 该容器暴露出了44380端口
  • 该容器的nginx配置文件存放目录是/etc/nginx/nginx.conf/
  • 该容器的nginx静态文件存放目录是/usr/share/nginx/html/
  • 该容器的nginx日志文件存放目录是/var/log/nginx/

2、在宿主机上创建存放配置文件静态文件日志文件的目录:

mkdir -p ~/docker_volume/nginx/{conf,html,logs}

3、把您事先编写好的nginx.conf配置文件复制到~/docker_volume/nginx/conf/目录中:

cp ~/nginx.conf ~/docker_volume/nginx/conf/

注意:如果您是初学者,您可能会有疑问,我怎么事先准备我的配置文件呢? 实际上,真实的环境里,nginx的使用者都有一份他们自己事先配置好的配置文件,那是他多年的经验积累, 经过实践的考验的。他们绝对不可能进入容器去临时修改这个配置文件。您如果是个新手,这里也可以不事先准备, 就使用默认的配置文件,但是下面的运行容器的时候就不能mount您本地配置文件夹了。 您以后要修改配置文件就得进入容器去修改,这样虽然可以,但是不好。

4、把您事先编写好的50x.htmlindex.html放到~/docker_volume/nginx/html/目录中:

echo "Hello nginx" >> ~/docker_volume/nginx/html/index.html
echo "server occur error" >> ~/docker_volume/nginx/html/50x.html

注意:我这里仅仅是一个示例,真实的场景比这个复杂,这些文件是精心设计的,而且也不止这些。

5、运行一个容器:

docker run -d
           -p 8080:80
           -p 8081:443
           -v ~/docker_volume/nginx/conf:/etc/nginx/nginx.conf
           -v ~/docker_volume/nginx/html:/usr/share/nginx/html
           -v ~/docker_volume/nginx/logs/:/var/log/nginx
           --name nginx
           nginx:1.15.12-alpine

6、通过http://localhost:8080进行访问。

注意:如果您仅仅想体验一下该容器,您可以用下面的方法运行一个容器:

docker run -d -p 8080:80 -p 8081:443 --name nginx nginx:1.15.12-alpine

如果您觉得Docker官方提供的nginx Docker镜像或者Docker Hub上其他的nginx Docker镜像不合你意, 您也可以通过编写Dockerfile构建一个自己的nginx Docker镜像。

1.5、nginx命令
1.5.1、nginx -h

查看nginx命令的使用帮助。

1.5.2、nginx -v

查看nginx的版本。

1.5.3、nginx -V

查看nginx的版本和安装时./configure命令的参数。

1.5.4、nginx -t

测试nginx的配置文件是否正确。

1.5.5、nginx -T

测试nginx的配置文件是否正确,并打印配置。

1.5.6、nginx -s <signal>

nginx服务发送信号。

signal说明
reload在不重新启动nginx服务的情况下重新加载配置文件
reopen重新启动nginx服务
stop停止nginx服务
quit停止nginx服务
1.5.7、nginx

没有任何参数的时候,就是启动nginx服务。

1.6、nginx的模块
1.7、nginx的配置
1.8、nginx的日志
1.9、nginx的使用案例
1.10、nginx的问题集锦