nginx的从零开始
搭建的背景
这个是自己的一个学习过程,所以会从一些基本的开始
准备的东西
- 一台安装centos7以上的虚拟机或者物理机(建议虚拟机)
- 准备nginx的源码包(这次是基于源码安装)
- 准备好源码安装需要的依赖包。
搭建过程
先安装所需要的依赖包
- gcc
- gcc-c++
- openssl-devel
- pcre-devel
- zlib-devel
命令是:
yum -y install gcc-c++ gcc openssl-devel pcre-devel zlib-devel
安装完之后就可以下载nginx的源码包了
- https.nginx.org进入官网下载源码包,不限制版本,推荐当前稳定版本的上一个版本
- https://nginx.org/download/nginx-1.16.0.tar.gz 这个是我写这篇文章的时候的稳定版(仅供参考)
- wget https://nginx.org/download/nginx-1.16.0.tar.gz 可以这样下载到虚拟机或者物理机上(wget命令如果没有 请 yum安装一个)
- 还可以下载下来后直接上传虚拟机,前提虚拟经安装lrzsz这个包
准备好之后开始安装了
- 我们先用tar这个命令来解压这个源码包
- 解压后我们看到 出现一个nginx-1.16.0这个蓝色的文件夹 然后我们需要做的是 cd /nginx-1.16.0 进去这个文件夹,然后我们看到了
- 上面就是文件夹里面的内容,看到configure这个了吗,这个就是我们的安装程序 等下会使用它来安装
现在开始准备安装
- 先介绍下常用的几个参数:
- --with-http_ssl_module ---这个是一个https访问的一个模块(想使用https就添加这个模块)
- --prefix=/usr/local/nginx/ ---这是一个选择安装路径的模块
- --user=用户名 ---这是选择什么用户去启动(一般来说都不会去用root)
- --group=用户组 --这是属于什么组
- nginx的模块众多这里就不详细介绍了,有兴趣可以去看官方文档
- 打这个命令后
./configure --prefix=/usr/local/nginx/
--with-http_ssl_module出现了这个- 这个是没有安装依赖,如果跟着我之前搭建的,就不会出现这个(如果还有什么问题可以下方留言)
- 正常的是这样的
- 这是一个安装完成的界面,接下来需要把它编译安装一下
make && make install
这个是要把他编译安装一下这是成功的页面
- 接下来我们去看下
/usr/local/nginx
是否有这个文件夹 - 有这个文件夹就证明安装成功了,我们先启动一下 这里注意一下 因为启动默认是使用80端口的 如果启动的时候有程序暂用80端口会启动失败的
- 启动的方式是:
/usr/local/nginx/sbin/nginx
这是因为80口被占用了,所以失败
- 启动没报错的话 接下来我们要验证一下是否真的启动成功
netstat -ntpl
或者ss -ntpl
查看是否80口启动- 这里80端口启动完毕 接下来我们可以网页访问一下或者
curl
一下也是可以这里需要注意因为防火墙的关系以及SElinux的关系 可能会访问不到 需要把这两项关闭才行systemctl stop firewalld
--这是停止防火墙systemctl disable firewall
--这是停止开机自启 接下来是关闭selinux
需要修改配置文件 一般命令行关闭的只是暂时的 需要修改配置文件才永久生效 配置文件在/etc/selinux/
下文件名叫 config 把SELINUX=enforcing
改成SELINUX=disabled
后然后重启因为nginx没有自动开机自启 所以需要重新启动 也可以在/etc/rc.local
这个文件上添加启动命令 需要注意权限问题chmod 777 /etc/rc.local
这是比较危险的做法 注意好权限就可以好了接下来就可以访问了
Bashcurl http://localhost
或者网页直接访问机器的IP地址,出现下面以上这个页面是我用
echo 'ok' >/usr/local/nginx/html/index.html
所弄出来的正常是有wecome XXXX这样的页面是nginx默认页面
- 好了到这里我们的web服务器就完成了,后续就继续在这个基础上写 一些反向代理,缓存,优化,https,获取真实客户的IP等的一些操作