搭建一个基本的Nginx的服务器(静态web服务器)

说明:nginx的使用我们利用企业7版本的主机来实现

1.实验环境说明rhel7.3版本的虚拟机

主机信息 主机功能
server1 172.25.8.1 nginx服务器
主机 客户端

2.搭建一个基本的Nginx服务器

(1)开启一台7版本的虚拟机,并且用真机连接虚拟机
在这里插入图片描述
(2)从官网下载一个nginx的包,在真机上传给虚拟机server1的root家目录下面
在这里插入图片描述
(3)在虚拟机server1上开始搭建nginx服务器

ls查看nginx安装包传过来了没有
ps ax查看一下有没有影响我们实验的进程开启,就看实验环境是否干净
tar zxf nginx-1.17.1.tar.gz解压
cd zxf nginx-1.17.1/
ll搞清楚每一个目录和文件是什么,作用是什么

在这里插入图片描述

文件 功能
auto 模块,操作系统,帮助编译的
CHANGES 每个版本之间特性,更新的细节
CHANGES.ru 俄罗斯版本的
conf 配置文件
configer 编译用的命令
contrib/vim 提供nginx语法检测
html 默认发布页面
man 手册
readme 帮助
src 源码目录
注:
mkdir ~/.vim建立一个家目录下的隐藏目录
cp -r contrib/vim/* ~/.vim让这个虚拟机的vim可以自动检测配置文件语法是否有错误

在这里插入图片描述

测试:
在真机上面curl -I www.sina.com不可以看到新浪nginx的版本

在这里插入图片描述
(4)编译安装

./configure --help查看一下编译需要的参数
./configure --prefix=/usr/local/nginx --with-file-aio(允许大文件输入输出)
编译完之后ls 会生成Makefile 和 objs
make && make install 安装(只需要做一次)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cd /usr/local
ll
du -sh nginx/ 可以看到不注释debug编译安装nginx服务之后的大

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上述的操作很不安全,可以看到安装的版本号

cd nginx-1.17.1/
vim auto/cc/gcc这个里面的debug要注释
vim src/core/nginx.h这个里面的版本要注释
我们先不注释看一下实验现象
  • 关闭debug日志

如果不关闭debug日志,否则要不断清理日志,因为编译和安装nginx服务的时候就会产生大量的日志,占用我们的磁盘空间
关闭客户访问的时候显示的版本 如果客户访问可以看到企业nginx服务器使用的版本,这就给黑客攻击留下了漏洞

一项服务在运行 make install只能执行一次,负责会返回所有修改之前的状态,如果要更新,只需要make即可,把新生成的.c文件拷贝过去即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

为了安全起见,可以重新编译安装,并注释

cd ~/nginx-1.16.0 
vim auto/cc/gcc注释掉debug
vim src/core/nginx.h关闭版本显示
./configure --prefix=/usr/local/nginx --with-file-aio(允许大文件输入输出)
make && make install 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cd /usr/local
du -sh nginx/发现变小了
cd nginx/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在本机测试一下:curl -I 172.25.12.1看不到版本
在真机打开浏览器测试一下:172.25.12.1可以看到nginx的欢迎页面

在这里插入图片描述
以上就是搭建一个最基本的nginx服务器

3.nginx服务器的配置

ps aux可以看到进程运行的用户是匿名用户,这样不安全
在这里插入图片描述
我们在nginx服务器上面建立一个nginx用户,它不可以登录系统,只能运行nginx服务,这样比较安全

useradd -s /sbin/nologin nginx
id nginx

在这里插入图片描述

vim /usr/local/nginx/confnginx.conf编辑nginx服务的配置文件
修改用户和用户组:加入nginx nginx
修改进程个数:2
../sbin/nginx -s stop关闭之前开启的进程以及服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cd /usr/local/nginx
./sbin/nginx执行脚本,重新开启服务
ps ax可以看到开启了两个子进程和一个主进程
ps aux可以看到进程开启的用户

在这里插入图片描述

内部的进程主要有两类
master 进程 和 worker 进程。其中 master 进程只有一个,worker 进程可以有多个。
worker 进程才是真正 working 的进程,才是真正处理请求的进程。worker 进程全部都是 master 进程的子进程
worker 进程是以普通用户的身份进行运行的,这样就可以极大增加程序的安全性
就算是万一有一个进程被劫持,那也不会有管理员权限
nginx 的热部署和其并发模型有着密不可分的关系。说白了,就是因为 master 进程的关系
当通知 ngnix 重读配置文件的时候,master 进程会进行语法错误的判断
如果存在语法错误的话,返回错误,不进行装载;如果配置文件没有语法错误,那么 ngnix 也不会将新的配置调整到所有 worker 中
而是,先不改变已经建立连接的 worker,等待 worker 将所有请求结束之后
将原先在旧的配置下启动的 worker 杀死,然后使用新的配置创建新的 worker
发布了111 篇原创文章 · 获赞 0 · 访问量 2524

猜你喜欢

转载自blog.csdn.net/qq_42024433/article/details/105007710