信创之-麒麟v10服务器安装tengine(已完成)
之前的文章太长了,所以单独写
背景:java8+springboot+nginx+redis+sqlserver+windows server2000
目前java8已经更换,windows也已经更换,sqlserver也已经更换成dm8
其实java的静态文件目录,可以很好处理前端网站了,但是秉承着前后端完全分离,还是弄了个nginx,同时nginx也使用了反向代理,保护服务端
好了话不多说
原本的目标:完全离线状态安装tengine,但是研究了很久,还是放弃了,很简单,依赖的包太难找了,百度了很久很久,最后有个人介绍了个方法,直接从麒麟的iso解压找到了,但还是太多了。
最后用了在线安装,那是真简单,我放弃了离线方式,后面如果有项目硬逼着要离线,到时候再研究吧。
回想下之前windows
1.直接下载nginx的编译包,不是exe,直接是源码编译包
2.修改nginx的conf文件,修改监听端口,修改网站地址,如果有反向代理,那也一样修改配置
3.双击nginx.exe,查看任务管理器有两个进程,就算结束了
现在到麒麟下,其实还是很困惑的
1.麒麟安装和linux安装有啥区别
2.windows下直接放编译包,那麒麟的怎么办
3.网上都是nginx的,那和tengine有什么关系,教程是否一致
带着上面的疑问,开始了,长久的百度之旅,说下结果
1.麒麟和linux一样的
2.麒麟下也是直接放编译包
3.tengine是腾讯基于nginx的提升,所以教程一致
好了,放心了,那不就变成linux下如何安装nginx了么!!!!!!
但是实际并没那么简单,尤其是对于一个从windows下转过来的,思想转变不过来。
我先说下在线安装,然后我再说下离线安装思路
1. yum install gcc gcc-c++ make openssl-devel pcre-devel zlib-devel 然后框框一桶安装,y y确认
2.创建一个目录,这个目录用于nginx的安装目录,我是在/usr/local/tengine,你随意(其实我有点疑惑的,下载的源码编译包,怎么就变成安装了,windows下也没安装一说)
3.把linux的tengine.tar包放到麒麟服务器上,通过finalshell工具或者其他工具
4.通过cd目录进入到你的tengine.tar目录下,然后解压, tar -zxvf tengine-3.1.0.tar.gz
5.解压成功之后,cd进入解压后的目录
6.执行 ./configure --prefix=/usr/local/tengine,,意思就是把第2步的安装目录配置上去
7.执行 make 回车(输入make 回车即可),甭管输入什么,框框一顿操作就行
8.输入make install 回车
9.到这就表示安装好了(不明白为什么叫安装,反正跟着来),接下来就是启动nginx
10.这个和windows就不大一样了,在windows下直接是找到源码包里面nginx.exe双击,但是在linux下要cd进入上面设置的安装目录下,比如 /usr/local/tengine,那么就要执行 /usr/local/tengine/sbin/nginx 回车即可
11.通过端口查看,nginx是否成功启动, ps -ef | grep nginx;看到两个进程就对了,windows下也是两个
12.因为我们nginx是部署在服务器上的,那么我们外部想要测试下是否启动成功,那么就需要服务器开启80端口防火墙(80是默认的,可以改)
13.打开端口 firewall-cmd --permanent --add-port=80/tcp;重启防火墙 firewall-cmd --reload
14.外部测试,能打开nginx默认页面表示成功
好了。上面是在线安装,下面说下离线安装。
其实在线和离线的区别就在于,安装tengine或者nginx的时候,是需要安装额外依赖的,在线就很舒服了,一句指令,依赖都是自动的,而如果是离线,那么就需要自己找很多rpm包,进行安装,
如果恰好你有麒麟的iso镜像,那么解压后,取到packerage文件夹找就可以了。
我开始就准备离线,安装这个提示缺那个,安装那个又提示缺别的
太复杂了,不过这是个思路,你安装提示缺少什么,就去麒麟的解压包里找对应的rpm
安装告一段落,目前外部测试tengine是安装成功了,那接下来要进行
接下来:
1.修改配置conf文件,修改监听端口,修改反向代理等
2.把tengine服务做到开机自启中(windows下是通过nssm做的,可以自行百度,也很简单)
修改第一项,既然使用了linux,那么要用vi指令修改,但是....实在是一言难尽,改着改着火大了。
直接打开conf文件,把windows下的内容复制了过去,保存结束,测试成功。
所以步骤就没什么好说的了,总结一下修改ngnix
目前使用两点
1.作为静态资源服务器,我之前说过,前端打包后就是一个静态文件,是无法通过类似于http://1.1.1.1:8090 这样访问的,所以需要一个web服务器,之前net的iis就是这样,当然我说的很简单
2.作为代理服务器,就是比如你java开发了个jar,打包后别人通过你服务器ip和你java服务端口访问你的接口,这种方式是直接访问,把你的服务器等于是暴露出来,于是,nginx提供反向代理,你访问的是nginx的ip和nginx监听的端口,但是在nginx内部帮你转到了真实的jar服务,保护后端
3.nginx还有其他强大功能,比如https,防盗链,负载均衡,好像还有别的,没怎么了解
设置开机自启,前置工作:如果你服务器已经启动了nginx,那么先关掉先关掉先关掉先关掉
1.cd /lib/systemd/system 进入这个文件夹,开机自启的都放在这里
2.vim tengine.service 创建一个文件的意思,这个文件名随便你启
3.不会用指令写内容,所以我直接:wq 退出,然后打开直接复制粘贴(粘贴AI的),要注意一下”ExecStart“和”ExecReload“,后面的地址就是你的安装目录
[Unit]
Description=Tengine web server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/tengine/sbin/nginx -g "daemon off;"
ExecReload=/usr/local/tengine/sbin/nginx -s reload
KillMode=process
Restart=on-failure
PrivateTmp=true
[Install]
WantedBy=multi-user.target
4.修改文件权限 chmod 745 nginx.service
5.systemctl enable tengine.service
6.systemctl start tengine.service(这一步好像是多余的。。。。。。)
7.reboot重启服务器,然后等启动之后,直接网站访问试试,成功表示开机自启了
至此,麒麟安装tengine,配置,开机自启结束。