阿里云(Linux)Centos7安装Nginx1.17步骤过程

1,安装前的准备
安装Nginx前需要在linux下安装这些库,执行下面四条命令就可以

yum install perl
yum install gcc
yum install gcc-c++
yum -y install net-tools

2,下载安装包
Nginx包下载地址:http://nginx.org/en/download.html
在这里插入图片描述
Nginx依赖包下载地址:
(1)gzip模块需要zlib库(在http://www.zlib.net/下载)
在这里插入图片描述
(2)rewrite模块需要pcre库(在http://www.pcre.org/下载,官网打开不了的话就用这个这个链接下载https://sourceforge.net/projects/pcre/)
在这里插入图片描述

(3)ssl功能需要openssl库(在http://www.openssl.org/下载),进入后在导航栏选择download然后选择截图中的这个下载在这里插入图片描述

3,使用xftp将上面安装包上传的服务器
我将安装包放到了阿里云服务器的/software/nginx_install目录下,截图如下
在这里插入图片描述

4,安装openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。安装OpenSSL主要是为了让tengine支持Https的访问请求。

回到xshell窗口,cd切换到/software/nginx_install目录下,

tar -zxvf openssl-1.1.1g.tar.gz

然后进入解压出来的文件夹(目录)里面

cd openssl-1.1.1g

然后执行下面两句代码
#prefix配置安装路径

./config --prefix=/software/nginx/openssl-1.1.1g
make && make install

5,安装zlib
Zlib是提供资料压缩之用的函式库,当Tengine想启用GZIP压缩的时候就需要使用到Zlib

回到安装包的那个目录

cd /software/nginx_install

解压

扫描二维码关注公众号,回复: 11381654 查看本文章
tar -zxvf zlib-1.2.11.tar.gz

然后进入解压出来的文件夹(目录)里面

cd zlib-1.2.11

然后执行下面代码
#prefix配置安装路径

./configure --prefix=/software/nginx/zlib-1.2.11
make && make install

6,安装pcre
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx rewrite依赖于PCRE库,所以在安装Tengine前一定要先安装PCRE

回到安装包的那个目录

cd /software/nginx_install

解压

tar -zxvf pcre-8.44.tar.gz

然后进入解压出来的文件夹(目录)里面

cd pcre-8.44

然后执行下面代码
#prefix配置安装路径

./configure --prefix=/software/nginx/pcre-8.44
make && make install

7,安装nginx
(1)回到安装包的那个目录

cd /software/nginx_install

(2)解压

tar -zxvf nginx-1.17.10.tar.gz

(3)然后进入解压出来的文件夹(目录)里面

cd nginx-1.17.10

(4)隐藏nginx的版本
这一步不是必须的,你可以直接跳去做(5)
尽管这一步不是必须的,不过为了安全,在编译nginx之前,通常会隐去nginx的版本,这样也可以给攻击者带来一定的麻烦。
(4.1)现在进入<nginx源代码根目录>/src/core

cd ./src/core

(4.2)然后用vi打开nginx.h头文件

vi nginx.h

进入之后按 i 切换到编辑模式
(4.3)修改里面的内容
修改前的代码如下:


/*
 * Copyright (C) Igor Sysoev
 * Copyright (C) Nginx, Inc.
 */


#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_


#define nginx_version      1017010
#define NGINX_VERSION      "1.17.10"
#define NGINX_VER          "nginx/" NGINX_VERSION

#ifdef NGX_BUILD
#define NGINX_VER_BUILD    NGINX_VER " (" NGX_BUILD ")"
#else
#define NGINX_VER_BUILD    NGINX_VER
#endif

#define NGINX_VAR          "NGINX"
#define NGX_OLDPID_EXT     ".oldbin"


#endif /* _NGINX_H_INCLUDED_ */

修改后的代码如下:


/*
 * Copyright (C) Igor Sysoev
 * Copyright (C) Nginx, Inc.
 */


#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_


#define nginx_version      1010110
#define NGINX_VERSION      ""
#define NGINX_VER          "super/" NGINX_VERSION

#ifdef NGX_BUILD
#define NGINX_VER_BUILD    NGINX_VER " (" NGX_BUILD ")"
#else
#define NGINX_VER_BUILD    NGINX_VER
#endif

#define NGINX_VAR          "super"
#define NGX_OLDPID_EXT     ".oldbin"


#endif /* _NGINX_H_INCLUDED_ */

改变的地方其实就是下面圈着的四处
在这里插入图片描述

(4.4)回到nginx-1.17.10目录下

cd ../../

(5)然后执行下面代码
#with-pcre指定依赖包位置,prefix配置安装路径

./configure --with-pcre=../pcre-8.44 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.1.1g --with-http_ssl_module --prefix=/software/nginx/nginx-1.17.10

(6)然后再执行

make && make install

8,Nginx检测
执行下面两句代码

cd /software/nginx/nginx-1.17.10/sbin
./nginx -t

看到如下提示,表示安装成功。
nginx: the configuration file /opt/ldkjdata/nginx/nginx-1.14.0/conf/nginx.conf syntax is oknginx: configuration file /opt/ldkjdata/nginx/nginx-1.14.0/conf/nginx.conf test is successful

9,Nginx启动和端口查看
先进入到nginx的sbin目录下

cd /software/nginx/nginx-1.17.10/sbin

然后使用命令./nginx 启动Nginx,接着回到window在浏览器输入你的服务器公网ip就能看到这个页面。
注意事项:阿里云服务器默认没有开启80端口,所以需要去阿里云服务器后台配置安全规则,打开入方向的80端口。
在这里插入图片描述
能看到上面这个页面,表示 Nginx 已经安装并运行成功。

Nginx的其他常用命令:
./nginx 启动
./nginx -s stop 停止
./nginx -s reload 修改配置后重新加载配置
./nginx -t 测试配置文件是否正常
netstat -ntlp 查看tcp是否正常监听

10,配置开机启动-配置文件
Systemd服务文件以.service结尾,比如现在要建立nginx为开机启动,如果用yum install命令安装的,yum命令会自动创建nginx.service文件,直接用命令:

systemcel enable nginx.service

设置开机启动即可。
在这里我是用源码编译安装的,所以要手动创建nginx.service服务文件。
开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即:/lib/systemd/system/

第一步:在系统服务目录里创建nginx.service文件

vi /lib/systemd/system/nginx.service

然后按 i ,输入下面的内容

[Unit]
Description=nginx
After=network.target
 
[Service]
Type=forking
ExecStart=/software/nginx/nginx-1.17.10/sbin/nginx
ExecReload=/software/nginx/nginx-1.17.10/sbin/nginx -s reload
ExecStop=/software/nginx/nginx-1.17.10/sbin/nginx -s quit
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

按 :wq 保存并退出.

上面设置的表示的意思

Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

第二步:设置开机启动

systemctl enable nginx.service

自此,重新centos后,nginx就自动启动了,可以使用reboot命令重启试一下

nginx其他命令:
systemctl start nginx.service(启动nginx服务)
systemctl stop nginx.service(停止nginx服务)
systemctl enable nginx.service(设置开机自启动)
systemctl disable nginx.service(停止开机自启动)
systemctl status nginx.service(查看服务当前状态)
systemctl restart nginx.service(重新启动服务)
systemctl list-units --type=service(查看所有已启动的服务)

本文参考:
https://www.linuxidc.com/Linux/2018-07/153183.htm
https://blog.csdn.net/coderyin/article/details/88743390
https://www.cnblogs.com/donve/p/10731517.html
https://blog.csdn.net/qq_25508039/article/details/82783953

如果你之前没有设置隐藏版本号,而现在又想设置了,可以搜一下nginx隐藏版本号怎么做。
比如这篇https://blog.csdn.net/z13615480737/article/details/79024252

配置Nginx端口映射步骤就写去下一篇了,这里安装步骤都已经很多内容。
点击打开:https://blog.csdn.net/weixin_44679078/article/details/105738415

猜你喜欢

转载自blog.csdn.net/weixin_44679078/article/details/105731607