材料包括:
主项目-web项目
辅项目-支付接口-springboot项目
nginx服务器
三台服务器1,2和3
一个域名
mysql数据库
远程连接工具MobaXterm_Personal_21.1
一、服务器购买
推荐一个亿速云,里面有香港服务器免备案的,而且还便宜实用
买好后,在控制台先关机重设密码,然后就是安全组中端口的开放
二、域名的购买
我是在namesilo.com上买的,15美元一个
下面是购买
然后是绑定ip
三、远程连接工具MobaXterm_Personal_21.1免费而且兼具shell和传文件的功能
四、web服务部署
需要jdk-8u202-linux-x64.tar.gz和apache-tomcat-8.0.36.tar.gz就是jdk和tomcat环境
传到服务器后tar -zxvf解压,
vi .bash_profile或vi ~/.bash_profile来配置jdk环境
JAVA_HOME=/opt/finance/jdk1.8.0_60 JRE_HOME=/opt/finance/jdk1.8.0_60/jre CLASSPATH=.:$JAVA_HOME/lib/tools.jar:%JAVA_HOME%/lib/dt.jar PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH PATH=$PATH:$HOME/bin
把上面的jdk名字换成自己jdk的版本
保存后退出刷新配置文件source ~/.bash_profile或source .bash_profile
然后是配置tomcat
cd tomcat vi conf/server.xml
这下面会有你想要的war文件
将war文件上传到tomcat的webapps文件中实用命令rm -fr删除原来的ROOT目录,将自己的war文件名改为ROOT.war,然后进入tomcat的bin文件,./startup.sh运行,tail -f logs/catalina.out查看日志,运行在8080端口,停止同样在bin目录中./shutdown.sh
五、辅项目-springboot项目部署
pom文件中配置下
nohup java -jar xxx.jar > consoleMsg.log 2>&1 & 运行并将日志输出到consoleMsg文件中
tailf -n 500 consoleMsg.log查看日志文件
nohup java -jar cms-0.0.1-SNAPSHOT.jar > /dev/null 2> /dev/null & 这是不输出日志的运行方式
ps -ef | grep your-spring-boot-app.jar查看jar文件运行的端口号
kill -15 <process-id> 杀死pid停止项目
六、nginx代理以及负载均衡搭建
sudo yum install nginx
sudo systemctl start nginx
sudo systemctl status nginx
sudo vi /etc/nginx/nginx.conf配置nginx
http {
upstream your_application_name {
ip_hash;
server your_application_server:your_application_port weight=1;
server your_application_server:your_application_port weight=2;
}
server {
listen 80;
server_name your_domain_name.com;
location / {
proxy_pass http://your_application_name;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header backendCode $upstream_status;
add_header BackendIP "$upstream_addr;" always;
}
}
}
保存后退出,刷新配置文件sudo systemctl reload nginx,如果reload报错说明配置文件中输入格式有错误,可以实用nginx -t -c /etc/nginx/nginx.conf查看具体是哪里出错
add_header的那两行可以在浏览器中network的header中查看nginx转发到了那台服务器的ip,进而可以验证负载均衡是否生效,验证的时候先将ip_hash去掉
另外nginx占用的是80端口,所以网址输入ip即可自动访问该服务器的80端口
七、支付接口接入项目
我用到是狸云支付个人支付接口|微信支付接口|第三方支付接口 - 狸云支付主要是便宜而且手续简单,弄好后进入开发文档,翻到最下面下载它的SDK
在payconfig中配置notify和return的地址
此处改为payurl
我是单独把这个sdk作为一个项目,在主项目中访问sdk项目,sdk生成二维码支付连接后返回给主项目,notify_url是支付成功后支付提供商在后台访问该地址并携带支付的那些参数,这个接口主要用来根据传递过来的订单号改变数据库中的订单的支付状态,然后write一个success返回给支付提供商,否则它会一直访问notify接口,另外值得一提的是notify_url不能是内网地址,比如localhost和127.0.0.1什么的,必须是外网能访问到的地址,而且还不能包含端口号,所以要用nignx代理。然后return_url就是支付成功后客户端唤起的页面,一般就是放些虚拟商品的信息等,另外return_url最好与客户端输入的一致,比如客户端输入的是域名,那ruturn_url就得是域名而不能是该域名指向的ip:8080什么的
最后就是我的网站部署好后的运行情况,我的服务器是2核2G内存2M带宽的,然后就是很不稳定,很容易超出带宽,然后就会变得很卡,必须重启才能恢复,其本上废了属于是,还要进一步优化