在阿里云服务器(ECS)上从零开始搭建nginx服务器
本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器。阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以到http://www.aliyun.com/product/ecs去购买,或到体验馆去体验(半个月有效期)。至于如何注册、管理ECS这里就不详细介绍了。因为官方文档已经写的很清楚了。如果还不清楚,打咨询电话询问。
现在假设你已经拥有了阿里云服务器,ip是139.128.33.11(假的,读者需要换成自己的ip地址)。并且没有选择任何安装包。现在ECS是完全空的,除了必须的Linux系统外,其他什么都没有。还有一点,本文选择的是Ubuntu Linux 14.04 64位版本。Linux比较节省内存,因为并没有GUI部分,纯控制台操作(看命令行头疼的同学请绕道)。
本文只安装nginx服务器,后面的文章会配置其他环节,如PHP、Java、MySQL等。
在安装之前需要完成如下两项工作。
- 找一个工具上传文件(如nginx安装包)
- 连接到服务器的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的即可。
下载完后,利用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头文件,修改前的代码如下:
#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_ */
修改后的代码如下:
#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"
第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已经配置成功。
现在随便输入一个path。如http://139.128.33.11/abcd 由于该路径不存在,所以会输出404错误,不过由于nginx版本已经隐去,所以只会看到如下图的输出信息。
本文转自银河使者博客园博客,原文链接http://www.cnblogs.com/nokiaguy/p/4703429.html如需转载请自行联系原作者
银河使者
在阿里云服务器(ECS)上从零开始搭建nginx服务器相关推荐
- 阿里云服务器ECS centos7.4搭建nginx环境部署静态代码
阿里云服务器ECS centos7.4搭建nginx环境部署静态代码 欢迎来到新手如何通过阿里云服务器部署静态网站 作为一个前端开发,第一次部署自己的私人网站,没有经验,战战兢兢,但是没有办法,成为全 ...
- 如何在阿里云(centos7)上面搭建fastdfs服务器(搭建篇)--保姆级超级详细
前置条件 一个网络畅通的centos7并且把fastdfs工具资源包放进去了 没有这些资源的看前一篇博客 1.centos7.3上面还需yum安装一些资源 安装gcc(编译时需要) 因为fastdfs ...
- 如何搭建nginx服务器?
本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器.阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以去购买,或到体验馆去体验(半个月有效期).至于如何注册.管理ECS这里就不详细介绍了 ...
- 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PHP环境的
在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04稳定支持版的环境中搭建Linux+Nginx+Mysql+PHP环境 ...
- ECS搭建nginx服务器在阿里云
需要搭建自己的服务器除了使用本地PC外,我们还可以使用阿里.腾讯.新浪等平台提供的云服务器. 本文主要记录在阿里云上运行Ubuntu系统搭建nginx服务器的过程. 使用阿里云搭建nginx服务器总体 ...
- 阿里云云服务器ECS上的Ubuntu16.04桌面安装及root账户登录错误处理
阿里云云服务器ECS上的Ubuntu16.04桌面安装及root账户登录错误处理 2018-06-28 16:42:45 程百球 阅读数 2793更多 分类专栏: 程序配置 版权声明:本文为博主原创文 ...
- python实现获取阿里云所有ecs服务器信息
概述: 作为一名自动化运维开发来说,我们如何才能实现公司公有云上的数据自动同步到cmdb,这本身对运维团队来说是极其有意义的,不用每次人工手动去导出excel,再去编辑修改手动导入到我们得内部cmdb ...
- 基于阿里云的ECS(云服务器)
基于阿里云的ECS(云服务器) 1.什么是云服务器ECS 性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务.高效地使用服务器,实现计算资源 ...
- 阿里云轻量应用服务器环境搭建-设置通过密钥登录服务器
阿里云轻量应用服务器环境搭建-设置通过密钥登录服务器 1.通过阿里云的控制台创建密钥. 选择密钥管理,输入密钥名称,选择自动创建密钥 下载密钥到本地 重启服务器 2.Xshell设置通过密钥连接 输入 ...
最新文章
- 斯坦福2019秋季课程CS224W
- Configuring the VNC server/viewer in Linux.
- 【人脸识别】人脸验证算法Joint Bayesian详解及实现(Python版)
- 递归求解1~9组成的特殊9位整数
- 重启唯一的窗体实例,以及调用系统重启函数失败解决办法
- .NET平台依赖注入机制及IoC的设计与实现
- mysql不能设置密码_mysql不能设置密码
- CSS3 Transitions, Transforms和Animation的使用
- 自己写的微信小程序炸金花简单版
- Linux入学—共享文件夹(保姆教程)
- 移植FreeRTOS时Undefined symbol vApplicationTickHook referred from tasks.o
- windows安装choco
- ## Android Studio 开发(四)--蓝牙通信
- Rust包管理 Crate
- CVPR 2021 华南理工和微信的Transformer:UP-DETR无监督预训练检测器
- 罗德里格旋转公式推导(自制)
- 计算机怎么一键返回桌面,回到桌面的快捷键是啥_快速桌面快捷键怎么操作-win7之家...
- 「趣小面」寻融资:前景美好,“钱”景难说
- wps里面函数怎么使用_WPS中函数的使用方法 - 卡饭网
- 用扫地机器人楼下吵吗_关于扫地机器人噪音的一些知识