Update:更新快速安装脚本与视频,详见https://www.peatsuki.com/010.html
0x00 目标服务器
阿里云轻量服务器是一个物美价廉的香港服务器。
目前定价为1U1G=24元、1U2G=34元。(截至2020/7/1日)
峰值带宽为30M,流量为1T-2T左右。已经足够当我们的服务器使用。
请注意:由于非大陆地域的虚拟主机提供国际带宽,如在中国大陆使用,会有较大的网络延迟。
0x01 我的服务器状况
我的服务器上已经做了apache+php+wordpress,并且配置了全域SSL和加入HSTS Preload List。
经过考虑,我让FoundryVTT和这个wordpress博客挤一挤。以下制作代码建立在我的环境之下。
阿里云自带的worpress4.8.1或许能提供类似环境(不保证)
0x02 安装node.js环境(来源于官方指导)
依次运行以下语句sudo yum install -y openssl-devel
curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -
sudo yum install -y nodejs
0x03 创建对应文件夹并下载FoundryVTT运作档(来源于官方指导)
依次运行以下语句,其中斜线部分需要去你的FoundrtVTT授权页面点击node.js后方的链条按钮获得临时下载地址,并替换斜下划线部分。cd $HOME
mkdir foundryvtt
mkdir foundrydata
cd foundryvtt
wget -O foundryvtt.zip "https://foundryvtt.s3.amazonaws.com/releases/0.6.4/foundryvtt-0.6.4.zip"
unzip foundryvtt.zip
0x04 使用直接运行的方式测试FoundrtVTT(来源于官方指导)
运行以下语句并访问你的服务器公网地址测试,例如:http://127.0.0.1:30000node resources/app/main.js --dataPath=$HOME/foundrydata
0x05 使用PM2创建node.js值守进程(来源于社区指导)
依次运行以下语句,安装pm2并创建值守进程cd $home
npm install -g pm2
pm2 start foundrtvtt/resources/app/main.js
0x06 安装SSL证书cd /foundrydata
mkdir ssl
然后将证书的crt、key文件拷贝到ssl文件夹下。(建议采用FTP方式或者SFTP方式)
打开FoundryVTT,在Configuration中修改以下内容(斜下划线部分需要根据实际情况修改)
UserDataPath修改为 “/root/foundrydata”
填写SSL Certifilcate “/root/foundrydata/ssl/yourdomain.crt”
填写SSL Private Key “/root/foundrydata/ssl/yourdomain.key”
然后点击 Save Changes保存配置文件
0x07配置apache实现反向代理
修改 /usr/local/apache/conf/httpd.conf 的内容,添加以下字段:LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
修改 /usr/local/apache/conf/extra/httpd-ssl.conf 文件,添加以下字段,其中斜下划线部分需要根据实际情况修改:
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias yourdomain.com
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) wss://yourdomain.com:30000/$1 [P,L]
SSLEngine On
SSLProxyEngine on
SSLCertificateFile /root/foundrydata/ssl/yourdomain.crt
SSLCertificateKeyFile /root/foundrydata/ssl/yourdomain.key
SSLCertificateChainFile /root/foundrydata/ssl/yourdomain_ca.crt
Options FollowSymLinks
AllowOverride All
Require all granted
ProxyRequests Off
ProxyPass / "https://yourdomain.com:30000/"
ProxyPassReverse / "https://yourdomain.com:30000/"
</VirtualHost>
最后重启apache:/usr/local/apache/bin/apachectl restart