本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器。阿里云服务器(ECS)相信大家都不陌生。有兴趣的同学可以去http://www.aliyun.com/product/ecs买,或者去体验馆体验(有效期半个月)。至于如何注册管理ECS,这里就不赘述了。因为公文已经写清楚了。如果还是不清楚,拨打咨询电话询问。
现在假设你已经拥有阿里云服务器,ip是139.128.33.11(假的,读者需要更改ip地址)。并且没有选择安装包。现在ECS已经完全空,除了必备的Linux系统,什么都没有了。还有一点,本文选择的是UbuntuLinux14.0464位版本。Linux更节省内存,因为没有GUI部分,而且是纯控制台 *** 作(命令行头疼的请绕道)。
本文只安装nginx服务器,其他链接,如PHP,Java,MySQL等。,将在后面的文章中进行配置。
安装前需要完成以下两项任务。
至于连接服务器的控制台,找一个SSH客户端就可以了。比如我可以在MacOSX上直接执行sudoSSH139.128.33.11,这个时候系统会要求OSX管理员的密码,通过后会要求ECS的root密码。如果输入正确,它将进入ECS控制台。并输入以下欢迎信息。
欢迎使用toUbuntu14.04.2LTS(GNU/Linux3.13.0-32-通用x86_64)
*文献:https://help.ubuntu.com/
欢迎使用阿里云d性计算服务!
完成这两项任务后,需要执行以下步骤。
PS:以下所有命令都在ECS控制台中执行。
步骤1:安装pcre
由于nginx的重写需要pcre库,所以首先需要在Linux上执行以下命令来安装pcre(以下命令只针对UbuntuLinux,其他Linux版本需要使用其他命令)。
apt-getinstall libpcre3 libpcre3-dev第二步:下载并上传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。现在输入目录。
第三步:安装相应的库
由于编译nginx使用http_stub_status_module和http_ssl_module,所以需要安装zlib和OpenSSL。
使用以下命令安装zlib。
apt-get install zlib1g zlib1g.dev使用以下命令安装OpenSSL。
apt-get install libssl-dev第四步:使用OpenSSL源代码
如果编译时出现错误,可能的原因是OpenSSL的问题,所以最保险的办法是将OpenSSL源代码和nginx源代码一起编译。读者可以从https://www.openssl.org/source.下载最新的OpenSSL源代码,下载后用sftp工具上传到ECS。然后用tar解压。假设解压后的目录是/usr/local/openssl。
第五步:隐藏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_修改后的代码如下:
#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"#定义NGX_OLDPID_EXT"。oldbin"
步骤6:配置nginx
在Linux/OSX下编译源码,基本上就是一个套路,先配置,再make安装。如果路径未设置为“.”,你也需要用到”。/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编译。
第七步:编译nginx
如果第一步没问题,执行makeinstall编译并安装nginx。编译后,所有的目标文件都将放在/mnt/disk1/nginx目录中。
步骤8:检查配置文件是否正确
进入/mnt/disk1/nginx/sbin目录,然后执行nginx-tt,如果输入以下信息,说明配置文件是正确的(每次修改配置文件后,最好在启动nginx服务前执行此命令)。
nginx:配置文件/mnt/disk1/nginx/conf/nginx.conf语法没问题
nginx:配置文件/mnt/disk1/nginx/conf/nginx.conf测试成功
步骤9:启动nginx服务
进入/mnt/disk1/nginx/sbin目录,执行nginx命令启动nginx服务。如果发现80端口被占用,可能是nginx服务已经启动。执行pkillnginx以终止nginx服务。可以使用ps-ef|grepnginx命令查看内存中是否还有nginx进程。
步骤10:测试nginx服务
现在打开浏览器,在地址栏输入http://139.128.33.11。如果输出如下图所示的信息,说明nginx已经配置成功。
现在只需输入一条路径。比如http://139.128.33.11/abcd会因为路径不存在而输出404错误,但是因为nginx版本已经被隐藏了,所以只会看到下图所示的输出信息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)