在CentOS上编译安装Nginx+实验环境搭建+测试
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 CentOS release 6.5 (Final) [root@leaf ~]# uname -r 2.6.32-431.el6.x86_64 [root@leaf ~]# uname -m x86_64
2.编译安装Nginx
(1)安装Nginx依赖函数库pcre
pcre为“perl兼容正则表达式”perl compatible regular expresssions,安装其是为了使Nginx支持具备URI重写功能的rewrite模块,如果不安装Nginx将无法使用rewrite模块功能,但是该功能却十分有用和常用。
检查系统中是否有安装:
[root@leaf ~]# rpm -q pcre pcre-devel
上面可以看到并没有安装使用yum方式安装如下:
[root@leaf ~]# yum install pcre pcre-devel -y ...... Installed: pcre-devel.x86_64 0:7.8-7.el6 Updated: pcre.x86_64 0:7.8-7.el6 Complete!
安装完后检查一下是否已经成功安装:
[root@leaf ~]# rpm -q pcre pcre-devel pcre-7.8-7.el6.x86_64 pcre-devel-7.8-7.el6.x86_64
可以看到已经安装成功。
(2)安装Nginx依赖函数库openssl-devel
Nginx在使用HTTPS服务的时候要用到此模块,如果不安装openssl相关包,安装过程中是会报错的。
检查系统是否有安装openssl相关包:
[root@leaf ~]# rpm -q openssl openssl-devel openssl-1.0.1e-15.el6.x86_64 package openssl-devel is not installed
可以看到只是安装了opensslopenssl-devel还没有安装使用yum安装如下:
[root@leaf ~]# yum install -y openssl-devel ...... Complete!
再次检查:
[root@leaf ~]# rpm -q openssl openssl-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,下载方式如下:
[root@leaf ~]# pwd /root [root@leaf ~]# mkdir tools [root@leaf ~]# cd tools/ [root@leaf tools]# wget http://nginx.org/download/nginx-1.6.3.tar.gz ...... 100%[======================================>] 805,253 220K/s in 3.6s 2017-02-24 12:10:26 (220 KB/s) - anginx-1.6.3.tar.gza saved [805253/805253]
查看下载的Nginx软件包:
[root@leaf tools]# ll total 788 -rw-r--r--. 1 root root 805253 Apr 8 2015 nginx-1.6.3.tar.gz
当然上面的方式是使用wget方式直接下载,前提是已经知道了Nginx的下载地址,也可以到官网下载,然后再上传到我们的CentOS操作系统上。
(4)开始安装Nginx
可以先在根目录下创建一个/application文件夹用来存放我们安装的软件:
[root@leaf ~]# mkdir /application [root@leaf ~]# ls -d /application/ /application/
解压缩
将我们刚刚下载的Nginx软件包解压缩:
[root@leaf tools]# tar -zxvf nginx-1.6.3.tar.gz ...... [root@leaf tools]# ls nginx-1.6.3 nginx-1.6.3.tar.gz
使用./configure指定编译参数
先创建一个nginx用户用来安装完成后运行nginx使用:
[root@leaf tools]# useradd nginx -s /sbin/nologin -M [root@leaf tools]# tail -1 /etc/passwd nginx:x:500:500::/home/nginx:/sbin/nologin # -s参数后的/sbin/nologin指定不允许nginx进行登陆 # -M参数则是在创建该用户时不创建用户家目录
使用configure命令指定编译参数:
[root@leaf nginx-1.6.3]# ./configure --user=nginx --group=nginx --prefix=/application/nginx-1.6.3/ --with-http_stub_status_module --with-http_ssl_module
对于配置时使用的参数可以通过./configure --help来进行查询,上面使用的参数解析如下:
--prefix=PATH # 指定安装路径 --user=USER # 设置用户进程权限 --group=GROUP # 设置用户组进程权限 --with-http_stub_status_module # 激活状态信息 --with-http_ssl_module # 激活ssl功能
使用make进行编译
[root@leaf nginx-1.6.3]# make ......
检查编译是否成功:
[root@leaf nginx-1.6.3]# echo $? 0
返回0即说明编译成功。
使用make install安装
[root@leaf nginx-1.6.3]# make install ......
检查安装是否成功:
[root@leaf nginx-1.6.3]# echo $? 0
返回0即说明安装成功。
建立安装目录的软链接
[root@leaf nginx-1.6.3]# ln -s /application/nginx-1.6.3/ /application/nginx [root@leaf nginx-1.6.3]# ls -l /application/ total 4 lrwxrwxrwx. 1 root root 25 Feb 24 12:32 nginx -> /application/nginx-1.6.3/ drwxr-xr-x. 6 root root 4096 Feb 24 12:28 nginx-1.6.3
到此Nginx的编译安装工作已经全部完成了,下面就需要对安装结果进行验证了即验证Nginx是否可以正常提供服务。
3.测试Nginx服务
(1)启动Nginx服务前检查配置文件语法
如下:
[root@leaf ~]# /application/nginx/sbin/nginx -t nginx: the configuration file /application/nginx-1.6.3//conf/nginx.conf syntax is ok nginx: configuration file /application/nginx-1.6.3//conf/nginx.conf test is successful
(2)启动Nginx服务
[root@leaf ~]# /application/nginx/sbin/nginx
如果在启动Nginx服务时出现了问题可以查看Nginx的日志/application/nginx/logs/error.log,再根据日志提供的信息来进行解决。
(3)验证Nginx服务是否正常
查看已开启的端口信息
[root@leaf ~]# netstat -lnp | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6772/nginx unix 2 [ ACC ] STREAM LISTENING 9180 1/init @/com/ubuntu/upstart
可以看到Nginx已经在侦听80端口。
查看Nginx进程
[root@leaf ~]# ps aux | grep nginx root 6772 0.0 0.1 45028 1140 ? Ss 12:34 0:00 nginx: master process /application/nginx/sbin/nginx nginx 6773 0.0 0.1 45460 1716 ? S 12:34 0:00 nginx: worker process root 6777 0.0 0.0 103256 832 pts/1 S+ 12:36 0:00 grep nginx
在宿主机上使用浏览器进行测试
在我们宿主机的浏览器上输入http://10.0.0.101/,查看测试结果
可以正常访问,当然前提是CentOS上的防火墙功能已经关闭。
使用wget命令和curl命令测试
wget命令:
[root@leaf tools]# wget 127.0.0.1 --2017-02-24 12:41:05-- http://127.0.0.1/ Connecting to 127.0.0.1:80... connected. HTTP request sent, awaiting response... 200 OK Length: 612 [text/html] Saving to: aindex.htmla 100%[======================================>] 612 --.-K/s in 0s 2017-02-24 12:41:05 (44.1 MB/s) - aindex.htmla saved [612/612]
currl命令:
[root@leaf tools]# curl 127.0.0.1 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>
从上面的结果可以说明Nginx已经正常部署并运行。
4.进一步测试修改Nginx显示的页面
通过修改/application/nginx/html下的index.html文件,我们就可以改变Nginx主页显示的内容,操作如下:
[root@leaf tools]# cd /application/nginx/html/ [root@leaf html]# ls 50x.html index.html [root@leaf html]# mv index.html index.html.source [root@leaf html]# echo "<h1>Hello, I'm xpleaf.</h1>">index.html [root@leaf html]# ls 50x.html index.html index.html.source [root@leaf html]# cat index.html <h1>Hello, I'm xpleaf.</h1>
这时在宿主机操作系统上访问http://10.0.0.101/
可以看到已经显示我们编辑的页面了。
5.在实际场景中的应用
不管是用于学习还是在生产环境中使用,Nginx都十分重要,而好的开始是成功的一半,所以第一步当然是要把Nginx服务搭建好。
6.参考资料
《跟老男孩学Linux运维Web集群实战》
http://nginx.org

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
解密Java中的类型转换问题
众所周知Java中的数据类型是强数据类型,基本数据类型之间的转换尤其固定的规则,当数据宽度比较窄的数据类型(如int)转换成数据类型比较宽的数据类型时(如double),则窄的数据类型会加宽,可以完成自动类型转换,这称为隐式转换。 如:以下代码没有任何问题,结果也是正确的,成绩不会发生变化,所不同的是成绩的精度提高了。 intintScore=96; doubledoubleScore=intScore; 那么如果试图把宽的数据类型(如double)转换成窄的数据类型(如float)时,编译器会提示编译错误,想要编译通过,需要进行强制类型转换。那么,此时的数据会发生截断。产生的结果是: 1. 数据正确,只是精度降低了; 2.数据不正确,发生了溢出; 对于上述第1种情况,比较好理解,我们来看个例子: floatfloatWeight=63.5;//编译错误 doubledoubleWeight=63.5; 上述第一条语句会提示编译错误,那是因为编译器看到63.5时,会把它当做一个double类型,把一个double类型赋给float类型,当然编译不通过了。推荐的解决方案是: floa...
- 下一篇
Nutanix CE版安装
Nutanix作为超融合的领头羊,超融合的核心是Xtreme Computing Platform,简称XCP。 XCP的两个基本软件部件: -Nutanix Acropolis -Nutanix Prism Nutanix发布了几个版本,我们比较容易接触和上手的是Community Edition,即社区版,可通过CE学习Nutanix思想,但是有license限制。可在VMware ESXi或者WorkStation安装 1,到官网注册账号并下载最新版本http://download.nutanix.com/ce/2015.11.05/ce-2015.11.05-stable.img.gz 2,解压后ce-2015.11.05-stable.img,改成ce-flat.vmdk 3,下载磁盘描述文件,ce.vmdk 4,用vmware workstation或者ESXi安装, 5,总共需要创建3块磁盘,第一块为ce.vmdk,再添加额外两块 Nutanix CE版对硬件有要求,会在安装之前对CPU,内存,硬盘转速进行检测,如果满足不了要求就会退出安装,因此需要修改参数跳过检测,输入...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范