解析阿里云centos7服务器nginx配置及常见问题解答

 更新时间:2020年07月11日 09:56:56   作者:軒  
这篇文章主要介绍了阿里云centos7服务器nginx配置及常见问题解答,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

前言:

本文参考了jackyzm的博客:https://www.cnblogs.com/jackyzm/p/9600738.html,进行了内容的更新,并请注意这里适用的版本是centos7的版本。并且本文的配置方式曾经在版本8上失败过,因此查看本文前最好先确定服务器的版本。

而关于nginx部分问题的处理,则是参考了文章:http://www.mamicode.com/info-detail-3008792.html进行,其中包括的部分错误如下:

1.make[1]: *** [objs/Makefile:473: objs/src/core/ngx_murmurhash.o] Error 1

2.make[1]: *** [objs/Makefile:774: objs/src/os/unix/ngx_user.o] Error 1

3.make[1]: *** [objs/Makefile:769: objs/src/event/ngx_event_openssl.o] Error 1

本文针对这些问题和一些其他问题的解决方案都进行了阐述和流程上的改良

内容流程:

0.前置说明,1.安装gcc环境,2.安装pcre库,3.安装ssl库,4.安装zlib库,5.安装nginx,附:nginx在make过程中可能出现的问题,6.nginx启动与使用,7.nginx启动后无法访问的问题解决

具体内容:

0.前置说明

在centos系统中,yum源不直接提供nginx的安装,因此可以通过切换yum源的方法进行nginx的安装,也可以通过直接下载依赖库和nginx安装包的方法来实现,本文介绍的是后者。

一些必要的库和nginx的关系:nginx 中gzip模块需要 zlib 库,rewrite模块需要 pcre 库,ssl 功能需要openssl库

然后本文将选定/usr/local为安装目录,一些库的具体版本号各位可根据实际改变,但由于互相依赖,所以最新的可能存在一些问题,谨慎选择。

且以下命令均需在root权限下执行

1.安装gcc gcc-c++(如新环境,未安装请先安装)

$ yum install -y gcc gcc-c++

2.安装pcre库

$ cd /usr/local/

$ wget https://sourceforge.net/projects/pcre/files/pcre/8.36/pcre-8.36.tar.gz

(注:pcre版本会实时更新,8.36版本同样是旧版本,如果需要最新版本自行搜索pcre即可,然后选择新版本,不过新版本可能会不太稳定,需要注意。

当前网址获取新版本的方法为访问:https://sourceforge.net/projects/pcre/files/pcre/)

$ tar -zxvf pcre-8.36.tar.gz

$ cd pcre-8.36

$ ./configure

$ make && make install

如报错:configure: error: You need a C++ compiler for C++ support

解决方案:yum install -y gcc gcc-c++

3.安装ssl库

$ cd /usr/local/

$ wget https://www.openssl.org/source/openssl-1.0.1j.tar.gz

(注:openssl同样有版本更新,这里为2020.04的版本,当前网址获取新版本的方法为访问:https://www.openssl.org/source/

这里没有采用1.1.x等版本是因为在后面安装nginx出现了无法解决的错误,所以选择了这一较久的版本,如果可以解决,可以进行尝试,如果能告知解决方案或者成功案例就更感谢了)

$ tar -zxvf openssl-1.0.1j.tar.gz

$ cd openssl-1.0.1j

$ ./config

$ make && make install

4.安装zlib库

$ cd /usr/local/

$ wget http://zlib.net/zlib-1.2.11.tar.gz

(注:同前,版本更新网址为:http://zlib.net/)

$ tar -zxvf zlib-1.2.11.tar.gz

$ cd zlib-1.2.11

$ ./configure

$ make && make install

5.安装nginx

$ cd /usr/local/

$ wget http://nginx.org/download/nginx-1.8.0.tar.gz

(注:同前,获取新版本的网址为:http://nginx.org/download/)

$ tar -zxvf nginx-1.8.0.tar.gz

$ cd nginx-1.8.0

$ ./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module--with-pcre=/usr/local/pcre-8.36 --with-zlib=/usr/local/zlib-1.2.11--with-openssl=/usr/local/openssl-1.0.1j

(注: --with-http_ssl_module:这个不加后面在nginx.conf配置ssl:on后,启动会报nginx: [emerg] unknown directive "ssl" in /opt/nginx/conf/nginx.conf 异常;儿针对pcre、zlib和openssl等等的指定,则是为了保证nginx能够和之前下载的版本匹配一致,注意路径和版本号需要修改为和之前下载对应的样子)

$ make && make install

附:nginx在make过程中可能出现的问题:

报错1:make[1]: *** [objs/Makefile:460: objs/src/core/ngx_murmurhash.o] Error 1

将警告视为报错进行了程序终止

解决方案:进入到nginx安装目录的objs文件夹中,修改Makefile文件:

按下a进入编辑模式,将CFLAGS中的-Werror去除,然后按下esc,输入:wq保存退出

然后再次进行尝试make && make install指令

报错2:make[1]: *** [objs/Makefile:747: objs/src/os/unix/ngx_user.o] Error 1

提示我们struct crypt_data'没有名为‘current_salt'的成员:cd.current_salt[0] = ~salt[0];原文作者说最好的办法是换一个版本,这里开始选择的1.9出现了报错,但是切换成了nginx1.8后还是没有效果,因此便在nginx1.8的基础上使用了替代方案:代码注释

即在nginx安装目录下通过执行vim src/os/unix/ngx_user.c,对ngx_user.c第36行的代码进行注释,前后如下:

然后保存退出,再次尝试make && make install

报错3:make[1]: *** [objs/Makefile:769: objs/src/event/ngx_event_openssl.o] Error 1

说明ssl版本没有告知nginx,应该是前面./configure的时候没有指定ssl版本导致的,需要重新configure,即需要在configure时增加ssl的指定。

--with-openssl=/usr/local/openssl-1.0.1j

报错4:./configure: error: SSL modules require the OpenSSL library.

可以尝试执行指令:

yum -y install openssl openssl-devel

报错5:./configure: error: the HTTP gzip module requires the zlib library

configure时没有制定好另外两个库的路径,在–prefix后面接以下命令(具体使用方式见./configure指令的执行):

--with-pcre=/usr/local/pcre-8.36指的是pcre-8.36的源码路径。--with-zlib=/usr/local/zlib-1.2.11 指的是zlib-1.2.11 的源码路径。

如果以上报错还是无法解决问题,最好查看centos版本是否是7,我就是在更换系统版本后直接成功的。如果遇到其他报错,最好进行检索,无法解决十分抱歉。

6.nginx启动与使用

$ /usr/local/nginx/sbin/nginx

启动成功的标志:打开浏览器访问服务器的ip地址,如果浏览器出现Welcome to nginx! 则表示 nginx 已经安装并运行成功。

其他的一些命令如下:

重启:

$ /usr/local/nginx/sbin/nginx -s reload

停止:

$ /usr/local/nginx/sbin/nginx -s stop

测试配置文件是否正常:

$ /usr/local/nginx/sbin/nginx -t

强制关闭:

$ pkill nginx

注:这里没有设置软链接,因此只能通过这么长的指令进行管理,如有需要可自行检索处理,后面如果我有时间也会更新到本文中。

7.nginx启动后无法访问的问题解决

这里如果还看不到nginx的页面,可能是服务器的安全组没有配置导致的,例如阿里云就需要在这里添加http,端口80的配置,如下:

安全组配置之后只需刷新页面即可看到nginx的成功页面。

最后祝各位配置顺利。

到此这篇关于解析阿里云centos7服务器nginx配置及常见问题解答的文章就介绍到这了,更多相关阿里云centos7下nginx配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 修改Nginx与Apache上传文件大小限制

    修改Nginx与Apache上传文件大小限制

    这篇文章主要介绍了修改Nginx与Apache上传文件大小限制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Nginx反向代理配置的全过程记录

    Nginx反向代理配置的全过程记录

    这篇文章主要给大家介绍了关于Nginx反向代理配置的相关资料,nginx作为web服务器一个重要的功能就是反向代理,当然你也可以使用nginx配置正向代理,需要的朋友可以参考下
    2021-06-06
  • Nginx实现前后端分离

    Nginx实现前后端分离

    本篇文章是小编整理的关于Nginx实现前后端分离的详细代码,如果你对此有需要,可以参考测试下。
    2018-02-02
  • nginx proxy_pass反向代理配置中url后加不加/的区别介绍

    nginx proxy_pass反向代理配置中url后加不加/的区别介绍

    这篇文章主要给大家介绍了关于nginx proxy_pass反向代理配置中url后加不加/的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • Debian下搭建Nginx和Tomcat服务器实现负载均衡的方案

    Debian下搭建Nginx和Tomcat服务器实现负载均衡的方案

    这篇文章主要介绍了Debian下搭建Nginx和Tomcat服务器实现负载均衡的方案,其主要思想依然是动静分离并且以Nginx来进行反向代理这样的路子,需要的朋友可以参考下
    2015-12-12
  • NGINX配置目录遍历漏洞的解决

    NGINX配置目录遍历漏洞的解决

    目录遍历是一种安全漏洞,通常会影响Nginx服务器上的Web应用程序,本文就来介绍一下NGINX配置目录遍历漏洞的解决,感兴趣的可以了解一下
    2023-10-10
  • Nginx http升级到https的完整步骤

    Nginx http升级到https的完整步骤

    这篇文章主要给大家介绍了关于Nginx http升级到https的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用Nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • nginx设置上传目录无执行权限的方法

    nginx设置上传目录无执行权限的方法

    在windows+iis下,可以设置上传目录,类似:upload,uploadfile,attachments,这样的目录下面无脚本执行权限,从而防止非法用户上传脚本得到webshell
    2010-11-11
  • Nginx搭建高可用的实现

    Nginx搭建高可用的实现

    高可用HA是分布式系统架构设计中必须考虑的因素之一,本文主要介绍了Nginx搭建高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • Nginx工作模式及代理配置的使用细节

    Nginx工作模式及代理配置的使用细节

    这篇文章主要为大家介绍了Nginx工作模式及代理配置的使用细节,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03

最新评论