docker 安装 Nginx 并配置反向代理

本文介绍了使用Docker安装Nginx及配置反向代理的方法。首先获取Nginx官方镜像并创建容器实例,启动Nginx进行测试;接着将Nginx关键目录映射到本机,包括网站网页、日志和配置文件目录;最后设置反向代理,用本机80端口代理8080端口并测试成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.安装nginx docker镜像

获取nginx官方镜像 

docker pull nginx

 

查看镜像库

docker images

 

使用nginx镜像来创建nginx容器实例

docker run --name nginx-test -p 80:80 -d nginx

run 创建容器实例

-- name 容器命名

-v 映射目录

-d 设置容器后台运行

-p 本机端口映射 将容器的80端口映射到本机的80端口

语句最后一个nginx是使用镜像的名称

创建容器成功后,启动nginx容器

docker run --name nginx-test -p 80:80 -d nginx

 

访问 本机测试

启动成功 

2.将nginx关键目录映射到本机

首先在本机创建nginx的一些文件存储目录

mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf

www: nginx存储网站网页的目录

logs: nginx日志目录

conf: nginx配置文件目录

查看nginx-test容器id

docker ps -a

 将nginx-test容器配置文件copy到本地

docker cp 481e121fb29f:/etc/nginx/nginx.conf /root/nginx/conf

创建新nginx容器nginx-web,并将www,logs,conf目录映射到本地

docker run -d -p 80:80 --name nginx-web -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx

启动nginx

docker start nginx-web

 在本机/root/nginx/www目录下创建index.html内容为

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>docker搭建nginx</title>
</head>
<body>
    <h1>docker搭建nginx映射成功</h1>
    <p>666666666</p>
</body>
</html>

完成后重新访问本机

映射成功

3.设置反向代理

进入到/root/conf/nginx.conf 添加如下即可

    server{
       listen 80;
       charset utf-8;
       server_name 192.168.112.135;

       location / {
          proxy_pass http://192.168.112.135:8080;
          proxy_redirect default;
       }
    }

这样就可以用本机80端口代理本机8080端口了 

测试反向代理是否可用

直接使用80访问端口

代理设置成功

### 使用 Docker 安装 Nginx 配置反向代理 #### 准备工作 为了通过 Docker 部署带有反向代理功能的 Nginx,需先确认已安装 Docker。如果尚未安装 Docker,则应按照官方指南完成安装过程[^4]。 #### 创建 Docker Compose 文件 创建 `docker-compose.yml` 文件来定义服务: ```yaml version: '3' services: nginx-proxy: image: jwilder/nginx-proxy ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro wordpress: depends_on: - db image: wordpress:latest environment: VIRTUAL_HOST: example.com,www.example.com WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb networks: - backend db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: examplepass networks: - backend networks: backend: ``` 此文件描述了一个包含三个容器的服务组合:一个用于运行 `jwilder/nginx-proxy` 的容器负责处理 HTTP 和 HTTPS 请求,作为其他应用(如 WordPress)的入口;另一个则是实际的应用服务器,在这里是以 WordPress 为例[^2]。 #### 启动服务 保存上述 YAML 文件后,在同一目录下执行命令启动所有服务: ```bash docker-d ``` 这会下载必要的镜像以后台模式启动它们。此时访问指定域名即可看到由 Nginx 处理过的请求被转发给了对应的 Web 应用程序实例。 #### 获取 SSL 证书 对于 HTTPS 支持,可以前往阿里云申请免费的 SSL/TLS 证书,将其部署到环境中。具体操作涉及将获得的私钥和公钥放置于适当位置以便 Nginx 能够读取使用[^1]。
评论 48
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的狮子Li

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值