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

在阿里云服务器(ECS)上从零开始搭建nginx服务器,第1张

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

本文介绍了如何在阿里云服务器上从零开始搭建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等。,将在后面的文章中进行配置。

安装前需要完成以下两项任务。

  • 1.找一个上传文件的工具(比如nginx安装包)

  • 2。连接到服务器的控制台以执行命令。

    由于现在服务器还是空,所以没有启动ftp服务。所以,你只能用sftp。至于什么是sftp,如何使用sftp(SSH文件传输协议),自己上网搜。总之,sftp使用SSH协议,默认端口号为22。用法类似于ftp。大多数ftp客户端支持sftp。任何人都可以找到支持sftp的工具。然后使用ECS用户名(root)和密码连接到sftp。

    至于连接服务器的控制台,找一个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版本已经被隐藏了,所以只会看到下图所示的输出信息。

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/779982.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-04
    下一篇 2022-05-04

    发表评论

    登录后才能评论

    评论列表(0条)

    保存