码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx的搭建

时间:2016-09-19 22:52:22      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:blank   target   软件   

Nginx

一.Nginx的安装

准备的安装包 :nginx-1.10.1.tar.gz

本次实验环境与varnish的实验环境是一样的

采用源码编译方式安装软件

1.首先查看有没有安装gcc

技术分享

2.解压源码包

Tar zxf  nginx-1.10.1.tar.gz

技术分享

解压完可以看到有个新的目录

Nginx-1.10.1

3.进入解压好的源码包

技术分享

4.执行configure文件,功能是可以让用户选定编辑特性,并可以检查编译环境,configure执行后将生成MakeFile文件。

可以用下边./configure --help命令查看后边可以用到有哪些参数。

技术分享

./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module

技术分享

技术分享

注:过程中可能会缺失某个开发包,因此要用yum 再把这个包安装一下,后缀都要加-devel

比如:

技术分享

对这个命令的参数做一些解释:

--prefix制定了安装路径 (第三方软件一般都是安在/usr/local目录下,后面的名字自己可以定)--with-http_ssl_module --with-http_stub_status_module是一些状态模块,让其支持SSL,可以加一些状态模块的支持,不是所有的程序configure参数都是一样的,可以使用./configure --help 查看详细参数说明,如果该程序所依赖的库在当前系统中没有安装,则会导致configure最后报错,遇到这种情况就需要先安装这些依赖库。

5.执行make命令,编译程序make

技术分享

6.编译成功后就可以安装了。执行make install 命令,到此程序就安装完成了

技术分享

查看程序的安装位置

技术分享

可以看到nginx的进程,master和worker

技术分享

查看端口状态,所有使用的协议tcp 处于监听状态的,program的

技术分享

使用curl测试:

技术分享

在网页浏览器中可以看到

技术分享

二.Nginx配置隐藏版本号

1.首先将之前编译安装好的删除掉,删除掉安装目录,再把makefile文件清除下。

技术分享

2.进入解压好的源码包

技术分享

编辑vim nginx.h文件,把版本去掉

技术分享

技术分享

编辑 vim gcc 文件,注释掉检查bug的选项,这样可以使安装后的大小变小

注释掉这行,去掉 debug 模式编译,编译以后程序只有几百 k

技术分享

3.再重新源码安装一下,跟上边安装一样,三部曲

然后可以看到安装后的大小,明显小了很多。

技术分享

4.对软件的安装路径做个软链接

ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/

技术分享

技术分享

做这个步骤的目的是可以在任何目录下都可以使用对该软件操作的目录,而不需要专门跑到sbin目录下./执行打开

可以实现:

技术分享

如果出现以下错误时,解决办法是将进程都杀死,重新打开

技术分享

技术分享

5.重新编译完成,测试一下

可以看到,没有nginx的版本号,这样相对的来说更安全些了。

技术分享

做一下对比

技术分享

三.Nginx编译安装时动态模块的加载问题
四.了解Nginx的主配置文件,看看修改什么参数能够实现什么功能

1.修改执行worker进程的用户

可以看到,worker是nobody,如何修改它

技术分享

进入配置文件中修改

技术分享

技术分享

Ps-aux 查看,可以看到已经换过来了

技术分享

2.对资源cpu进程限制等的调节

查看cpu的相关信息

技术分享

Nginx中的worker数是由cpu的数量决定的,与cpu的数量相等

3.开启nginx的SSL 443和设置网页重定向

首先修改配置文件,找到http块

编辑http块

技术分享

然后把这个模块的注释除掉

技术分享

然后开始生成密钥

技术分享

技术分享

生成完之后会有一个cert.pem文件,将其移到配置文件的目录下。

之后检查语法是否有问题,并重新加载

技术分享

测试一下,看是否功能有了

首先编辑配置文件:localhost 改为主机名

技术分享

重新加载

网页访问,可以看到已经有加密认证

技术分享

技术分享

如何直接在输入http就直接到为https,需要设置重定向。

<meta http-equiv=‘refresh‘ content="0;url=https://server1.example.com">

之后还可以实现其他的虚拟主机手写调转,进行网页重定向

技术分享

技术分享

这样设置完之后重新加载软件,就可以实现。

4.nginx的虚拟主机

首先解释一下虚拟主机的概念,所谓的虚拟主机,基本上就是让你的一台服务器上面,有好多个‘主网页’存在,也就是说,硬件实际上只有一台主机,但是由网站上来看,则似乎有多台主机存在的样子,比如说你单击进入两个不同的网站,会发现看到的是不一样的信息内容,不过,如果用dig之类的软件来检验IP的话,会发现两个网站又同指向一个IP,虚拟主机的主要功能就是可以让你的多个主机名对应到不同的主网页目录,所以看起来就好像是有多台实际主机的样子

还是配置主配置文件中的http块:(任意一次修改配置文件后,都检查一下语法有没有错,然后重新再加载一下)

技术分享

主机上的配置

技术分享

使用真机浏览器测试一下

技术分享

技术分享

5.nginx的负载均衡

(1)实验环境会用上172.25.47.2 和172.25.47.3两台虚拟机

172.25.47.1的主配置文件中添加

指向两台后端服务器

技术分享

技术分享

Server2:

技术分享

Server3:

技术分享

真机做测试:

技术分享

(2)修改主配置中的参数做测试

技术分享

可以看到2解析的多

技术分享

(3)把3只作为备份的话,全是2解析的,只有当2down掉后3才起来

技术分享

技术分享

关闭2的httpd服务

技术分享

技术分享

重启2的httpd服务后,测试的还是都是2在解析

技术分享

技术分享

(4)

技术分享

测试:

技术分享

将两个后台的http服务都关闭后,测试的就是第三台那个

技术分享

这种方法常用在系统出现问题时,会给返回一个系统正在维修中,稍后访问,避免系统出现故障后,还有很多的客依然还要访问

Nginx的搭建

标签:blank   target   软件   

原文地址:http://11907184.blog.51cto.com/11897184/1854059

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!