CentOS7 安装Nginx及踩坑

一、环境准备

      先说几个前置工具的安装

      1.1:gcc 安装
      安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install gcc-c++

      1.2: PCRE pcre-devel 安装
      PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel

      1.3: zlib 安装
      zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel

      1.4: OpenSSL 安装
      OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

 

二、开始安装

      首先,到官网找到stable版本  https://nginx.org/en/download.html ,如下图所示

     

      下载并解压:

wget -c https://nginx.org/download/nginx-1.16.1.tar.gz

      解压后得到一个nginx-1.16.1目录。进入它,执行以下命令

./configure
make
make install

      如果有需要,可以根据需要执行自定义的配置

./configure \
--prefix=/usr/local/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--pid-path=/usr/local/nginx/conf/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

如上所示,如果临时目录“/var/temp/nginx”不存在,记得创建呦

      启动Nginx:/usr/local/nginx/sbin/nginx

      退出Nginx:/usr/local/nginx/sbin/nginx -s stop

      退出Nginx:/usr/local/nginx/sbin/nginx -s quit(quit与stop的区别在于,quit是等待Nginx任务完毕才退出,stop是强杀进程)

      重载Nginx:/usr/local/nginx/sbin/nginx -s reload(一般用于让被修改的配置文件生效时使用)

      如果看到下图,说明你的Nginx已经顺利安装并启动了。

三、踩坑

      说说我在安装时遇到的问题吧

      3.1:make异常

      在make的时候,报如下错误

make: *** No rule to make target `build', needed by `default'.  Stop.

      我只说我的环境和我最终的解决方法

      3.1.1:首先,重新安装了一遍gcc本文的1.1到1.4的内容,问题没有解决

      3.1.2:然后,更新yum,这一步可能会耗时比较长的时间,请耐心等待

 yum update

       3.1.3:再次安装1.1到1.4步骤的内容,这次合并命令,如下所示

yum install -y gcc pcre pcre-devel openssl openssl-devel gd gd-devel

      3.1.4:最后,重新执行 ./configure后,再make,问题解决

 

      3.2:无法访问Nginx欢迎页

      众所周知,当我们的Nginx启动后,正常情况下,只需要在浏览器上访问Nginx服务器的ip即可看到欢迎页

      我遇到这个问题时,参考这两个方法解决的

      nginx页面不能访问

      centos7下nginx无法访问

      3.2.1:检查进程与端口是否正常

进程:ps -ef | grep nginx | grep -v grep
端口:lsof -i :80
端口:netstat -lnt |grep 80

      若系统没有lsof命令可以执行如下命令解决

yum install lsof

      若系统没有netstat命令,可执行如下命令解决

yum provides */netstat
yum install net-tools

      3.2.2:使用wget和curl命令确认能否访问

wget 你的IP

      这一步的目的,就是使用wget方式获取Nginx的欢迎页,用来判断欢迎页本身是否存在

      如果可以获取到,那么再考察欢迎页的内容是否正确,这一步可以使用curl命令来确认

curl 你的IP

      如上图所示,欢迎页的内容也没问题。。。那就考虑是否防火墙的问题吧

      3.2.3:检查防火墙

      因为我的系统是CentOS7,因此不存在IPtables的问题,最简单的方法,直接关闭firewalld即可

systemctl stop firewalld

      关闭后,再次从页面访问安装Nginx的服务器IP,就可以访问到了。问题解决。

      或者,开启防火墙对80、443端口的限制也能解决问题,操作如下所示

#开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

#开放443端口
firewall-cmd --zone=public --add-port=443/tcp --permanent

#重启firewall以便使上述配置生效
firewall-cmd --reload

#注意,以上操作需要在firewall处于开启状态下执行

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值