Skip to content

nginx proxy

创建 network

sh
docker network create -d bridge nginx-proxy-net

nginx-proxy 部署

sh
mkdir -p /mydata/nginx-proxy/{conf,ssl,logs}

sudo groupadd dk
sudo chown -R 1000:dk /mydata/nginx-proxy
sudo chmod -R 2775 /mydata/nginx-proxy

# 静态文件目录
mkdir /mydata/web-static
sudo chown -R 1000:dk /mydata/web-static

vim docker-compose.yml

yml
networks:
  use-external-net:
    external: true # 这个非常重要,使用外部网络
    name: nginx-proxy-net

services:
  nginx-proxy:
    image: registry.cn-chengdu.aliyuncs.com/qins-img/nginx:1.24-alpine
    container_name: nginx-proxy
    restart: always
    networks:
      - use-external-net
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./conf:/etc/nginx/conf.d
      - ./ssl:/etc/nginx/ssl
      - ./logs:/var/log/nginx
      - /mydata/web-static:/mydata/web-static
sh
docker-compose up -d

conf 为空会报错,可以添加一个 default.conf 测试

nginx
server {
    listen 80;
    server_name localhost;

    location / {
        return 200 'hello';
        add_header Content-Type text/plain;
    }
}

其他可选配置

yml
volumes:
  - ./mime.types:/etc/nginx/mime.types
  - ./html:/usr/share/nginx/html

子项目

因为都是 docker 部署,他们之间必须有 network 才能通信!!!

部署时,一定要指定 network,参考:

sh
docker run -dit --name hlx2 -p 25001:25001 --network nginx-net registry.cn-chengdu.aliyuncs.com/qins-img/hlx2:${DRONE_BUILD_NUMBER}

配置

放在 ngc v2

https://gitee.com/qinsJs/ngc/tree/v2/

调试

一般 docker log 就可以,如果不行就进入容器里面进行调试

sh
docker exec -it 容器id sh
sh
tail -f /var/log/nginx/error.log

mime.types

如果需要的话在添加也来得及

sh
docker run --rm -dit --name temp-nginx registry.cn-chengdu.aliyuncs.com/qins-img/nginx:1.24-alpine
docker cp temp-nginx:/etc/nginx /opt/nginx/mine.types

更新配置后强制重启

docker-compose up -d --force-recreate

⚠️ 删除 volumes

docker-compose down -v