Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于配置https的问题 #414

Closed
etaqi opened this issue Mar 4, 2021 · 10 comments
Closed

关于配置https的问题 #414

etaqi opened this issue Mar 4, 2021 · 10 comments
Assignees
Labels

Comments

@etaqi
Copy link

etaqi commented Mar 4, 2021

1,按照配置文档修改nginx/conf.d/default.conf

server {

	listen 443 ssl;

	ssl_certificate /certs/server.pem;
	ssl_certificate_key /certs/server.key;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers HIGH:!aNULL:!MD5;

    root /usr/share/nginx/html;
    client_max_body_size 100M;
    
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://contact-center:8035; 
    }

    location /socket.io { proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "Upgrade";
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header Host $host;
		proxy_http_version 1.1;
		proxy_pass http://contact-center:8036; 
    }
}

2.修改 .env 设置 CC_SOCKET_PORT=443
3.执行 docker-compose restart 之后访问网站443端口,发现无法访问
4. 执行命令docker ps 未发现nginx
5. 执行命令docker-compose up -d nginx
出现错误:

ERROR: for cskefu_nginx_1 Cannot start service nginx: driver failed programming external connectivity on endpoint cskefu_nginx_1 (0ae9f3a2c2c3b9693603a27ab39d47b9b1092cf80826ccf534e40c70974cc787): Bind for 0.0.0.0:443 failed: port is already allocated

ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint cskefu_nginx_1 (0ae9f3a2c2c3b9693603a27ab39d47b9b1092cf80826ccf534e40c70974cc787): Bind for 0.0.0.0:443 failed: port is already allocated

docker ps 之后发现端口被 cskefu_contact-center_1 占用。
2f6b6f8850e3 chatopera/contact-center:develop "./docker-entrypoint…" 9 minutes ago Up 9 minutes 8030-8034/tcp, 8037-8050/tcp, 0.0.0.0:8035->8035/tcp, 0.0.0.0:443->8036/tcp cskefu_contact-center_1

@hailiang-wang
Copy link
Member

按照文档部署,chatopera/contact-center:develop 不占用 443,请检查一下。

@hailiang-wang hailiang-wang added the help-wanted 帮助 label Mar 4, 2021
@etaqi
Copy link
Author

etaqi commented Mar 4, 2021

重新对比检查了一下docker-compose.xml 文件,跟您发的是一样的。docker-compose.xml 文件没有修改过。唯一修改的地方就是 .env 文件中的 CC_SOCKET_PORT=443 。

@hailiang-wang
Copy link
Member

文档存在问题,先用下面方案:

docker-compose down

该命令删除资源。

然后修改 docker-compose.yml

https://github.com/chatopera/cskefu/blob/e04ace620f99a32186cf6b524f4bf252cb377740/docker-compose.yml#L21

在该文件中,删除这一行,然后重启用 docker-compose up -d 启动

@etaqi
Copy link
Author

etaqi commented Mar 4, 2021

文档存在问题,先用下面方案:

docker-compose down

该命令删除资源。

然后修改 docker-compose.yml

https://github.com/chatopera/cskefu/blob/e04ace620f99a32186cf6b524f4bf252cb377740/docker-compose.yml#L21

在该文件中,删除这一行,然后重启用 docker-compose up -d 启动

可以了,感谢

@hailiang-wang
Copy link
Member

配置 HTTPs 文档中,对 CC_SOCKET_PORT 环境变量的使用,描述的不对,或需要修改 docker-compose 增加一个变量。

image

可能的解决方案

https://github.com/chatopera/cskefu/blob/e04ace620f99a32186cf6b524f4bf252cb377740/docker-compose.yml#L21

此处的 CC_SOCKET_PORT 变量名改为 CC_SOCKET_OS_PORT, 默认为 8036,并且在不清楚代码细节的情况下,不建议修改。

@hailiang-wang hailiang-wang pinned this issue Mar 10, 2021
@hailiang-wang hailiang-wang unpinned this issue Oct 15, 2021
@ghost
Copy link

ghost commented Mar 20, 2022

看了一下,很多问题都是这个客服及管理员的聊天,一直在走8036的问题,到底应该怎么修改才能不加上这个小端口呢?

@ghost
Copy link

ghost commented Mar 20, 2022

我是应该注释掉CC_SOCKET_PORT,还是改为我是应该注释掉CC_SOCKET_OS_PORT?都试了感觉一直在瞎试

@ghost
Copy link

ghost commented Mar 20, 2022

终于搞明白了:

  1. 在.env中,随便 搞一个变量,例如就叫CC_SOCKET_OS_PORT=443或者80
  2. 在docker-compose.yml中,修改这一行,用上1中的参数就可以了。:
    #- CS_IM_SERVER_SSL_PORT=${CC_SOCKET_PORT:-8036}
    • CS_IM_SERVER_SSL_PORT=${CC_SOCKET_OS_PORT:-8036}

@hailiang-wang
Copy link
Member

前提

  • 负载均衡请求 域名:80域名:443 -[映射:/]-> IP:8035, -[映射:/socket.io]-> IP:8036,
  • 负载均衡已经配置了 SSL 证书,使 HTTPS, SOCKETS 的请求可以访问 域名:443

以上两个前提参考文章:春松客服配置 CDN和HTTPS | 春松客服

然后,进行如下操作。

暂停服务

docker-compose down

设置环境变量 CS_IM_SERVER_SSL_PORT

然后修改 docker-compose.yml,在该文件中,删除第 36 行,然后重启用 docker-compose up -d 启动

- CS_IM_SERVER_SSL_PORT=${CC_SOCKET_PORT:-8036}

即删除环境变量:

CS_IM_SERVER_SSL_PORT

其它

8035, 8036

这两个端口的介绍参考 https://docs.cskefu.com/docs/deploy

@cskefu cskefu locked as resolved and limited conversation to collaborators Feb 21, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants