Docker安装Nginx实现反向代理

一、配置文件

    以前的配置文件为一个nginx.conf,新的版本将其分成了两个,default.conf 和 nginx.conf,为通过数据卷映射的方式,但没有在github上找到分开的这两个文件,因此先通过直接运行的方式得到这两个文件。

  1. 先普通方式运行一个nginx容器
    docker run --name my-nginx -p 80:80 -d nginx
    注:阿里云的80端口被占用了,因此要把原有的kill 掉。查看端口pid:netstat -tanlp ,杀掉进程:kill 进程pid
  2. 进入容器,将default.conf 和 nginx.conf两个文件复制到宿主机。
    将容器中的文件拷贝到宿主机:docker cp 容器ID:容器内文件路径 宿主机路径,(**注:**命令在宿主机中执行,冒号前后没有空格)。

二、通过宿主机的配置文件启动

命令:
docker run --name my-nginx -p 80:80 -v /xxx/mynginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /xxx/mynginx/conf/default.conf:/etc/nginx/conf.d/default.conf -d nginx
说明:

  • -v:数据卷绑定(将宿主机的配置文件,与容器内配置文件进行绑定)
  • 注:还可以绑定log等其他文件

三、反向代理

打开 default.conf ,如我们部署在tomcat /webapps/xxx/下的项目,配置如下:

location / {
        root  html;
        proxy_pass http://你的ip:8080/xxx/;
        index  index.html index.htm;
    }

重启nginx

  1. 方式一:通过Docker重启容器:修改的配置文件会生效 docker stop IDdocker start ID
  2. 方式二:在nginx容器内(/usr/local/sbin/)通过nginx -s reload重新加载配置的方式容器会直接停止,然后重新 docker start ID 启动即可。

这样,当我们直接访问nginx所在服务器的ip(由于是80端口),即可直接访问到代理服务器。

  
  
Email : Beyonderwei@Gmail.com
Website : http://beyonderwei.com
  
WeChat:

### 使用 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]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值