阿里云ECS服务器上从零开始搭建nginx服务器

简介: 阿里云ECS服务器上从零开始搭建nginx服务器

 

准备工作:

你需要首先注册一个阿里云账号,点击:注册阿里云账号

image.gif 编辑

输入相关信息后,代表注册成功。

然后点击:个人中心,在个人中心去做一下实名。

image.gif 编辑

选择企业实名或者个人实名,这里注意,如果是企业行为一定要选择企业实名,而不是个人实名

本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器。阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以到云服务器ECS_云主机_服务器托管_计算-阿里云去购买,或到体验馆去体验(半个月有效期)。至于如何注册、管理ECS这里就不详细介绍了。因为官方文档已经写的很清楚了。如果还不清楚,打咨询电话询问。

现在假设你已经拥有了阿里云服务器,ip是139.128.33.11(假的,读者需要换成自己的ip地址)。并且没有选择任何安装包。现在ECS是完全空的,除了必须的Linux系统外,其他什么都没有。还有一点,本文选择的是Ubuntu Linux 14.04 64位版本。Linux比较节省内存,因为并没有GUI部分,纯控制台操作(看命令行头疼的同学请绕道)。

本文只安装nginx服务器,后面的文章会配置其他环节,如PHP、Java、MySQL等。

在安装之前需要完成如下两项工作。

  1. 找一个工具上传文件(如nginx安装包)
  2. 连接到服务器的Console上,以便执行命令

     由于现在服务器还是空的,所以没有ftp服务启动,因此,只能用sftp,至于什么是sftp,如何用sftp(SSH File Transfer Protocol),自己到网上搜索。总之,sftp使用了SSH协议,默认端口号是22。用法和ftp类似。大多数ftp客户端都支持sftp。谁便找一个支持sftp的工具即可。然后利用ECS的用户名(root)和密码连接sftp即可。

至于连接到服务器的Console上,找一个SSH客户端即可。例如,我在Mac OS X上,直接执行sudo ssh 139.128.33.11即可。这时系统会要求输入OS X管理员密码,通过后会要求输入ECS的root用户密码,如果输入正确,就会进入ECS Console。并且输入如下的欢迎信息。

Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-32-generic x86_64)

* Documentation:  https://help.ubuntu.com/

Welcome to aliyun Elastic Compute Service!

这两项工作都搞定后,需要按如下几步进行操作。

PS:下面的所有的命令都是在ECS Console中执行的。

    由于nginx的rewrite需要pcre library,所以首先需要在Linux上执行如下命令安装pcre(下面的命令只针对Ubuntu Linux,其他Linux版本需要使用其他命令)。

apt-get install libpcre3 libpcre3-dev

第2步:下载和上传nginx安装包

    我们可以通过apt-get安装nginx,不过并不是最新的,对于有强迫症,一定要安装最新版本的同学,可能apt-get并不适合,所以可以直接从官网下载nginx的最新源代码包,安装编译后的版本即可。

    读者可以到 http://nginx.org/en/download.html 下载nginx的最新版。目前是1.9.3。

   下载黑框中nginx的即可。

image.gif 编辑

   下载完后,利用sftp工具上传到ECS上。如果没有购买外挂硬盘,上传到系统盘也可以。Linux送20GB系统盘。还剩下18GB左右,足够做实验了。

   现在使用下面的命令解压nginx安装包

tar -xzf nginx-1.9.3.tar.gz

解压后的目录是nginx-1.9.3。现在进入该目录。

第3步:安装相应的library

由于编译nginx要使用http_stub_status_module 和http_ssl_module,所以需要安装zlib和OpenSSL。

使用下面的命令安装zlib。

apt-get install zlib1g  zlib1g.dev

使用下面的命令安装OpenSSL。

apt-get install libssl-dev

第4步:使用OpenSSL源代码

    如果编译时出错,可能的原因是OpenSSL的问题,所以最稳妥的方式是将OpenSSL源代码和nginx源代码一同编译。读者可以到https://www.openssl.org/source 下载最新的OpenSSL源代码。下载后,用sftp工具上传到ECS上。然后使用tar解压。假设解压后的目录为/usr/local/openssl。

第5步:隐藏nginx的版本

   尽管这一步不是必须的,不过为了安全,在编译nginx之前,通常会隐去nginx的版本,这样也可以给攻击者带来一定的麻烦。

现在进入<nginx源代码根目录>/src/core,然后用vi打开nginx.h头文件,修改前的代码如下:

image.gif 编辑

#ifndef _NGINX_H_INCLUDED_

#define _NGINX_H_INCLUDED_

#define nginx_version      1009003

#define NGINX_VERSION      "1.9.3"  

#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_ */

image.gif 编辑

修改后的代码如下:

image.gif 编辑

#ifndef _NGINX_H_INCLUDED_

#define _NGINX_H_INCLUDED_


#define nginx_version      1009003

#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"

image.gif 编辑

第6步:配置nginx

     编译Linux/OS X下的源代码,基本都一个套路,先configure,然后make install。如果PATH没有设置“.”,还需要使用“./configure”。

现在进入nginx源代码根目录,然后执行如下的命令

./configure  --prefix=/mnt/disk1/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=/usr/local/openssl

其中“/mnt/disk1/nginx”表示要安装到的目标目录。  “ /usr/local/openssl”是OpenSSL源代码目录。这样nginx会和OpenSSL一同编译。

第7步:编译nginx

     如果前几步都没问题,执行make install编译安装nginx。编译好后,会将目标文件都放到/mnt/disk1/nginx目录中。

第8步:检查配置文件是否正确

     进入/mnt/disk1/nginx/sbin目录,然后执行nginx -t   如果输入如下信息,表明配置文件是正确的(每次修改配置文件后,启动nginx服务之前,最好都执行一下这个命令)。

nginx: the configuration file /mnt/disk1/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /mnt/disk1/nginx/conf/nginx.conf test is successful

第9步:启动nginx服务

   进入/mnt/disk1/nginx/sbin目录,执行nginx命令即可启动nginx服务。如果发现80端口已经被占用,可能是nginx服务已经启动。执行pkill nginx即可杀掉nginx服务。可以使用ps -ef | grep nginx命令查看内存中是否还有nginx进程。

第10步:测试nginx服务

   现在打开浏览器,在地址栏输入http://139.128.33.11 如果输出如下图的信息,表明nginx已经配置成功。

image.gif 编辑

现在随便输入一个path。如http://139.128.33.11/abcd  由于该路径不存在,所以会输出404错误,不过由于nginx版本已经隐去,所以只会看到如下图的输出信息。

image.gif 编辑

image.gif 编辑

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
27天前
|
存储 编解码 缓存
阿里云服务器实例规格选择参考:根据业务场景选择云服务器实例规格
在阿里云服务器的购买过程中,云服务器实例规格是很多用户最难选择的一个选项,因为阿里云有着多达几十种不同的实例规格,为此,阿里云官方在云服务器购买页面新推出了一个场景化选型推荐,用户可通过自己的上云场景结合场景化选型里面的业务场景和细分场景来选择适合自己的阿里云服务器实例规格,在很大程度上解决了新手用户在选择阿里云服务器实例规格上的困局。
阿里云服务器实例规格选择参考:根据业务场景选择云服务器实例规格
|
2月前
|
云安全 弹性计算 安全
阿里云服务器基础安全防护简介,云服务器基础安全防护及常见安全产品简介
在使用云服务器的过程中,云服务器的安全问题是很多用户非常关心的问题,阿里云服务器不仅提供了一些基础防护,我们也可以选择其他的云安全类产品来确保我们云服务器的安全。本文为大家介绍一下阿里云服务器的基础安全防护有哪些,以及阿里云的一些安全防护类云产品。
阿里云服务器基础安全防护简介,云服务器基础安全防护及常见安全产品简介
|
2月前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?
|
2月前
|
负载均衡 应用服务中间件 Linux
"揭晓nginx的神秘力量:如何实现反向代理与负载均衡,拯救服务器于水火?"
【8月更文挑战第20天】在Linux环境下,nginx作为高性能HTTP服务器与反向代理工具,在网站优化及服务器负载均衡中扮演重要角色。本文通过电商平台案例,解析nginx如何解决服务器压力大、访问慢的问题。首先介绍反向代理原理,即客户端请求经由代理服务器转发至内部服务器,隐藏真实服务器地址;并给出配置示例。接着讲解负载均衡原理,通过将请求分发到多个服务器来分散负载,同样附有配置实例。实践表明,采用nginx后,不仅服务器压力得到缓解,还提升了访问速度与系统稳定性。
57 3
|
2月前
|
开发框架 运维 应用服务中间件
阿里云轻量应用服务器82元和298元与云服务器99元和199元区别及选择参考
目前阿里云推出了几款价格比较实惠的轻量应用服务器和云服务器,轻量应用服务器有2核2G3M 50GB高效云盘,价格为82元1年;2核4G4M 60GB高效云盘,价格为298元1年;经济型e实例2核2G,40G ESSD Entry盘,3M带宽,价格为99元1年;通用算力型u1实例2核4G,80G ESSD Entry盘,5M带宽,价格为199元1年。本文将对这几款轻量应用服务器和云服务器进行对比和测评,分析其性能和适用场景,以供大家选择参考。
阿里云轻量应用服务器82元和298元与云服务器99元和199元区别及选择参考
|
2月前
|
应用服务中间件 Linux 网络安全
在Linux中,如何配置Apache或Nginx Web服务器?
在Linux中,如何配置Apache或Nginx Web服务器?
|
2月前
|
存储 负载均衡 应用服务中间件
FastDFS+Nginx:轻松搭建本地文件服务器
【8月更文挑战第19天】在现今互联网快速发展的时代,文件服务器作为支撑各种在线服务的重要基础设施,其稳定性和性能显得尤为关键。FastDFS作为一款开源的轻量级分布式文件系统,凭借其高效的文件管理功能,特别适合用于构建相册网站、视频网站等以文件为载体的在线服务。本文将详细介绍如何利用FastDFS和Nginx快速搭建一个本地文件服务器,为您的工作和学习提供技术支持。
134 0
|
2月前
|
关系型数据库 Linux 应用服务中间件
如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin
如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin
19 0
|
2月前
|
网络协议 Ubuntu Linux
如何在 DigitalOcean 云服务器上创建自定义品牌名称服务器
如何在 DigitalOcean 云服务器上创建自定义品牌名称服务器
38 0
|
2月前
|
存储 Ubuntu 应用服务中间件
如何在虚拟专用服务器上配置 Nginx Web 服务器
如何在虚拟专用服务器上配置 Nginx Web 服务器
22 0
下一篇
无影云桌面