nginx初探之Hello World

2017.12.26

想先说点题外话,行业发展迅速,也有一个非常好的开源环境,每个人在学习进步的同时也不忘感恩社区,但是随着技术的进步,有的文档博客可能写的时候都是最新的东西,等你参考的时候已经落后了,所以看资料前要先看发布时间,在看博客之前先看官方文档。OK,现在进入正题——

如果不是参与这个项目,可能我暑假买的服务器还在吃灰状态,前天中午老师给的目标是用nginx先实现个Hello World的界面,结果弄了一天一直没成功,因为有时候项目的服务器重装之类要老师的手机发送验证码,所以昨晚我就开始在自己的服务器折腾了,等成功了再复制到项目服务器。

系统用的是:CentOS 7.4 64位

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。

0.准备

正式开始前,编译环境gcc g++ 开发库之类的需要提前装好。
安装make:

1
$ yum -y install gcc automake autoconf libtool make

安装gcc和g++(安装前查询服务器是否已经有了):

1
$ yum install gcc gcc-c++

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

1.选定源码目录

可以是任何目录,本文选定的是/usr/local/src

1
$ cd /usr/local/src

2.安装PCRE库

下载最新的PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

1
2
3
4
5
6
$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz 
$ tar -zxvf pcre-8.39.tar.gz
$ cd pcre-8.39
$ ./configure
$ make
$ make install

3.安装zlib库

下载最新的 zlib源码包 ,使用下面命令下载编译和安装 zlib包:

1
2
3
4
5
6
7
$ cd /usr/local/src
$ wget http://zlib.net/zlib-1.2.11.tar.gz
$ tar -zxvf zlib-1.2.11.tar.gz
$ cd zlib-1.2.11
$ ./configure
$ make
$ make install

4.安装ssl(先查询是否已安装)

1
2
3
$ cd /usr/local/src
$ wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz
$ tar -zxvf openssl-1.1.0g.tar.gz

5.安装nginx

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ cd /usr/local/src
$ wget http://nginx.org/download/nginx-1.12.2.tar.gz
$ tar -zxvf nginx-1.12.2.tar.gz
$ cd nginx-1.12.2

$ ./configure --sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/usr/local/src/pcre-8.39 \
--with-zlib=/usr/local/src/zlib-1.2.11 \
--with-openssl=/usr/local/src/openssl-1.1.0g

$ make
$ make install

(make之前三行要根据自己的路径和版本而定)

安装成功后 /usr/local/nginx 目录下如下(一共18个文件或文件夹)

fastcgi.conf koi-win nginx.conf.default
fastcgi.conf.default logs scgi_params
fastcgi_params mime.types scgi_params.default
fastcgi_params.default mime.types.default uwsgi_params
html nginx uwsgi_params.default
koi-utf nginx.conf win-utf

6.修改nginx.conf配置文件

增加下面这个server:

1
2
3
4
5
6
server {
listen 80;
location / {
root html;
}
}

7.启动

先确保系统的 80 端口没被其他程序占用。
查询:

1
$ fuser -n tcp 80

看看是什么被占用,也可以用netstat -ntpl看看谁占用,然后KILL掉占用的PID
然后通过 kill -9 删除进程 (eg:kill -9 21966)
然后执行以下命令:

1
2
$ /usr/local/nginx/nginx -c 
$ /usr/local/nginx/nginx.conf

-c制定配置文件的路径,不加-nginx会自动加载默认路径的配置文件。

8.测试

打开浏览器,输入服务器IP地址。