Windows下安装
1、下载nginx
http://nginx.org/en/download.html 下载稳定版本。
以nginx/Windows-1.16.1为例,直接下载 nginx-1.16.1.zip。
下载后解压,解压后如下:
2、启动nginx
有很多种方法启动nginx
(1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过
(2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe
,回车即可
3、检查nginx是否启动成功
直接在浏览器地址栏输入网址 http://localhost:80 回车,出现以下页面说明启动成功!
4、配置监听
nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可。
当我们修改了nginx的配置文件nginx.conf 时,不需要关闭nginx后重新启动nginx,只需要执行命令 nginx -s reload
即可让改动生效
5、关闭nginx
如果使用cmd命令窗口启动nginx, 关闭cmd窗口是不能结束nginx进程的,可使用两种方法关闭nginx
(1)输入nginx命令 nginx -s stop
(快速停止nginx) 或 nginx -s quit
(完整有序的停止nginx)
(2)使用taskkill taskkill /f /t /im nginx.exe
taskkill是用来终止进程的,
/f是强制终止 .
/t终止指定的进程和任何由此启动的子进程。
/im示指定的进程名称 .
linux下安装
1、安装gcc
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install -y gcc-c++
2、PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel
3、zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel
4、OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum install -y openssl openssl-devel
5、下载安装包
手动下载.tar.gz安装包,地址:https://nginx.org/en/download.html
下载完毕上传到服务器上 /root
6、解压
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
7、配置
使用默认配置,在nginx根目录下执行
./configure
make
make install
查找安装路径: whereis nginx
docker下安装
1、获取Nginx镜像
使用docker search nginx
命令获取nginx镜像列表
使用docker pull nginx
命令拉取nginx镜像到本地,此处我们获取排名第一的是官方最新镜像,其它版本可以去DockerHub查询
使用docker images nginx
命令,查看我们拉取到本地的nginx镜像IMAGE ID
2、创建Nginx容器
首先测试下nginx镜像是否可用,使用docker run -d --name mynginx -p 8080:80 nginx:1.19.10-alpine
创建并启动nginx容器
- -d 指定容器以守护进程方式在后台运行
- –name 指定容器名称,此处我指定的是mynginx
- -p 指定主机与容器内部的端口号映射关系,格式 -p
- [宿主机端口号]:[容器内部端口],此处我使用了主机8080端口,映射容器80端口
- nginx:1.19.10-alpine 是nginx的镜像名+版本
命令执行后返回了容器ID,eef118d….,此时我们已经成功创建了nginx容器,
在浏览器内访问容器映射的端口,可以通过127.0.0.1:8080,会看到nginx欢迎页,如果你是云服务器,请记得开放对应的外网端口!!!!
到这里我们已经完成了nginx容器的搭建,但是此时还有个问题,我们如何修改nginx的配置文件?
3、修改nginx的配置文件
这里有两种方式解决这个问题:
方式一:每次都进入到nginx容器内部修改
每次都进入到nginx容器内部修改。适合改动少,简单使用的情况
1、执行 docker exec -it mynginx /bin/sh
进入到nginx容器内部
- exec 命令代表附着到运行着的容器内部
- -it 是 -i 与 -t两个参数合并写法,-i -t 标志着为我们指定的容器创建了TTY并捕捉了STDIN
- mynginx 是我们要进入的容器Id
- /bin/sh 指定了执行命令的shell
2、进入到nginx容器内部后,我们可以cd /etc/nginx
,可以看到相关的nginx配置文件都在/etc/nginx
目录下
而nginx容器内的默认首页html文件目录
为/usr/share/nginx/html
日志文件位于/var/log/nginx
方式二:将nginx容器内部配置文件挂载到主机
将nginx容器内部配置文件挂载到主机,之后就可以在主机对应目录修改即可。适合频繁修改,复杂使用的情况
1、在主机/mnt目录
下执行 mkdir -p ./nginx/{conf,html,logs}
创建挂载目录
2、将容器内的nginx.conf
与default.conf
文件分别拷贝到主机/mnt/nginx
和/mnt/nginx/conf
下,分别执行
docker cp mynginx:/etc/nginx/nginx.conf ./
docker cp mynginx:/etc/nginx/conf.d/default.conf ./conf/
cp 命令代表复制
mynginx是我们nginx容器的name,/etc/nginx/nginx.conf 是容器内部nginx.conf 路径
此时我们的目录结构是这样的,这就是我们等会儿要与nginx容器挂载的目录
3、执行docker rm -f mynginx
命令移除刚刚创建的nginx容器,mynginx是容器的名称
4、运行容器并挂载配置
docker run -d --name mynginx \
-p 8080:80 \
-v /mnt/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /mnt/nginx/logs:/var/log/nginx \
-v /mnt/nginx/html:/usr/share/nginx/html \
-v /mnt/nginx/conf:/etc/nginx/conf.d \
--privileged=true \
nginx:1.19.10-alpine
- -v 挂载目录,格式 -v: 表示将主机目录与容器目录之间进行共享;
- –privileged=true 容器内部对挂载的目录拥有读写等特权;
5、这时候,会出现403,不要惊慌。我们的主机挂载 /mnt/nginx/html目录还为空
这时我们在容器的挂载 /mnt/nginx/html
目录下创建index.html
,内容随便写上hello docker nginx,再次访问主机IP
到这里就大功告成了!
需要注意的:我们在挂载目录的操作,都实际会映射到容器内部,写配置文件的时候一定要注意路径问题!!