0.说明
Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理、缓存服务软件,很有必要搭建实验环境来对其进行学习。
1.实验环境
本次实验的测试环境使用的宿主机操作系统为Windows 7,在Vmware虚拟机安装CentOS 6.5,说明如下:
宿主机操作系统Windows 7
虚拟机安装的操作系统CentOS 6.5
虚拟机操作系统上网方式NAT
而当使用NAT的方式进行上网时虚拟机、宿主机之间的网络连接关系可如下所示:
关于为什么网络拓扑结构是这样的,这里不展开说明,可以参考博主的另一篇博文《在实践中深入理解VMware虚拟机的上网模式NAT模式》,这篇文章深入地分析了VMware虚拟机使用NAT模式上网时的网络结构细节,相信看完这篇文章后,这里搭建Nginx的实验环境也就很容易理解了。
另外需要注意的是这里安装的CentOS 6.5操作系统使用了最小化安装,并且只定制安装了一些常用的开发工具如gcc等,其版本信息如下:
- [root@leaf~]#cat/etc/redhat-release
- CentOSrelease6.5(Final)
- [root@leaf~]#uname-r
- 2.6.32-431.el6.x86_64
- [root@leaf~]#uname-m
- x86_64
2.编译安装Nginx
pcre为“perl兼容正则表达式”perl compatible regular expresssions,安装其是为了使Nginx支持具备URI重写功能的rewrite模块,如果不安装Nginx将无法使用rewrite模块功能,但是该功能却十分有用和常用。
检查系统中是否有安装:
- [root@leaf~]#rpm-qpcrepcre-devel
上面可以看到并没有安装使用yum方式安装如下:
- [root@leaf~]#yuminstallpcrepcre-devel-y
- ......
- Installed:
- pcre-devel.x86_640:7.8-7.el6
- Updated:
- pcre.x86_640:7.8-7.el6
- Complete!
安装完后检查一下是否已经成功安装:
- [root@leaf~]#rpm-qpcrepcre-devel
- pcre-7.8-7.el6.x86_64
- pcre-devel-7.8-7.el6.x86_64
可以看到已经安装成功。
Nginx在使用HTTPS服务的时候要用到此模块,如果不安装openssl相关包,安装过程中是会报错的。
检查系统是否有安装openssl相关包:
- [root@leaf~]#rpm-qopensslopenssl-devel
- openssl-1.0.1e-15.el6.x86_64
- packageopenssl-develisnotinstalled
可以看到只是安装了opensslopenssl-devel还没有安装使用yum安装如下:
- [root@leaf~]#yuminstall-yopenssl-devel
- ......
- Complete!
再次检查:
- [root@leaf~]#rpm-qopensslopenssl-devel
- openssl-1.0.1e-48.el6_8.4.x86_64
- openssl-devel-1.0.1e-48.el6_8.4.x86_64
可以看到都已经成功安装上。
(3)下载Nginx软件包
这里使用的Nginx版本为1.6.3,下载方式如下:
查看下载的Nginx软件包:
- [root@leaftools]#ll
- total788
- -rw-r--r--.1rootroot805253Apr82015Nginx-1.6.3.tar.gz
当然上面的方式是使用wget方式直接下载,前提是已经知道了Nginx的下载地址,也可以到官网下载,然后再上传到我们的CentOS操作系统上。
(4)开始安装Nginx
可以先在根目录下创建一个/application文件夹用来存放我们安装的软件:
- [root@leaf~]#mkdir/application
- [root@leaf~]#ls-d/application/
- /application/
解压缩
将我们刚刚下载的Nginx软件包解压缩:
使用./configure指定编译参数
使用configure命令指定编译参数:
对于配置时使用的参数可以通过./configure --help来进行查询,上面使用的参数解析如下:
使用make进行编译
- [root@leafNginx-1.6.3]#make
- ......
检查编译是否成功:
- [root@leafNginx-1.6.3]#echo$?
- 0
返回0即说明编译成功。
使用make install安装
- [root@leafNginx-1.6.3]#makeinstall
- ......
检查安装是否成功:
- [root@leafNginx-1.6.3]#echo$?
- 0
返回0即说明安装成功。
建立安装目录的软链接
到此Nginx的编译安装工作已经全部完成了,下面就需要对安装结果进行验证了即验证Nginx是否可以正常提供服务。
3.测试Nginx服务
如下:
(2)启动Nginx服务
如果在启动Nginx服务时出现了问题可以查看Nginx的日志/application/Nginx/logs/error.log,再根据日志提供的信息来进行解决。
(3)验证Nginx服务是否正常
查看已开启的端口信息
- [root@leaf~]#netstat-lnp|grep80
- tcp000.0.0.0:800.0.0.0:*LISTEN6772/Nginx
- unix2[ACC]STREAMLISTENING91801/init@/com/ubuntu/upstart
可以看到Nginx已经在侦听80端口。
查看Nginx进程
在宿主机上使用浏览器进行测试
在我们宿主机的浏览器上输入http://10.0.0.101/,查看测试结果
可以正常访问,当然前提是CentOS上的防火墙功能已经关闭。
使用wget命令和curl命令测试
wget命令:
- [root@leaftools]#wget127.0.0.1
- --2017-02-2412:41:05--http://127.0.0.1/
- Connectingto127.0.0.1:80...connected.
- HTTPrequestsent,awaitingresponse...200OK
- Length:612[text/html]
- Savingto:aindex.htmla
- 100%[======================================>]612--.-K/sin0s
- 2017-02-2412:41:05(44.1MB/s)-aindex.htmlasaved[612/612]
currl命令:
- [root@leaftools]#curl127.0.0.1
- <!DOCTYPEhtml>
- <html>
- <head>
- <title>WelcometoNginx!</title>
- <style>
- body{
- width:35em;
- margin:0auto;
- font-family:Tahoma,Verdana,Arial,sans-serif;
- }
- </style>
- </head>
- <body>
- <h1>WelcometoNginx!</h1>
- <p>Ifyouseethispage,theNginxwebserverissuccessfullyinstalledand
- working.Furtherconfigurationisrequired.</p>
- <p>Foronlinedocumentationandsupportpleasereferto
- <ahref="http://Nginx.org/">Nginx.org</a>.<br/>
- Commercialsupportisavailableat
- <ahref="http://Nginx.com/">Nginx.com</a>.</p>
- <p><em>ThankyouforusingNginx.</em></p>
- </body>
- </html>
从上面的结果可以说明Nginx已经正常部署并运行。
通过修改/application/Nginx/html下的index.html文件,我们就可以改变Nginx主页显示的内容,操作如下:
- [root@leaftools]#cd/application/Nginx/html/
- [root@leafhtml]#ls
- 50x.htmlindex.html
- [root@leafhtml]#mvindex.htmlindex.html.source
- [root@leafhtml]#echo"<h1>Hello,I'mxpleaf.</h1>">index.html
- [root@leafhtml]#ls
- 50x.htmlindex.htmlindex.html.source
- [root@leafhtml]#catindex.html
- <h1>Hello,I'mxpleaf.</h1>
这时在宿主机操作系统上访问http://10.0.0.101/
5.在实际场景中的应用
不管是用于学习还是在生产环境中使用,Nginx都十分重要,而好的开始是成功的一半,所以第一步当然是要把Nginx服务搭建好。
6.参考资料
《跟老男孩学Linux运维Web集群实战》
http://Nginx.org