进击的前端

手把手教你在阿里云ECS上面安装nginx

August 27, 2017

一直想给自己弄一个云服务器和自己的域名,现在抓住了机会。阿里云有免费和非常实惠的新手大礼包。如果你也想体验一下,可以试试,我当时申请的就是这种

我选择的系统配置是Linux Ubuntu 14.04,如果你不是选的Linux,不用再往下看了。

nginx配置步骤

1.下载

  1. nginx源文件:传送门

  2. openssl源文件:传送门

  3. pcre源文件:传送门

  4. zlib源文件:传送门

2.将下载的源文件放到ECS上去

我是通过sftp的方式将文件放上去的

# sftp模式登陆到服务器
sftp name@ip

# cd到你想放置临时文件的目录
sftp> cd /tmp

# cd到你本机下载文件的位置
sftp> lcd ~/Download

# 上传文件
sftp> put nginx.tar.gz openssl.tar.gz pcre.tar.gz zlib.tar.gz

3.登陆到服务器进行配置、安装、测试

我使用ssh的方式

# ssh登陆服务器
ssh name@ip

# cd到刚才上传文件的目录
cd /tmp

# 解压文件
tar -xzf filename

# 进入nginx源码目录做小小的修改,为了安全
cd ./nginx/src/core
vim nginx.h

源文件内容如下

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


#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_


#define nginx_version      1013004
#define NGINX_VERSION      "1.13.4"
#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      1013004
#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_ */
# cd到nginx目录,从core目录操作
cd ../../

# configure
./configure  --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=/tmp/openssl --with-pcre=/tmp/pcre --with-zlib=/tmp/zlib

# /usr/local/nginx 指的是最终编译安装到此路径
# /tmp/openssl, /tmp/pcre, /tmp/zlib 对应解压源码文件夹位置

# install
make install

# 安装完之后到安装目录下去
cd /usr/local/nginx

# 检查一下是否安装配置成功
cd ./sbin
./nginx -t

# 正常输出如下
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

# 如果看到如下结果,尝试重启一下
The program 'nginx' can be found in the following packages:
 * nginx-core
 * nginx-extras
 * nginx-full
 * nginx-light
 * nginx-naxsi
Try: apt-get install <selected package>

至此,已经成功安装好了nginx。

有人会问为什么不通过apt-get install nginx之类的命令来安装,我想说的是,那种方式就无法体验最新版的nginx了。


Kyle Mathews

Written by ricosmall.
Github