一、试验目的
无论是阿里云,还是腾讯云,无论是华为云,还是天翼云……无论是“哪朵云”,肯定都会有“负载均衡”这个服务,这究竟是个什么东东呢?产品介绍、功能特性等信息,各家的云官网上都讲的很仔细啦,在此就不赘述了。
对了,此实验主要针对技术人员,或者是对技术感兴趣的爱好者,对于技术不感兴趣的,可以耐着性子凑个热闹,也可以就此绕行。
Nginx就可以实现负载均衡,当然,Nginx还可以做Web服务器,邮件服务器,反向代理等等,其中做Web服务器的性能要比Apache Tomcat的好,所以很多企业也越来越喜欢使用Nginx。
因此,一时兴起,打算自己搭建一个Nginx环境。
二、试验准备
1. CentOS 7.5 云主机(虚拟机),移动云云主机开通流程请参考此帖:https://blog.csdn.net/tianyangqi/article/details/107316358
2. Nginx 1.18.0 (stable version),可以参考Nginx社区网站,http://nginx.org/en/download.html
三、试验过程
步骤一:上官网瞧瞧
既然是要搭建Nginx环境,还是建议到社区官网上先看看,虽说英文看起来头疼,但看得多了也就不疼了,而且官网上的东西,肯定是最权威和一手的。当然,网上搜来的各种帖子也是值得参考的,否则像我这样的辛苦码字的技术爱好者们,就没啥动力发帖啦。
点击http://nginx.org/ 进入社区官网,一般首页也发布一些最新版本的信息,在做此实验的时候最新版本是nginx-1.19.1,不过是mainline版本,最新的stable version版本的是nginx-1.18.0。一般进入官网,想下载安装包或者源码,肯定是找download,如果是想查看文档,肯定是找documentation或者docs等字眼。
说明一下:此实验是采用yum仓库方式安装Nginx的,不是源码编译的方式安装的,网上也有很多源码编辑安装方式的帖子,感兴趣的可以搜索查看。
闲话少说,点击链接http://nginx.org/en/linux_packages.html ,进入主题,找到CentOS对应的安装说明,如图:
步骤二:安装yum工具包
sudo yum install yum-utils
安装完成的显示界面
步骤三:配置Nginx配置文件
按照官网的指导,编辑配置文件,命令如下:
vi /etc/yum.repos.d/nginx.repo
将仓库配置的代码拷贝到编辑文本中,保存退出。注意:我修改了名字,直接改成nginx,是为了后续敲命令方便。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
命令界面如下:
步骤四:用yum安装Nginx
继续按照官网文档的指导,安装Nginx,使用的命令如下:
sudo yum install nginx
如果显示此信息,没有其他error信息,表示安装完成。
步骤五:查看Nginx安装文件目录,找出关键的配置文件
使用命令:
rpm -ql nginx
步骤六:启动Nginx
启动的命令很简单,直接在命令界面敲入nginx,同时用ps aux | grep nginx命令来查看nginx启动进程。
nginx
ps aux | grep nginx
步骤七:验证Nginx服务是否启动成功
一种是使用命令来验证,最常用的就是curl,加上需要验证的网站地址和端口,因为是本地验证,所以使用localhost就行,又因为默认是80端口,所以端口默认可以不添加。
curl localhost
另一种是通过浏览器来访问,因为我的实验环境是搭建在移动云云主机上,使用我本地笔记本电脑访问云主机上的服务,需要通过公网IP地址来访问,私网肯定是访问不到。
通过移动云控制台->云主机,查看云主机列表,找到云主机对应的公网IP地址:
同时确定该云主机关联的安全组放通了对应的端口,Nginx配置文件中默认是80端口。
该是见证奇迹的时刻到了,在浏览器地址栏敲入http:// 36.133.97.21:80,回车……
不幸的是,页面出错了。难道是Nginx没有启动吗?但明明本地curl localhost已经显示成功了啊,说明问题不在本地啊。难道是安全组没有放通80端口?可明明是放通了啊。然后就各种的问号开始在大脑里飘了吧,各种怀疑人生了吧,各种……
其实这就是技术爱好者的探索过程,不出问题是不可能的,只有出现了问题,然后又解决了问题,才能品尝到那种成功的滋味儿,虽说在别人眼里只是小打小闹,可就好这口!
步骤八:兵来将挡水来土掩,发现问题,解决问题
其实吧,这是移动云平台的特殊要求,对于部署网站的云主机,80端口是需要ICP备案后才能让外网访问,毕竟咱们这只是个实验环境,实验目的很纯洁,万一让不法分子钻空子,搭建一个不和谐的网站,让广大网民随心所欲的访问,岂不是坏了大事。
咱们是遵纪守法的良好公民,既然80端口用不了,可以换其它的端口啊,还记得上面提到的那两个主要配置文件吧,修改端口,走起!!
vi /etc/nginx/conf.d/default.conf
:wq 保存退出。
重新加载Nginx,然后查看监听端口是否生效。
nginx -s reload
netstat -lntp
确认安全组放通8000端口,然后通过本地笔记本电脑浏览器,http:// 36.133.97.21:8000,然后再次访问,出现以下界面,说明搭建成功。
总结:
到此算是把Nginx环境搭建成功了,万里长征才走出第一步,Nginx里面还有很多的功能可配置,假如自己开发了一个网站,网站的所有页面发布到/usr/share/nginx/html此文件夹下,并且把index.html页面替换成自己网站的首页,就可以通过浏览器访问了,也算是搭建了自己的第一个web网站吧。
详细的开发功能,或者命令参数,可直接参考官网,或者搜帖子,总有人走在自己的前面的,也总相信有人会解答问题的。
四、问题汇总
1. Nginx服务不知道是否启动
可通过curl IP地址:端口号 来验证,比如curl 127.0.0.1:80,如果验证返回Nginx欢迎页面,说明启动成功。
也可以通过ps aux来查看Nginx运行进程,如果能找到master和worker进程,说明Nginx启动成功。
2. 浏览器访问老是出现页面出错
要么是安全组没有放通端口号,要么就是因为移动云本身的管制,使用了80端口,解决办法就是换其它端口号再试试。