标签(空格分隔): 网管
由于集群需内网登录,为了方便起见,先在本机安装虚拟机测试功能,之后再部署至集群。
参考文章:
在 VMware Workstation Pro 上安装虚拟机 CentOS 7.X
CentOS 7.x 系统安装后的基本配置及调优
安装 nodejs 至 /Software/
cd /Software/
wget https://nodejs.org/dist/v9.9.0/node-v9.9.0-linux-x64.tar.xz
tar -xvf node-v9.9.0-linux-x64.tar.xz
mv node-v9.9.0-linux-x64 nodejs
ln -s /Software/nodejs/bin/node /usr/local/bin/
ln -s /Software/nodejs/bin/npm /usr/local/bin/
将项目文件放至 /Data/HopeLibrarySystem-master/ 目录下
若该项目文件之前在 Windows 下运行过 npm install 命令,需将 node_modules 文件夹删除。
进入项目文件所在目录,cd /Data/HopeLibrarySystem-master/
运行 npm install,安装依赖包。
顺便记录上传本机文件至虚拟机的方法:
法一:
filezalla 客户端,选择 SFTP 协议
ip 用户名 密码 端口
root 用户登录及端口设置可在 /etc/ssh/sshd_config 文件中修改,具体参见参考文章 CentOS 7.x 系统安装后的基本配置及调优
法二:
sftp
打开命令行,直接输入 sftp -o port=2333 [email protected]
通过 filezalla 将 mysql 安装包放至 /Software/ 目录下
groupadd mysql
useradd -s /sbin/nologin -g mysql -M mysql
tar -xvf mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.5.62-linux-glibc2.12-x86_64 mysql
ll support-files/*.cnf
/bin/cp support-files/my-small.cnf /etc/my.cnf
mkdir /Data/mysql_data
/Software/mysql/scripts/mysql_install_db --basedir=/Software/mysql --datadir=/Software/mysql/data --user=mysql
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
sed -i 's#/usr/local/mysql#/Software/mysql#g' /Software/mysql/bin/mysqld_safe /etc/init.d/mysqld
/etc/init.d/mysqld start
netstat -lntup|grep mysql
chkconfig --add mysqld
chkconfig mysqld on
echo 'export PATH=/Software/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
echo $PATH
mysqladmin -u root password '***'
具体查看参考文章 MySQL 的安装与配置
source /Data/HopeLibrarySystem-master/hopeWechat.sql
数据库文件可能乱码解决:
vim /etc/locale.conf,改中文编码
LANG="zh_CN.UTF-8"
vim /etc/my.cnf ,设置mysql服务器端的编码
character_set_server= utf8
先将 vmx 文件转换成 ovf:
cd C:\Program Files (x86)\VMware\VMware Workstation\OVFTool
ovftool D:\HopeLibrarySystem\HopeLibrarySystem.vmx D:\HopeLibrarySystem.ovf
VCenter 部署 ovf 模板即可。
先设置网络,将网关设置成端口转发机的内网IP
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo.bak
mv ifcfg-lo ifcfg-ens33
vim ifcfg-ens33
DEVICE=ens33
IPADDR=10.99.1.6
GATEWAY=端口转发机的内网IP
BOOTPROTO=static
NETMASK=255.255.255.0
TYPE=Ethernet
NM_CONTROLLED=yes
IPV6INIT=no
#NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
#BROADCAST=127.255.255.255
ONBOOT=yes
#NAME=loopback
PROXY_METHOD=none
BROWSER_ONLY=no
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME="System ens33"
UUID=c96bc909-188e-ec64-3a96-6a90982b08ad
ZONE=trusted
在端口转发机添加防火墙规则:
vim /etc/sysconfig/iptables
iptables -t nat -A PREROUTING -d 公网IP/32 -p tcp -m tcp --dport 3000 -j DNAT --to-destination 10.99.1.6:3000
service iptables save
service iptables reload
新建一台 Linux 主机,配置 Nginx,实现基于 location 的转发。
Nginx 安装参考文章 Nginx 安装与虚拟主机配置
修改端口转发机的防火墙规则:
iptables -t nat -A PREROUTING -d 外网IP/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination Nginx主机IP:80
修改 Nginx 配置文件:
#user nobody;
#2018.12.22
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
log_format main '$remote_addr - $remote_user [$time_local] '
: '"$request" $status $body_bytes_sent '
: '"$http_referer" "$http_user_agent" "$http_x_forwarded_for"';
server {
listen 80;
access_log logs/access.log;
server_name 202.116.83.77;
location / {
proxy_pass http://10.99.1.13;
}
location /hopelibrary/ {
rewrite ^/hopelibrary/(.*)$ /$1 break;
proxy_pass http://10.99.1.6:3000/;
}
}
}
npm install -g pm2
pm2 start bin/www --name hopelibrary
pm2 save
pm2 startup
参考文章 PM2来部署nodejs服务器永久开启