Docker安装nginx并配置代理和https

一、下载镜像

docker pull nginx

二、安装

docker images nginx

docker run -d -p 80:80 -p 443:443 --name compose_nginx_1 nginx(镜像名称)

或挂载目录方式,以免重启配置丢失:

docker run -d -p 80:80 -p 443:443 --add-host="域名:IP" -v /data/nginx/config/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/config/conf.d/default.conf:/etc/nginx/conf.d/default.conf --name compose_nginx_1 nginx:1.15


docker ps

三、修改配置 在/etc/nginx/conf.d下新增配置文件xxx.conf(与default.conf同目录下),用于代理和https

server {
listen       443 default ssl;
server_name  xxxx.com;
#charset koi8-r;
access_log  /var/log/nginx/host.access.log  main;

location /xxxxx/ {
     proxy_pass        http://myip:8080/;
     proxy_set_header  X-Real-IP  $remote_addr;
     proxy_redirect default;
}

location /rest/api/doc {
     proxy_pass        http://myip:8080;
     proxy_set_header  X-Real-IP  $remote_addr;
     proxy_redirect default;
}
ssl on;
ssl_certificate /etc/nginx/cert/xxxx.com.pem;
ssl_certificate_key /etc/nginx/cert/xxxx.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL; ssl_prefer_server_ciphers on;

四、在/etc/nginx/cert/下放置ssl证书pem和key

五、重启nginx

docker restart compose_nginx_1

转载于:https://my.oschina.net/yuantangxi/blog/2988126

要在 Docker Compose 中安装配置 Nginx 来实现 HTTPS 和反向代理,你可以按照以下步骤进行操作: 1. 首先,在你的项目目录下创建一个名为 `docker-compose.yml` 的文件,并添加以下内容: ```yaml version: '3' services: nginx: image: nginx ports: - 80:80 - 443:443 volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./certs:/etc/nginx/certs ``` 这将创建一个名为 `nginx` 的服务,并将容器的 80 和 443 端口映射到主机的相应端口。同时,我们将挂载一个自定义的 `nginx.conf` 配置文件和一个名为 `certs` 的文件夹用于存放 SSL/TLS 证书。 2. 在项目目录下创建一个名为 `nginx.conf` 的配置文件,并添加以下内容作为示例: ```nginx events {} http { server { listen 80; server_name example.com; location / { proxy_pass http://backend:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/certs/cert.pem; ssl_certificate_key /etc/nginx/certs/key.pem; location / { proxy_pass http://backend:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } ``` 这是一个简单的 Nginx 配置文件示例,其中设置了一个 HTTP 的反向代理和一个 HTTPS 的反向代理。你需要将 `example.com` 替换为你的域名,并将 SSL/TLS 证书文件 `cert.pem` 和 `key.pem` 放入 `certs` 文件夹中。 3. 在你的项目目录下创建一个名为 `certs` 的文件夹,并将正确的 SSL/TLS 证书文件放入其中。 4. 现在,你可以运行 `docker-compose up -d` 命令启动容器。 这样,Nginx 将通过反向代理将所有对于 `example.com` 的请求转发到名为 `backend` 的服务的 8000 端口上。同时,通过 HTTPS 访问时,Nginx 使用了提供的 SSL/TLS 证书来进行加密通信。 请注意,上述步骤只是一个示例,你可能需要根据你的实际需求进行修改和调整。希望这能帮到你!如果有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值