在windows/linux/docker中,如何安装Nginx

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.confdefault.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

到这里就大功告成了!
需要注意的:我们在挂载目录的操作,都实际会映射到容器内部,写配置文件的时候一定要注意路径问题!!

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇