Nginx 的编译 (版本的隐藏 nginx的大小的改变)
Nginx 编译 / 反向代理+负载均衡 / 基于redhat内核中的高可用集群的安装和管理
I.Nginx的编译
1.获得nginx的压缩包,可以在nginx的官网上获得 也可以拷贝别人的包 本次实验使用的是教学的Nginx的包‘
2.对nginx的包进行解压
[root@server1 ~]# tar axf nginx-1.14.0.tar.gz
3.进入到目录中对源码进行编译
[root@server1 nginx-1.14.0]# ./configure
--prefix=/usr/local/nginx
--with-http_ssl_module
--with-http_stub_status_module
--with-threads --with-file-aio
问题:编译中出现报错
如果编译报错可能会出现没有gcc编译器之类的
[root@server1 nginx-1.14.0]# yum install -y gcc
解决:
[root@server1 nginx-1.14.0]# yum install -y pcre-devel
编译成功
4.安装并编译 make && make install
5.进入nginx的目录查看 注意此时nginx的大小
没有做连接之间nginx存在于编译的环境下的sbin中
在/usr/local/nginx/sbin 中有nginx的开启脚本
使用./nginx 启动nginx服务
在使用curl 命令可以查看本机的状态
问题:当服务共享到互联网上去以后,谁都可以查看,那么被别人查看到自己使用的服务的版本是非常危险而且nginx本身所占的内存中夹杂着一些不必要的附带的文件,怎么改变?
解决:只能对源码进行重新编译,编译的时候在源码中删除版本的标注,并且对不必要的附加的文件进行注释
<1>首先对之前编译好的文件进行清除,否则会影响后面的实验效果
在清除之前要对nginx进行关闭
[root@server1 sbin]# ./nginx stop
[root@server1 nginx]# pwd
/usr/local/nginx
[root@server1 nginx]# rm -rf *
[root@server1 ~]# cd nginx-1.14.0
[root@server1 nginx-1.14.0]# make clean
rm -rf Makefile objs
最好的情况是重新解压将当前的目录删除
<2>隐藏版本,并注释不必要的文件
[root@server1 nginx-1.14.0]# vim src/core/nginx.h
[root@server1 nginx-1.14.0]# vim auto/cc/gcc
注释掉debug下面的一行
<3>重新编译,并安装 注意:make && make install
<4>进入到/usr/local/nginx 使用 du -sh 再次查看大小
6.对编译好的nginx进行软连接
[root@server1 nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
7.使用 nginx 直接就开启了nginx的服务 可以查看端口 再次查看本机就看不见版本
问题:nginx不能启动
解决: 通过命令杀掉nginx的所有进程 重新启动nginx就成功了
[root@server1 nginx]# killall -9 nginx
Nginx的反向代理+负载均衡
1.首先查看nginx中配置文件的主要参数
Nginx中配置文件的位置
[root@server1 conf]# vim nginx.conf
worker_processes:工作的进程数,其中有主进程和启动时的别的进程,nginx启动后有多少个worker处理http请求,就有多少个work进程 master不处理请求,根据配置文件信息管理worker的进程 master主要接收客户端的请求 并将其合理的分配给worker 每个worker主要负责处理请求
其中的因素包括很多,不仅仅是cpu的核数 当其中的某个因素不确定的时候,将其设置成核数为较好的值
查看cpu的状态
[root@server1 ~]# lscpu
CPU(s): 2
[root@server1