WordPress极简博客 WordPress极简博客
  • 新鲜事
  • 战疫情
  • UI素材
    • UI素材
    • 电商/节日
    • PPT
      • 节日庆典
      • 工作汇报
      • 商业计划书
    • word
      • 简历竞聘
      • 合同/公文
  • 创客头条
    • 音乐分享
    • 初创文章
    • 极客头条
    • 生活趣事
    • 生活日记
    • 防骗指南
  • 编程教学
    • API日记
    • Linux安全栏目
      • Linux运维安全汇总
      • DDOS攻击防护
      • XSS攻击防护
      • SQL安全防护
    • Python技术栏目
      • Python基础入门
      • Python基础结构
    • WordPress技术栏目
      • WP主题
      • WordPress技术教程
      • RIPRO主题美化
    • WordPress漏洞发布
    • 技术教程汇总
    • 严选源码
  • 专题
  • 基友
  • 隐私
  • 注册
    登录
立即登录
  • 首页
  • 云优化
  • 新疫情
  • 新鲜事
    • 热文
    • 极客
    • 生活
  • 技术篇
    • WP主题
    • 技术教程
    • Python入门
    • Python基础
  • 专题篇
  • 友链君
首页 技术教程(干货) 何在CentOS 7上设置代码服务器Cloud IDE平台

何在CentOS 7上设置代码服务器Cloud IDE平台

夏柔 6月 22, 2020

介绍

随着开发人员工具转移到云中,云IDE(集成开发环境)平台的创建和采用正在增长。Cloud IDE允许开发人员团队之间的实时协作,以在统一的开发环境中工作,从而最大程度地减少不兼容性并提高生产力。可以通过Web浏览器访问,各种类型的现代设备都可以使用Cloud IDE。

代码服务器是运行在远程服务器上的Microsoft Visual Studio Code,可以直接从浏览器访问。Visual Studio Code是具有集成Git支持,代码调试器,智能自动完成功能以及可自定义和可扩展功能的现代代码编辑器。这意味着您可以使用运行不同操作系统的各种设备,并且始终拥有一致的开发环境。

在本教程中,您将在CentOS 7机器上设置代码服务器云IDE平台,并将其公开到您的域,并使用免费的Let's Encrypt TLS证书进行保护。最后,您将在CentOS 7服务器上运行Microsoft Visual Studio代码,该代码在您的域中可用并受密码保护。

先决条件

  • 运行CentOS 7的服务器,该服务器至少具有2GB RAM,root用户访问权限和sudo非root用户帐户。您可以按照本初始服务器安装指南进行设置。
  • Nginx安装在您的服务器上。有关如何执行此操作的指南,请参阅如何在CentOS 7上安装Nginx。
  • 托管代码服务器的完整注册域名,指向您的服务器。本教程将通篇使用。你可以购买一个域名Namecheap,免费获得一个在Freenom,或使用你选择的域名注册商。对于DigitalOcean,您可以按照DigitalOcean DNS简介进行操作,以获取有关如何添加它们的详细信息。code-server.your-domain

第1步-安装代码服务器

在本节中,您将在服务器上设置代码服务器。这需要下载最新版本并创建一项systemd服务,该服务将使代码服务器始终在后台运行。您还将为服务指定重启策略,以便在可能的崩溃或重启后代码服务器保持可用。

您会将与代码服务器有关的所有数据存储在名为的文件夹中~/code-server。通过运行以下命令来创建它:

mkdir ~/code-server

导航到它:

cd ~/code-server

您需要转到代码服务器的Github版本页面,并选择最新的Linux版本(该文件的名称中将包含“ linux”)。在撰写本文时,最新版本是3.2.0。curl通过运行以下命令来下载它:

curl -LO https://github.com/cdr/code-server/releases/download/3.2.0/code-server-3.2.0-linux-x86_64.tar.gz

然后,通过运行以下命令解压缩归档文件:

tar -xzvf code-server-3.2.0-linux-x86_64.tar.gz

您将获得一个与下载的原始文件完全相同的文件夹,其中包含代码服务器源代码。将其复制到,/usr/lib/code-server以便您可以通过运行以下命令在系统范围内访问它:

sudo cp -r code-server-3.2.0-linux-x86_64 /usr/lib/code-server

然后,在处创建一个符号链接/usr/bin/code-server,指向代码服务器可执行文件:

sudo ln -s /usr/lib/code-server/code-server /usr/bin/code-server

接下来,为代码服务器创建一个文件夹,它将在其中存储用户数据:

sudo mkdir /var/lib/code-server

现在,您已经下载了代码服务器并使其在整个系统范围内可用,您将创建一个systemd服务,以使代码服务器始终在后台运行。

您将服务配置存储在目录中名为的文件code-server.service中/usr/lib/systemd/system,systemd 在其中存储其服务。使用vi编辑器创建它:

sudo vi /usr/lib/systemd/system/code-server.service

添加以下行:/lib/systemd/system/code-server.service

[Unit]
Description=code-server
After=nginx.service

[Service]
Type=simple
Environment=PASSWORD=your_password
ExecStart=/usr/bin/code-server --bind-addr 127.0.0.1:8080 --user-data-dir /var/lib/code-server --auth password
Restart=always

[Install]
WantedBy=multi-user.target

在这里,您首先指定服务的描述。然后,您声明该nginx服务必须在此之前启动。在该[Unit]部分之后,您可以定义服务的类型(simple意味着该过程应该简单地运行)并提供将要执行的命令。

您还指定应使用一些特定于代码服务器的参数来启动全局代码服务器可执行文件。--bind-addr 127.0.0.1:8080将其绑定到localhostport 8080,因此只能从服务器内部直接访问它。--user-data-dir /var/lib/code-server设置其用户数据目录,并--auth password指定它应该使用密码验证访问者的身份,该密码在其PASSWORD上方的行中声明的环境变量中指定。

请记住your_password用所需的密码替换,然后保存并关闭文件。

下一行告诉systemd在所有故障事件中重新启动代码服务器(例如,当它崩溃或进程被杀死时)。本[Install]节命令systemd在有可能登录到服务器时启动此服务。

通过运行以下命令来启动代码服务器服务:

sudo systemctl start code-server

通过观察其状态来检查它是否已正确启动:

sudo systemctl status code-server

您将看到类似于以下内容的输出:

Output● code-server.service - code-server
   Loaded: loaded (/usr/lib/systemd/system/code-server.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-05-13 19:57:27 UTC; 5s ago
 Main PID: 10608 (node)
   CGroup: /system.slice/code-server.service
           ├─10608 /usr/lib/code-server/node /usr/lib/code-server/out/node/entry.js --bind-addr 127.0.0.1:8080 --user-data-dir /var/lib/code-server --auth...
           └─10622 /usr/lib/code-server/node /usr/lib/code-server/out/node/entry.js --bind-addr 127.0.0.1:8080 --user-data-dir /var/lib/code-server --auth...

May 13 19:57:27 code-server-update-centos systemd[1]: Started code-server.
May 13 19:57:27 code-server-update-centos code-server[10608]: info  code-server 3.2.0 fd36a99a4c78669970ebc4eb05768293b657716f
May 13 19:57:27 code-server-update-centos code-server[10608]: info  HTTP server listening on http://127.0.0.1:8080
May 13 19:57:27 code-server-update-centos code-server[10608]: info    - Using custom password for authentication
May 13 19:57:27 code-server-update-centos code-server[10608]: info    - Not serving HTTPS
May 13 19:57:27 code-server-update-centos code-server[10608]: info  Automatic updates are enabled

要使代码服务器在服务器重启后自动启动,请通过运行以下命令来启用其服务:

sudo systemctl enable code-server

在此步骤中,您已经下载了代码服务器并使其在全球范围内可用。然后,您已经为其创建了systemd服务并启用了该服务,因此代码服务器将在每次服务器启动时启动。接下来,您将通过配置Nginx充当访问者和代码服务器之间的反向代理,在您的域中公开它。

第2步-在您的域中公开代码服务器

在本节中,您将Nginx配置为代码服务器的反向代理。

正如您在Nginx必备步骤中了解到的那样,其站点配置文件存储在/etc/nginx/conf.dNginx启动时,并将在以下位置自动加载。

您可以存储在一个文件名为您的域名暴露代码的服务器配置code-server.conf,下/etc/nginx/conf.d。首先使用编辑器创建它:

sudo vi /etc/nginx/conf.d/code-server.conf

添加以下行:/etc/nginx/conf.d/code-server.conf

server {
    listen 80;
    listen [::]:80;

    server_name code-server.your-domain;

    location / {
        proxy_pass http://localhost:8080/;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection upgrade;
        proxy_set_header Accept-Encoding gzip;
    }
}

用所需的域替换,然后保存并关闭文件。code-server.your-domain

在此文件中,您定义Nginx应该侦听HTTP port 80。然后,您指定一个server_name告诉Nginx哪个域接受请求并应用此特定配置的。

在下一个块中,对于根位置(/),您指定应将请求来回传递给运行在的代码服务器localhost:8080。接下来的三行(以开头proxy_set_header)命令Nginx继承一些HTTP请求标头,这些标头是WebSockets正确运行所必需的,WebSockets被代码服务器广泛使用。

要测试配置的有效性,请运行以下命令:

sudo nginx -t

您将看到以下输出:

Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

为了使配置生效,您需要重新启动Nginx:

sudo systemctl restart nginx

CentOS 7带有SELinux,并具有严格的规则集,默认情况下该规则集不允许Nginx连接到本地TCP套接字。Nginx需要做为代码服务器的反向代理。运行以下命令以永久放宽该规则:

sudo setsebool httpd_can_network_connect 1 -P

然后,在浏览器中,导航到用于代码服务器的域。您将看到代码服务器登录提示。

何在CentOS 7上设置代码服务器Cloud IDE平台-WordPress极简博客

代码服务器要求您输入密码。输入您在上一步中设置的那个,然后按Enter IDE。现在,您将输入代码服务器,并立即看到其编辑器GUI。

何在CentOS 7上设置代码服务器Cloud IDE平台-WordPress极简博客

现在,您可以在域中访问代码服务器安装。在下一步中,您将通过应用免费的Let's Encrypt TLS证书来保护它。

步骤3 —保护您的域

在本节中,您将使用Let's Encrypt TLS证书保护您的域,该证书将使用Certbot进行设置。

要安装最新版本的Certbot及其Nginx插件,请运行以下命令:

sudo yum install certbot python2-certbot-nginx -y

要为您的域请求证书,请运行以下命令:

sudo certbot --nginx -d code-server.your-domain

在此命令中,您运行certbot以请求您的域的证书-您通过-d参数传递域名。该--nginx标志告诉它自动更改Nginx站点配置以支持HTTPS。请记住用您的域名替换。code-server.your-domain

如果这是您第一次运行Certbot,将要求您提供电子邮件地址以紧急通知并接受EFF的服务条款。然后,Certbot将从Let's Encrypt请求您的域的证书。然后它将询问您是否要将所有HTTP通信重定向到HTTPS:

OutputPlease choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

建议选择第二个选项,以最大程度地提高安全性。输入选择后,按ENTER。

输出将类似于以下内容:

OutputIMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
 /etc/letsencrypt/live/code-server.your-domain/fullchain.pem
 Your key file has been saved at:
 /etc/letsencrypt/live/code-server.your-domain/privkey.pem
 Your cert will expire on ... To obtain a new or tweaked
 version of this certificate in the future, simply run certbot again
 with the "certonly" option. To non-interactively renew *all* of
 your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
 configuration directory at /etc/letsencrypt. You should make a
 secure backup of this folder now. This configuration directory will
 also contain certificates and private keys obtained by Certbot so
 making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

 Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 Donating to EFF:                    https://eff.org/donate-le

这意味着Certbot已成功生成TLS证书并将其应用于您域的Nginx配置。现在,您可以在浏览器中重新加载代码服务器域,并观察站点地址左侧的挂锁,这意味着您的连接已得到正确保护。

现在,您将使Certbot在证书过期之前自动对其进行续订。要每天运行续签检查,您将使用cron标准的系统服务来运行定期作业。您可以cron通过打开和编辑一个名为的文件来进行定向crontab:

sudo crontab -e

此命令将打开默认值crontab,当前是一个空文本文件。添加以下行,然后保存并关闭它:crontab

. . .
15 3 * * * /usr/bin/certbot renew --quiet

15 3 * * * 将会在每天凌晨3:15运行以下命令-您可以随时进行调整。

renewCertbot 的命令将检查系统上安装的所有证书,并更新所有设置为在三十天内过期的证书。--quiet告诉Certbot不要输出信息或等待用户输入。

cron现在将每天运行此命令。所有已安装的证书在过期前三十天或更短的时间内将自动更新并重新加载。

既然您已经可以通过安全的Nginx反向代理在您的域中访问代码服务器,那么您就可以准备检查代码服务器的用户界面。

步骤4 —使用代码服务器界面

在本节中,您将使用代码服务器界面的某些功能。由于代码服务器是在云中运行的Visual Studio Code,因此它具有与独立桌面版相同的界面。

在IDE的左侧,垂直排成一行的六个按钮在侧面板(称为活动栏)中打开最常用的功能。

何在CentOS 7上设置代码服务器Cloud IDE平台-WordPress极简博客

该栏是可自定义的,因此您可以将这些视图移动到其他顺序或从栏中删除它们。默认情况下,第一个按钮在下拉菜单中打开常规菜单,而第二个视图打开“资源管理器”面板,该面板提供项目结构的树状导航。您可以在此处管理文件夹和文件-根据需要创建,删除,移动和重命名它们。下一个视图提供对搜索和替换功能的访问。

接下来,以默认顺序查看源代码管理系统,例如Git。Visual Studio代码还支持其他源代码管理提供程序,您可以在本文档中使用编辑器找到有关源代码管理工作流程的更多说明。

何在CentOS 7上设置代码服务器Cloud IDE平台-WordPress极简博客

活动栏上的调试器选项提供了面板中所有常见的调试操作。Visual Studio Code内置支持Node.js运行时调试器以及任何可转换为Javascript的语言。对于其他语言,您可以安装所需调试器的扩展。您可以在launch.json文件中保存调试配置。

何在CentOS 7上设置代码服务器Cloud IDE平台-WordPress极简博客

活动栏中的最终视图提供了一个菜单,用于访问市场上可用的扩展。

何在CentOS 7上设置代码服务器Cloud IDE平台-WordPress极简博客

GUI的中央部分是您的编辑器,您可以通过选项卡将其分开以进行代码编辑。您可以将编辑视图更改为网格系统或并排文件。

何在CentOS 7上设置代码服务器Cloud IDE平台-WordPress极简博客

通过“ 文件”菜单创建新文件后,一个空文件将在新选项卡中打开,保存后,该文件名将在“资源管理器”侧面板中可见。右键单击“资源管理器”侧栏,然后单击“ 新建文件夹”,可以完成创建文件夹的操作。您可以通过以下方式展开文件夹:单击文件夹的名称,然后将文件和文件夹拖放到层次结构的上部,以将其移动到新位置。

何在CentOS 7上设置代码服务器Cloud IDE平台-WordPress极简博客

您可以通过输入CTRL+SHIFT+`或在上方菜单下拉菜单中单击终端,然后选择新建终端来访问终端。终端将在下面的面板中打开,其工作目录将设置为项目的工作区,其中包含“资源管理器”侧面板中显示的文件和文件夹。

您已经浏览了代码服务器界面的高级概述,并回顾了一些最常用的功能。

结论

现在,您已经在CentOS 7服务器上安装了代码服务器(一种通用的云IDE),该服务器暴露在您的域中并使用Let's Encrypt证书进行保护。现在,您可以单独进行项目,也可以在团队协作中进行工作。运行云IDE会释放本地计算机上的资源,并允许您在需要时扩展资源。有关更多信息,请参见Visual Studio代码文档以获取其他功能以及有关代码服务器其他组件的详细说明。

#Cen7#ClodIDE
0
J2dcg1.png
猜你喜欢
  • Nginx添加跨域限制规则
  • 使用测速脚本对国内Linux服务器进行测速
  • 域名爆破之自动化信息收集脚本
  • 利用免费接口实现国家开放大学刷网课脚本
  • RiProV2定制导航条
  • 判断是否在微信浏览器打开
  • 微信内自动播放音频非百度方案
  • 利用veImageX加速您的网站,想不快都难!
  • SWAPIDC减少注册信息及防刷注册量教学
  • Python实现定时发送每日早报及生活指数
10 3月, 2023
习近平当选为中华人民共和国主席
夏柔
站长
夏山如碧 - 怀柔天下
1700
文章
25
评论
58145K
获赞
版权声明

文章采用创作共用版权 CC BY-NC-ND/2.5/CN 许可协议,与本站观点无关。

如果您认为本文侵犯了您的版权信息,请与我们联系修正或删除。
投诉邮箱wpsite@aliyun.com

栏目推荐
Python基础入门33
WordPress技术教程267
前沿技术情报所22
城市创新——新消费11
最近有哪些不可错过的热文23
程序员的养生之道0
节
春
  • 新鲜事
  • 疫情实况
  • UI素材
  • 技术教程
  • 音乐分享
  • 专题
  • 友情
  • 隐私
  • 云优化
Copyright © 2019-2025 WordPress极简博客. Designed by 夏柔. 辽公网安备21010502000474号 辽ICP备19017037号-2