Linux Docker


  1. /opt/larkxr-cluster/nginx/conf.d中创建一个 https.conf配置文件,并将以下代码复制到文件中。

需要注意修改的部分:

listen 443 ssl;  # 443端口可以修改成其他端口,如果更改端口,请在 `docker-compose.yml` 中增加端口映射。例如,如果配置8586端口,需在 `services.nginx.ports` 中添加配置:- 8586:8586
ssl_certificate      /etc/nginx/cert/cloudlark.pingxingyun.com_bundle.crt;  # 证书的.crt文件所在目录,需要在 `docker-compose.yml` 中增加地址映射,`services.nginx.volumes` 中添加配置:- /opt/larkxr-cluster/nginx/cert:/etc/nginx/cert
ssl_certificate_key  /etc/nginx/cert/cloudlark.pingxingyun.com.key;  # 证书的key文件所在目录,需要在 `docker-compose.yml` 中增加地址映射,`services.nginx.volumes` 中添加配置:- /opt/larkxr-cluster/nginx/cert:/etc/nginx/cert

以下为完整结构体:

server {
    listen 443 ssl;
    server_name localhost;
error_page 497 400 https://$http_host$request_uri;
    ssl_certificate      \etc\nginx\cert\cloudlark.pingxingyun.com_bundle.crt;
    ssl_certificate_key  \etc\nginx\cert\cloudlark.pingxingyun.com.key;  
ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.2;
    resolver_timeout   5s;
    keepalive_timeout  60;

    #查看后端服务状态
    location /nginxstatus {
stub_status on;
        access_log off;
    }

    location /static {
        index index.html;
        alias  ./admin-front;
    }   

#----------------------- ------------------------------------
#  利用精确匹配,实现使用域名直接访问静态页面,而不用加/index
#  必须多解析一个精确匹配/index.html,否则404
#
#    location /index {
#        root  ./admin-front;
    location = / {
        root  ./admin-front/index;
        index index.html;
    }
    location = /index.html {
        root ./admin-front/index;
        #index index.html;
    }
#-------------------------------------------------------------      

    location /webclient {
        index index.html;
        root ./admin-front;
    }

#Minio图片转发
    location ^~ /image/ {
        proxy_pass http://172.29.0.30:9000/image/;
    }

    location / {           
        proxy_pass http://larkxr-admin/;
        proxy_cookie_path / /;
        proxy_http_version 1.1;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#用于解决getRequestURL方法获取不到https协议请求问题,使用request.getHeader("X-Forwarded-Scheme")来获取协议头
proxy_set_header X-Forwarded-Scheme  $scheme;
        proxy_set_header X-Real-Proto https;
        proxy_redirect http:// https://;
        client_max_body_size  100m;
        #默认值60s, nginx连接到后端服务器的连接超时时间
        #如果后端服务挂了会一直等到该时间后才超时,这个时间内其他的请求还会被分配到该节点,
        #触发超时以后才会把该节点标记为下线,这样这个时间内大量连接处于等待状态对服务器造成压力,
        #而且会分到该节点的大量请求,最终都是都是无法访问的,降低了可用性和用户体验。
        #另外,如果前端页面的timeout时间短与该值也会导致前端页面先于后台返回提前超时,返回499的错误。
        #如果前端页面超时设置为3s,这个位置就尽量设置3s以下。
        proxy_connect_timeout 2;
        #默认值 60s
        proxy_send_timeout    60;
        #默认值 60s
        proxy_read_timeout    60;
    }        

    
    #也可以写成:location ^~ /websocket {表示非正则匹配,一旦匹配到以/websocket开头的,就停止正则搜索,一般匹配还会继续搜索
    location /websocket {
        proxy_pass http://larkxr-admin;
        proxy_http_version 1.1;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-Proto https;
        #升级为WebSocket协议
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        client_max_body_size  1m;
        #默认值60s, nginx连接到后端服务器的连接超时时间
        #如果后端服务挂了会一直等到该时间后才超时,这个时间内其他的请求还会被分配到该节点,
        #触发超时以后才会把该节点标记为下线,这样这个时间内大量连接处于等待状态对服务器造成压力,
        #而且会分到该节点的大量请求,最终都是都是无法访问的,降低了可用性和用户体验。
        #另外,如果前端页面的timeout时间短与该值也会导致前端页面先于后台返回提前超时,返回499的错误。
        #如果前端页面超时设置为3s,这个位置就尽量设置3s以下。
        proxy_connect_timeout 2;
        #默认值 60s
        proxy_send_timeout    60;
        #默认值 60s
        proxy_read_timeout    60;
    }

    location ^~ /appli/upload {
        proxy_pass http://larkxr-admin/appli/upload;
        proxy_cookie_path / /;
        proxy_http_version 1.1;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#用于解决getRequestURL方法获取不到https协议请求问题,使用request.getHeader("X-Forwarded-Scheme")来获取协议头
proxy_set_header X-Forwarded-Scheme  $scheme;
        proxy_set_header X-Real-Proto https;
        #add_header 'Access-Control-Allow-Origin' '*';
        #add_header 'Access-Control-Allow-Credentials' 'true';
#add_header Access-Control-Allow-Methods '*';
    #add_header 'Access-Control-Allow-Headers' *;
        client_max_body_size  10240m;
        proxy_connect_timeout 2;
        proxy_send_timeout    60;
        #默认60,上传大文件时报504错误,所以加大超时时限
        proxy_read_timeout    7200;
    }

 location ^~ /appli/sliceUpload {
        proxy_pass http://larkxr-admin/appli/sliceUpload;
        proxy_cookie_path / /;
        proxy_http_version 1.1;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-Proto https;
#用于解决getRequestURL方法获取不到https协议请求问题,使用request.getHeader("X-Forwarded-Scheme")来获取协议头
proxy_set_header X-Forwarded-Scheme  $scheme;
        #add_header 'Access-Control-Allow-Origin' '*';
        #add_header 'Access-Control-Allow-Credentials' 'true';
#add_header Access-Control-Allow-Methods '*';
    #add_header 'Access-Control-Allow-Headers' *;
        client_max_body_size  10240m;
        proxy_connect_timeout 2;
        proxy_send_timeout    60;
        #默认60,上传大文件时报504错误,所以加大超时时限
        proxy_read_timeout    7200;
    }

}

  1. 重启nginx服务

cd /opt/larkxr-cluster
docker compose restart nginx

  1. 修改 /opt/larkxr-cluster/admin/application.yaml文件,启用代理模式
    • 修改 proxy.enable=true
  1. 重启admin服务

cd /opt/larkxr-cluster
docker compose restart larkxr-admin


admin 2025年11月14日 13:22 收藏文档

开发者交流群

QQ群号:1011308692