先說一下,樓主系統是ubuntu14.04,內網IP是125.216.242.151,後續不少命令都是基於ubuntu,不少配置中都要用到IP地址,並且須要填寫機構或key的時候,樓主都是用的ID:jwcqc,另外,全部的下載或安裝都在/server/目錄下。javascript
首先須要安裝nodejs包管理和分發工具npm:php
sudo apt-get install npm
其次是安裝python-webtest:html
sudo apt-get install python-webtest
因爲安裝過程當中像Google App Engine和編譯安裝collider都須要FQ,所以最好提早準備好 FQ 環境,不然安裝過程當中會遇到網絡引發的各類錯誤。java
sudo apt-get install nodejs sudo npm install -g npm sudo apt-get install nodejs-legacy sudo npm -g install grunt-cli
git clone https://github.com/webrtc/apprtc.git cd apprtc npm install //install grunt and required grunt dependencies
接下來須要修改項目中的 /apprtc/src/app_engine/constants.py,修改的部份內容以下:node
//turn打洞服務器配置 TURN_BASE_URL = 'https://125.216.242.151' TURN_URL_TEMPLATE = '%s/turn?username=%s&key=%s' CEOD_KEY = 'jwcqc' //主要要與以後turn服務器中的配置一致 //ICE服務器配置 ICE_SERVER_BASE_URL = 'https://125.216.242.151' ICE_SERVER_URL_TEMPLATE = '%s/v1alpha/iceconfig?key=%s' ICE_SERVER_API_KEY = os.environ.get('ICE_SERVER_API_KEY') WSS_INSTANCE_HOST_KEY = '125.216.242.151:8089' //信令服務器配置,這裏分配8089端口 WSS_INSTANCE_NAME_KEY = 'vm_name' WSS_INSTANCE_ZONE_KEY = 'zone' WSS_INSTANCES = [{ WSS_INSTANCE_HOST_KEY: '125.216.242.151:8089', WSS_INSTANCE_NAME_KEY: 'wsserver-std', WSS_INSTANCE_ZONE_KEY: 'us-central1-a' }, { WSS_INSTANCE_HOST_KEY: '125.216.242.151:8089', WSS_INSTANCE_NAME_KEY: 'wsserver-std-2', WSS_INSTANCE_ZONE_KEY: 'us-central1-f' }]
修改以後,進入到apprtc根目錄,開始buildpython
grunt build!!!!!!!!! 注意每一次對源代碼的修改,都須要從新再編譯一次,編譯事後,會獲得一個out目錄,能夠進去查看以前的修改是否生效。
//下載 wget https://storage.googleapis.com/appengine-sdks/featured/google_appengine_1.9.40.zip //解壓 unzip google_appengine_1.9.40.zip //設置環境變量 vim /etc/profile //添加進profile export PATH="$PATH:/root/google_appengine/" //保存環境變量 source /etc/profile
執行完上面4步後,房間服務器的安裝與配置便已完成,接下來就是運行了,進入到google_appengine根目錄下,執行:linux
sudo ./dev_appserver.py --host=125.216.242.151 /server/apprtc/out/app_engine //樓主的apprtc位於server目錄下
運行完按回車返回前臺,nohup以日誌形式輸出在運行此命令目錄下的nohup.out文件nginx
運行成功的話可在瀏覽器中打開 125.216.242.151:8080 進行訪問git
下載地址:https://golang.org/doc/install?download=go1.7.3.linux-amd64.tar.gz
下載完成後解壓,樓主解壓在了/server/目錄下,接着再在server目錄下建立gopath目錄,開始配置Go環境:github
vim /etc/profile
添加如下內容:
export GOROOT=/server/go export GOPATH=/server/gopath export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
使用 source /etc/profile 保存,而後能夠運行 go version 查看是否配置正確。
首先拷貝 /apprtc/src/collider 下的三個文件夾到 /server/gopath/src 目錄下:
cp /server/apprtc/src/collider/collider /server/gopath/src cp /server/apprtc/src/collider/collidermain /server/gopath/src cp /server/apprtc/src/collider/collidertest /server/gopath/src
修改 /server/gopath/src/collidermain/main.go文件,修改房間服務器IP:
var roomSrv = flag.String("room-server", "https://125.216.242.151", "The origin of the room server")
e = server.ListenAndServeTLS("/server/cert/jwcqc.crt", "/server/cert/jwcqc.key")
建立第2步中用到的ssl證書jwcqc.crt和jwcqc.key,本示例的證書建立在/server/cert下,進入到此目錄,而後依次執行:
openssl genrsa -des3 -out jwcqc.key 2048 openssl req -new -key jwcqc.key -out jwcqc.csr cp jwcqc.key jwcqc.key.org openssl rsa -in jwcqc.key.org -out jwcqc.key openssl x509 -req -days 365 -in jwcqc.csr -signkey jwcqc.key -out jwcqc.crt
進入 /server/gopath 目錄,準備編譯安裝collider(須要FQ)
go get collidermain go install collidermain
成功編譯後會在gopath目錄下生成bin和pkg目錄。
進入 /server/gopath/bin 目錄,用以下命令運行collider服務器:
./collidermain -port=8089 -tls=true
而後解壓到 /server/turnserver/下:
tar -zxvf turnserver-4.4.5.3-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz
解壓後會獲得INSTALL安裝須知和.deb包,可使用 cat INSTALL 查看一下安裝手冊,根據指導進行安裝(實在不行就雙擊安裝,暴力一點。。。):
sudo apt-get update sudo apt-get install gdebi-core sudo gdebi *.deb這裏一樣生成在了/server/cert/目錄下,密碼所有是jwcqc:
sudo openssl req -x509 -newkey rsa:2048 -keyout /server/cert/turn_server_pkey.pem -out /server/cert/turn_server_cert.pem -days 99999 -nodes
接下來運行
turnadmin -k -u jwcqc -r north.gov -p jwcqc
拷貝生成獲得的key,下一步會用到。
首先編輯 /etc/default/coturn 將 TURNSERVER_ENABLED=1 的註釋去掉,
再編輯 /etc/turnserver.conf,在末尾加入以下內容:
listening-device=eth0 listening-port=3478 relay-device=eth0 min-port=49152 max-port=65535 Verbose fingerprint lt-cred-mech use-auth-secret static-auth-secret=jwcqc user=jwcqc:0x949534a397bcf2e88470c86ad3749d9c(替換成上一步經過turnadmin生成的key) user=jwcqc:jwcqc stale-nonce cert=/server/cert/turn_server_cert.pem pkey=/server/cert/turn_server_pkey.pem no-loopback-peers no-multicast-peers mobility no-cli
最後一步,進入/apprtc/src/web_app/js/utils.js,修改requestIceServers函數:
function requestIceServers(iceServerRequestUrl, iceTransports) { return new Promise(function(resolve, reject) { var servers = [{ credential: "jwcqc", username: "jwcqc", urls: [ "turn:125.216.242.151:3478?transport=udp", "turn:125.216.242.151:3478?transport=tcp" ] }]; resolve(servers); }); }
因爲修改了代碼,所以須要進入apprtc目錄下執行 grunt build 從新編譯。
service coturn start
sudo apt-get install nginx
全部的配置文件都在/etc/nginx下,而且每一個虛擬主機已經安排在了/etc/nginx/sites-available下,啓動程序文件在/usr/sbin/nginx,日誌放在了/var/log/nginx中,分別是access.log和error.log,並已經在/etc/init.d/下建立了啓動腳本nginx,默認的虛擬主機的目錄設置在了/usr/share/nginx/www。
也能夠採用源代碼安裝方式,下載地址 http://nginx.org/download/ 下載事後解壓縮,再進入到解壓後的文件夾,前後執行./configure指令,再 make,再 make install 即安裝完成,安裝成功以後,nginx放置在/usr/local/nginx目錄下,主要的配置文件爲conf目錄下的nginx.conf,nginx的啓動文件在sbin目錄下的nginx文件。
pstream roomserver { server 125.216.242.151:8080; } server { listen 80 ; server_name 125.216.242.151; return 301 https://$server_name$request_uri; } server { root /usr/share/nginx/html; index index.php index.html index.htm; listen 443 ; ssl on; ssl_certificate /server/cert/jwcqc.crt; ssl_certificate_key /server/cert/jwcqc.key; server_name 125.216.242.151; access_log /var/log/nginx/jwcqc.log; location / { proxy_pass http://roomserver$request_uri; proxy_set_header Host $host; } location ~ .php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
在線安裝的啓動過程:
# service nginx reload
# service nginx start
------------------------結束------------------------------結束---------------------------結束---------------
!!!!!!!!方便二次啓用 !!!!!!!!!!1查看進程
:~# ps -a
--------
PID TTY TIME CMD
11699 pts/4 00:00:10 python
11708 pts/4 00:00:02 python
13779 pts/20 00:00:00 collidermain
13864 pts/21 00:00:00 ps
結束進程
kill 11699
nginx服務重啓/從新加載
:~# service nginx start
:~# service nginx reload
開啓房間服務
:~/apprtc# grunt build; dev_appserver.py --host=0.0.0.0 ./out/app_engine
開啓信令服務
:~/gopath/bin# ./collidermain -port=8089 -room-server='https://192.168.0.176:8080' -tls=true
開啓coTurn服務 service coturn star