在Linux系统中安装nginx

最近要在Linux系统中实现推流和解码,需要安装nginx,研究了一天,终于安装成功了,记录一下。因为不通外网,所以我是直接下载源码,然后上传到服务器上,再配置并安装的。步骤如下:

1. 安装OpenSSL

OpenSSL是什么东东?下面是来自百度百科的一个定义:

OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

由于nginx可能需要支持https协议(在SSL协议上传输的HTTP),因此以防将来用到,这里需要安装一下。

源码下载地址:https://www.openssl.org/source/

通过ftp上传服务器,然后解压、配置、安装(可通过./config --help查看配置选项):

tar -axvf openssl-1.1.0g.tar.gz 
cd openssl-1.1.0g
./config --prefix=/usr/local/openssl
make
sudo make install

2. 安装PCRE

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,因此需要在linux上安装pcre库。

源码下载地址:

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

上传服务器后,执行以下步骤:

(1) 解压,进入解压后的路径:

tar -zxvf pcre-8.41.tar.gz 
cd pcre-8.41/

(2) 配置路径:

./configure --prefix=/usr/local/pcre-8.41

(3) 安装

make
sudo make install

3. 安装zlib

zlib库是为http数据提供压缩和解压缩方法的库,因此,这个库也需要安装。

源码下载路径: http://zlib.net/

下载并上传后,解压,

tar -zxvf zlib-1.2.11.tar.gz 
cd zlib-1.2.11
配置:
./configure --prefix=/usr/local/zlib

安装:

make
sudo make install

4. 安装nginx

安装完以上几个主要的依赖库以后,就可以安装nginx了。

源码下载路径:http://nginx.org/en/download.html
http://nginx.org/download/nginx-1.12.2.tar.gz

放到服务器上并解压:

tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2

配置,通过./configure --help可查看配置选项,也可通过查阅官方文档http://nginx.org/en/docs/configure.html了解各个配置选项的详细说明。

./configure --prefix=/usr/local/nginx
--sbin-path=/usr/local/nginx/nginx 
--conf-path=/usr/local/nginx/nginx.conf 
--pid-path=/usr/local/nginx/nginx.pid 
--with-openssl=../openssl-1.1.0g 
--with-pcre=../pcre-8.41 
--with-zlib=../zlib-1.2.11

注意,--with-openssl、--with-pcre和--with-zlib几个选项后面都是这几个库的源码位置,设置中,我们将这几个库的源码放在了与nginx源码相同的目录下。

执行上面的配置后,显示的执行结果如下:


然后安装:

make
sudo make install
至此,nginx就安装完成了。

5. 执行nginx

想要普通用户也能对nginx服务进行操作,需要赋予普通用户执行的权限:

sudo chmod u+s /usr/local/nginx/nginx

然后,我们进入到/usr/local/nginx目录下,执行./nginx,通过如下命令查看nginx是否启动成功:

ps aux | grep nginx

执行结果如下:


可以看到,系统中包含两个nginx进程,一个是master process,一个是worker process。实际上,nginx服务中包含一个主进程(master process)和若干个工作进程(worker process),主进程的主要任务是读取与评估配置文件,并维护工作进程;而工作进程负责执行实际请求的处理。nginx采用基于事件的模型和依赖于操作系统的机制,在不同的worker process之间有效分发请求。worker process的数量在配置文件中定义,可配置为某个固定值,也可根据可用的CPU核数来自动调整。

那么,nginx启动后,如何停止、重载呢?可以通过下面的命令:

nginx -s signal

其中,signal可根据需要设置成如下几个选项之一:

  • stop — fast shutdown
  • quit — graceful shutdown
  • reload — reloading the configuration file
  • reopen — reopening the log files

例如,在worker process处理完当前请求后就关闭nginx,可用如下命令:

nginx -s quit

修改配置文件后,可通过执行下面命令使修改生效:

nginx -s reload

当然,对于退出nginx,也可以通过Linux系统工具kill命令来杀掉主进程(kill + PID),例如,

kill 32515

6. 修改nginx可执行文件路径

每次执行nginx都要到安装目录下很麻烦,时间久了容易忘记安装的位置,可以把它放在系统路径下,这样,在任何路径下都可以直接执行nginx命令。我用的方法如下:

vi /etc/profile
或  gedit /etc/profile

进入对profile的编辑,在文件末尾,添加

export PATH=$PATH:/usr/local/nginx

注意,上面“PATH:”后面跟的路径截止到可执行文件上面一层路径即可,不需要包含可执行文件名称,例如在我的示例中,可执行文件全路径为/usr/local/nginx/nginx,那么这里只需要写/usr/local/nginx即可。

该方法需要重启系统后生效。重启后,在当前目录下执行nginx,然后通过ps -aux | grep nginx查看,截图如下:


可见,做以上路径添加操作后,nginx在任意路径下都可以执行了。停止nginx也一样:


猜你喜欢

转载自blog.csdn.net/DeliaPu/article/details/79402909