阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境

这篇具有很好参考价值的文章主要介绍了阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 安装宝塔面板

官网 https://www.bt.cn/new/download.htm
题外话:虽然感觉现在宝塔没以前好用了,而且有centos7、8 mysql编译导致OOM服务器挂掉无法ssh登录的情况,但他还是远程管理服务器的好选择,提示宝塔只支持最新的centos9stream,重要数据一定要备份,最好是全新的系统,而且需要与vscode相辅相成防止ssh上不去,面板访问不了的情况

先说一下我的版本

[root@iZ7xv7q4im4c48qen2do2bZ project]# cat /etc/redhat-release 
CentOS Stream release 9

按照官方文档安装宝塔

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

注意一定要保存好登录地址、账号、密码,小白注意谨慎修改ssh和22端口

登录面板

阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境,阿里云,vscode,云计算,code-server,https,unix socket
先不急修改账号密码,也可以现在改,port和登录hash都是可以修改的,一定要记住不然登录不了。除了初始密码之外,其他配置都是存在sqlite里的。

https://ip:port/登录hash

二、安装vscode远程版(code-server)

官网 https://coder.com/docs/code-server/latest/install#fedora-centos-rhel-suse

按照官网安装

curl -fsSL https://code-server.dev/install.sh | sh

三、 配置https

前言:可以发现宝塔面板是默认开启https的,coder-server刚启动是http模式。
https也就是ssl模式好处主要在于可信安全,开启了信任之后附带不管是调用浏览器高级api,或者是安装 progressive web app (PWA)程序都是十分方便的。
code-server官方也有说怎么开启https,但是他着重说了从CA获取证书,自签证书说的比较简洁,下面我说一下我使用的nginx转发的自签证书https模式

Q:什么是证书
A:用于服务器公钥的信任链叫做证书,由计算机内置根证书签名出其他的证书链,具体知识感兴趣可以学习一下

step1 本地自签证书

官网 https://github.com/FiloSottile/mkcert

按照你的操作系统,下载mkcert[下载链接],并修改可执行文件名为mkcert

# 这一步是生成根证书,并本地信任
mkcert -install
# 这一步使用刚刚生成的根证书签发新的证书,注意下面的域名以及ip都需要改成你服务器的域名和ip,相当于锁死证书的使用范围
mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1
# 我们获取到了两个证书,每一个证书包含了私钥和公钥,根证书在`mkcert -CAROOT`命令输出的目录,签发的子证书在当前目录
# 公钥为*.pem这个就是证书,私钥为*key.pem这个是给服务器加密用的

step2 使code-server监听套接字,socket模式

Q:为什么使用UDS(Unix Domain Socket)通信而不是TCP通信
我们可以发现在linux下诸如docker等都是使用/run/*.sock文件进行通信的,它的性能比端口通信(一般是TCP)性能更好,而且可以节约一个端口,并且不对外暴露,使得服务更安全。

  1. 修改code-server配置
# 根据官方文档配置文件在这里,如果你修改过或者文档过时了可以自己去看官网
vi ~/.config/code-server/config.yaml 

config.yaml 修改如下,顺便修改你的密码

#https://github.com/coder/code-server/discussions/2104
socket: /tmp/vscode.sock
auth: password
password: '你的密码,为什么用单引号隔开是防止有些需要转移的符号'
cert: False

可以看到
a. 开启了socket通信,地址是 /tmp/vscode.sock
b. 自身不开启cert,https认证

  1. 重启code-server服务
systemctl restart code-server@root
# 因为我是用root用户启动的给了它最高权限,如果不是,可以用tab键补全
  1. 配置伴随脚本给nginx用户(如果是宝塔安装的nginx默认是www用户)授权
# 生成授权脚本,脚本会轮训5秒检查/tmp/vscode.sock的创建,并给宝塔安装的nginx默认用户www授权读写
cat << EOF > /root/.local/share/code-server/code-server-after.sh
#!/bin/bash
timeout=5;start_time=$(date +%s);end_time=$((start_time + timeout));while [ $(date +%s) -lt $end_time ];do if [ -e /tmp/vscode.sock ] ;then setfacl -m u:www:rwX /tmp/vscode.sock;echo 'give permission ok';exit 0;else sleep 0.5; echo 'wait vscode.sock create ...';fi;done;echo 'fail,not found vscode.sock';exit -1;
EOF 
# 创建跟随服务,跟随code-server的服务启动后一次性授权脚本
cat << EOF >  /usr/lib/systemd/system/code-server-after@.service
[Unit]
Description=code-server-after
Requires=code-server@.service
After=code-server@.service
BindsTo=code-server@.service

[Service]
Type=oneshot
#ExecStart=/bin/bash -c "sleep 5 && setfacl -m u:www:rwX /tmp/vscode.sock"
ExecStart=/root/.local/share/code-server/code-server-after.sh
User=%i
RemainAfterExit=True

[Install]
WantedBy=default.target
EOF

# 允许code-server自启动
systemctl enable code-server@root
# 允许code-server-after跟随code-server单次运行
systemctl enable code-server-after@
# 因为code-server服务已经重启过了,跟随服务现在需要手动启动一次
systemctl start code-server-after@
  1. 检查配置是否生效
[root@iZ7xv7q4im4c48qen2do2bZ project]# getfacl /tmp/vscode.sock 
getfacl: Removing leading '/' from absolute path names
# file: tmp/vscode.sock
# owner: root
# group: root
user::rwx
user:www:rwx
group::r-x
mask::rwx
other::r-x

可以看到tmp/vscode.sock是存在的,而且www用户是有读写执行权限的,到此vscode配置结束

step3 宝塔安装nginx并配置

  1. 安装nginx,进入软件商店安装即可
    阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境,阿里云,vscode,云计算,code-server,https,unix socket
    看到nginx默认用户为www
    阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境,阿里云,vscode,云计算,code-server,https,unix socket

  2. 创建默认网站
    阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境,阿里云,vscode,云计算,code-server,https,unix socket
    并使用之前mkcert创建的子证书,左边是私钥,有私钥标识,右边是公钥,有认证标识
    阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境,阿里云,vscode,云计算,code-server,https,unix socket
    如果有域名可以进行域名访问,如果没有域名可以修改host文件的方式定义本机域名,现在介绍本地host方式,这种方法只能在你的计算机生效。自行配置,比如我的是example.com映射到我的公网服务器。

    然后去验证一下https生效
    阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境,阿里云,vscode,云计算,code-server,https,unix socket
    可以看到是安全的
    阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境,阿里云,vscode,云计算,code-server,https,unix socket
    可以在chrome浏览器地址栏的小锁点开证书看到详细信息里是由根证书1签发的证书2,我们的网站是用的证书2,而证书1是安装在我的电脑的根信任证书目录里的。所以我们的电脑信任了这个网站。如果需要其他人的电脑也信任这个证书。一是需要导出根证书(即公钥,不要给私钥)让其他人放到他电脑的根证书里,二是根据是否有域名决定要不要修改host。

  3. 配置nginx,新建/www/server/panel/vhost/nginx
    阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境,阿里云,vscode,云计算,code-server,https,unix socket
    内容如下

map $http_upgrade $connection_upgrade {  
     default upgrade;  
     '' close;  
}
server
{
    listen 8081 ssl http2;
    listen [::]:8081 ssl http2;
   
    ssl_certificate    /www/server/panel/vhost/cert/biewang.cn/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/biewang.cn/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    
    

    location / {
  
      proxy_pass http://unix:/tmp/vscode.sock;
      proxy_set_header Host $host;
      proxy_set_header Origin https://$host;
      proxy_set_header X-Real-IP        $remote_addr;
      proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection upgrade;
      proxy_set_header Accept-Encoding gzip;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Forwarded-Port $server_port;
      proxy_set_header Proxy-Protocol $scheme;      
    }
       
    access_log  /www/wwwlogs/vscode.log;
    error_log  /www/wwwlogs/vscode.error.log ;
}

# 注: 可以去掉我杂七杂八的注释,只是之前遇到坑的一些标注,我开了http和https两个端口,你可以选择性开启。注意https证书我复用了步骤二我创建的默认网站的证书,即ssl_certificate、ssl_certificate_key   字段。

在宝塔修改器里保存便即时生效。
阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境,阿里云,vscode,云计算,code-server,https,unix socket
https访问安全有效,可以点击地址栏的阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境,阿里云,vscode,云计算,code-server,https,unix socket
图标安装为一个应用文章来源地址https://www.toymoban.com/news/detail-686892.html

到了这里,关于阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CentOS升级内核-- CentOS9 Stream/CentOS8 Stream/CentOS7

    官方文档在此 当我们安装一些软件(对,我说的就是Kubernetes),可能需要新内核的支持,而CentOS又比较保守,不太升级,所以需要我们手工升级. # 看下目前是什么版本内核 uname -a # 安装公钥 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # 添加仓库,如果不执行该指令后面无法找到elrep

    2023年04月22日
    浏览(50)
  • centos9 stream 下 rabbitmq高可用集群搭建及使用

    RabbitMQ是一种常用的消息队列系统,可以快速搭建一个高可用的集群环境,以提高系统的弹性和可靠性。下面是搭建RabbitMQ集群的步骤: 基于centos9 stream系统 首先需要在所有节点上安装Erlang和RabbitMQ。建议使用官方提供的安装包进行安装。 在所有节点上编辑hosts文件,将各节

    2024年02月06日
    浏览(47)
  • 阿里云服务器Centos安装宝塔面板

    阿里云服务器是阿里云提供的一项云计算服务,它能够帮助用户快速搭建网站、应用和服务,提供高效稳定的数据存储和计算能力,满足用户的各种业务需求。 阿里云服务器是一种简单高效、处理能力可弹性伸缩的计算服务。它提供了多种规格的服务器,包括弹性计算型、计

    2024年02月02日
    浏览(56)
  • centos9的界面安装

    centos9最新的centos版本,在近期的使用中发现它的操作界面与以往的centos7/8更加舒适,界面优化更加精细 https://centos.org/download/ 输入地址后跳出下面界面,在centosLINUX和centos Stream中选择后者,并点击x86_64即可 新建虚拟机 打开安装好的VMware,点击文件,或者在主页新建虚拟机(

    2023年04月25日
    浏览(49)
  • mac m1安装Centos9

    先看结果(在mac M1 安装centos8 安装不成功的原因大部分是没有找到正确的系统) 由于Cnetos8 停服,现有mac m1 上能够按照的Centos8 并非由官方发布,因此寻找官方发布的能够在mac m1上安装的centos版本。 在YouTuBe上找到一个视频Install CentOS on MacBook M1 Chip - YouTube 视屏中有虚拟机和

    2024年02月15日
    浏览(59)
  • CentOS 8 安装 oracle 23c CentOS9 Error deal

    软件准备 序号 软件 下载地址 1 VirtualBox 2 CentOS Stream 8 3 oracle-database-free-23c 4 oracle-database-preinstall-23c 5 rlwrap 操作系统使用virtualbox虚拟机安装的centos8服务器,该步骤省略,教程很多的。 该环境是有网的,所以不设置yum源,如果是没网的内网环境,自行挂载镜像包作为yum源。 服

    2024年02月12日
    浏览(41)
  • centos9 redis安装报错(实在无解使用方法)

    报错如下 使用的解决命令 原过程

    2023年04月19日
    浏览(44)
  • CentOS Stream 9配置阿里yum源

    备份原有yum源 修改阿里源配置 (1)centos.repo (2)centos-addons.repo 更新缓存 yum makecache yum update

    2024年02月16日
    浏览(34)
  • 阿里云安装宝塔面板

    1.这里主要以阿里云的 服务器 ECS 为例子,需要安装纯净的系统 创建过程: 这边先用的是免费的: 进入实例选项卡: 快速添加,全部添加: 最好是重启一下系统 进入宝塔官网: 宝塔官网 复制如下命令,也可以选择万能的命令: 这个要保存好,因为只出现一次: 查看端口:

    2024年02月16日
    浏览(48)
  • CentOS 7 安装宝塔

           然后就会下载安装脚本,下载完成后会是否想要安装宝塔面板,我们输入 y 回车即可。(如下图)         接下来就是一些设置,大家可以根据个人情况来。如下图:

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包