离线安装GO语言依赖库

一、前言

参考原文:http://blog.csdn.net/a55569769/article/details/46377267

项目源码地址:https://github.com/golang/net

目的

解决GO语言项目依赖模块离线安装的问题。

二、安装

1.1.在工作空间创建目标项目的文件夹结构

cd ~/goWorkspace (此示例的go项目工作空间为当前用户的goWorkspace)
mkdir -p src/golang.org/x/net/
cd src/golang.org/x/net/

1.2.获取依赖模块源代码

git clone https://github.com/golang/net.git

linux操作系统搭建GO语言运行环境

一、前言

参考地址:https://golang.org/doc/install

ubuntu server 16自带go语言安装包,如果已经安装但版本比较低,需要先卸载,然后重新安装。卸载方式:

sudo apt autoremove golang

或者

sudo apt autoremove golang-{version}(一般为1.6或者1.9)

二、软件安装与配置

linux版go下载地址:https://golang.org/dl/

根据自己的需要,或者要下载的文件地址,此文使用:https://dl.google.com/go/go1.9.4.linux-amd64.tar.gz。

1.创建go的文件夹

cd /usr/local
mkdir /usr/local/go

2.下载go的文件夹并解压

cd
wget https://dl.google.com/go/go1.9.4.linux-amd64.tar.gz

(如果服务器无法翻墙,可以先在个人电脑,再上传;或者参考【ssh+proxychains实现linux服务器的代理翻墙】配置服务器翻墙)

tar -C /usr/local -xzf go1.9.4.linux-amd64.tar.gz

基于webrtc的多对多聊天(SkyRTC)

一、基本介绍

  1. 开源项目地址
    作者项目集合地址:https://github.com/LingyuCoder
    服务端项目地址:https://github.com/LingyuCoder/SkyRTC
    客户端项目地址:https://github.com/LingyuCoder/SkyRTC-client
    demo项目(本文中应用的)地址:https://github.com/LingyuCoder/SkyRTC-demo
  2. 项目技术特点
    这是一个使用SkyRTC和SkyRTC-client搭建浏览器中音频、视频、文字聊天室的Demo
  3. 前置条件
    参考【Nodejs开发环境与生产环境安装】安装nodejs;
    参考【基于coturn的webrtc iceserver搭建】自建iceserver服务;
    参考【通过apache2代理+Let’s Encrypt实现网站https与wss】配置网站的安全访问(浏览器有安全策略,除了127.0.0.1,其他需要配置SSL,页面才能调用本地摄像头与耳麦设备)。

二、开发配置

  1. 安装Node.js及npm环境(node版本推荐6.x以上的版本,如果使用4.x版本,此项目启动是会报错【EMPTY_BUFFER: Buffer.alloc(0)】,可以使用“nvm”安装需要的node版本)
  2. 下载源码(https://github.com/LingyuCoder/SkyRTC-demo)到本地,并解压缩
  3. 移动到解压后的目录下
  4. 使用命令npm install安装所需要的库
  5. 运行命令node server.js
  6. 访问http://localhost:3000#roomName查看效果,其中roomName为进入的房间名,不同房间的用户无法互相通信
  7. 进行浏览器兼容的开发工作

##功能说明 支持划分房间的在线音频、视频、文字聊天,提供房间内文件共享功能

三、部署配置

  1. 安装Node.js及npm环境
  2. 上传修改后的项目代码到目标服务器(不要带node_modules)
  3. 移动到解压后的目录下
  4. 使用命令npm install安装所需要的库
  5. 运行命令node server.js,建议配合forever
  6. 通过apache配置https与wss代理
  7. 访问https://公网ip#roomName查看效果,其中roomName为进入的房间名,不同房间的用户无法互相通信

四、优缺点分析

1.优点

部署运行简单

2.缺点

项目长久不维护,浏览器兼容性差。需要进行客户端js库的调整

通过apache2代理+Let’s Encrypt实现网站https与wss

一、现实需求

为了能够提供安全的互联网服务,各大浏览器厂商(chrome、fixfox等)都在倡导SSL的应用,Let`s Encrypt应运而生。它是国内外主流浏览器都认可的免费SSL证书,并提供了配套工具,大大方便了证书的申请与部署(工具地址:https://certbot.eff.org/#ubuntutrusty-apache)。

而且,随着html5技术的普及,通过页面调用本地硬件设备(摄像头、耳麦等)的应用越来越来。但浏览器厂商的安全机制,均需要配置SSL的网站才可以调用本地设备。

本文的主要内容分为两部分,一部分是传统http网站升级为https网站;另一部分是复杂部署环境下,需要通过apache的代理与SSL相结合的部署解决方案

以下案例均取材与ubuntu 14/16操作系统下,apache2作为web服务器的配置。

二、配置普通的http网站

1.域名的前期准备

工作开始前,请先注册一个域名,并备案(使用香港或国外服务器的,不用域名备案)。然后把域名解析到目标服务器的公网IP(关于域名解析,网上资料已经很多了,不再多说)。

此文使用的示例域名:lidetao.com

2.安装apache并启用相关模块

通过SSH登录目标服务器,建议先更新下系统库:

sudo apt update
sudo apt dist-upgrade
sudo apt autoremove (卸载过时或者没有被依赖的软件,避免boot满了)

安装apache

sudo apt install apache2

安装需要的模块

cd /etc/apache2/mods-available/

a2enmod rewrite
a2enmod ssl
a2enmode proxy*  (这里把代理相关的模块都安装了,建议根据实际需要有选择的安装)

3.配置域名的绑定

3.1创建文件

cd /var/www

创建域名绑定的文件夹
mkdir lidetao.com

创建一个默认的首页
cd lidetao.com
vim index.html (写入hello world,然后保存)

3.2设置配置

cd /etc/apache2/sites-enabled

vim lidetao.com.conf 内容如下:

<VirtualHost *:80>
    ServerAdmin webmaster@lidetao.com
    DocumentRoot "/var/www/lidetao.com"
    ServerName lidetao.com
    ServerAlias www.lidetao.com

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

3.3启动服务

service apache2 restart

然后访问http://lidetao.com,页面上展示“hello world” 继续阅读通过apache2代理+Let’s Encrypt实现网站https与wss

ssh+proxychains实现linux服务器的代理翻墙

一、需求

开发环境或者生产环境下,linux系统需要翻墙后,在线加载某些模块。当然,很多情况下是可以通过比较麻烦的离线安装实现。

但也有些情况下需要在线安装,特别是谷歌系的技术与产品。在工作中,遇到了go语言模块安装(当时是从github上获取源代码。离线安装的。但如果在线安装应该更简单些)与apprtc初始化环境需要谷歌云基础组件(只得通过翻墙进行验证)。

本文通过linux的ssh+proxychains代理软件,实现了服务器的全局代理翻墙。当然需要有个香港或者国外的linux服务器作为remoteIP。

二、代理配置

1.配置ssh代理端口

ssh -f2NCq -c blowfish -o ServerAliveInterval=60 -D 7070 username@remoteIP

注意:本地开一个SOCKS5代理,端口7070,后台(f),2版协议,不执行远程命令(N),压缩(C),安静模式(q),blowfish加密方法(c,快速),保持连接(o,60秒一次心跳)

加密算法参数可以不要,可以只有D参数

执行此命令后,需要输入远程linux服务器的ssh登录密码。然后执行下面命令,查看是否已经设置成功(会显示127.0.0.1:7070的数据)。

lsof -i -n -P | grep 7070

2.使用proxychains进行全局代理

参考地址:http://blog.csdn.net/guizaijianchic/article/details/78422811

执行下面命令,安装proxychains软件

sudo apt install proxychains

配置此软件的配置项:

vim /etc/proxychains.conf

在[proxyList]项配置代理

socks5 127.0.0.1 7070

3.使用方式

proxychains 目标指令,如:

proxychains wget https://www.google.com

会把谷歌的首页下载到当前路径上。