Nginx 代理设置

生成 kibana 的访问账号#

生成一个密码

openssl passwd '123456'

在 Portainer 创建一个 htpasswd 的 Config, 前面为用户名,后面为上面生成的密码

user1:Iv64DdYe3QxLg

创建 Nginx 配置文件#

接下来再创建一个 nginx 配置文件 default.conf

#kibana面板
server {
    listen 80;
    server_name kibana.example.com;
    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://kibana:5601;
        auth_basic "登陆验证";
        auth_basic_user_file /htpasswd;
    }
}
# 文件存储的外部访问
server {
    listen 80;
    server_name storage.example.com;
    location / {
        proxy_set_header Host $http_host;
        proxy_pass http://minio:9000;
    }
}
#主网站
server {
    listen 80;
    server_name www.example.com;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    location /user-center/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://user-center:9501/;
    }
    location /storage/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://storage/;
    }
}

创建服务#

docker service create \
    --name nginx \
    --replicas 1 \
    --network my-net \
    -p 80:80 \
    --config source=default.conf,target=/etc/nginx/conf.d/default.conf \
    --config htpasswd \
     nginx:1.17.6-alpine

接下来只需要把域名解析到任意节点 IP 就可以了

《PHP 微服务练兵》系列索引博客:《PHP 微服务练兵》系列教程

本作品采用《CC 协议》,转载必须注明作者和本文链接