参考
https://www.runoob.com/docker/docker-install-nginx.html
Docker 安装 Nginx
Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 。
1、查看可用的 Nginx 版本
访问 Nginx 镜像库地址: https://hub.docker.com/_/nginx?tab=tags。
可以通过 Sort by 查看其他版本的 Nginx,默认是最新版本 nginx:latest。
你也可以在下拉列表中找到其他你想要的版本:
此外,我们还可以用 docker search nginx 命令来查看可用版本:
$ docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 3260 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 674 [OK] richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 207 [OK] million12/nginx-php Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS... 67 [OK] maxexcloo/nginx-php Docker framework container with Nginx and ... 57 [OK] ...
2、取最新版的 Nginx 镜像
这里我们拉取官方的最新版本的镜像:
$ docker pull nginx:latest
3、查看本地镜像
使用以下命令来查看是否已安装了 nginx:
$ docker images
在上图中可以看到我们已经安装了最新版本(latest)的 nginx 镜像。
4、运行容器
安装完成后,我们可以使用以下命令来运行 nginx 容器:
$ docker run --name nginx-test -p 8080:80 -d nginx
参数说明:
- --name nginx-test:容器名称。
- -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
- -d nginx: 设置容器在在后台一直运行。
5、安装成功
最后我们可以通过浏览器可以直接访问 8080 端口的 nginx 服务:
以下dangling-----------------------------------------
安装
docker pull nginx
docker run -d --name nginx -p 80:80 -p 443:443 -v /nginx/conf/:/etc/nginx/conf.d/ -v /nginx/logs:/var/log/nginx nginx
#原来:docker run -d --name nginx -p 80:80 -p 443:443 -v /nginx/conf/nginx.conf:/etc/nginx/conf.d/default.conf -v /nginx/logs:/var/log/nginx nginx
正向代理与反向代理
- 正向代理:隐藏了真实的客户端
- 反向代理:隐藏了真实的服务端
默认写法
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
静态文件服务器
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /static {
alias /data;
autoindex on;
}
}
负载均衡
upstream testServe {
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
server {
listen 80;
localhost / {
proxy_pass http://testServe;
}
}
修改请求信息,转发到目标路径
server {
listen 8080;
location / {
proxy_pass http://10.251.63.35:8080;
}
location /rewrite {
if ($uri = /rewrite) {
rewrite /rewrite http://10.251.63.35:8080 break;
}
rewrite /rewrite/([^/]*)/(.*) http://10.251.63.35:8080/$1/$2 break;
}
}