醉丶春风的Blog

千里之行, 始于足下



centos7下编译安装nginx的方法


安装所需依赖

如果认为自己的环境中已经有了对应的依赖, 也可以不用执行

yum -y install wget gcc gcc-c++ autoconf automake make zlib zlib-devel pcre-devel pcre openssl openssl-devel

下载源码

直接到官网中, 选择一个合适的版本即可, 附上官网下载链接 https://nginx.org/en/download.html

当前最新的稳定版是1.18

可以通过右击->复制链接地址来快速获取下载链接, 如下图

image-20200625180437822

找到一个合适的目录, 使用wget 下载

cd /data/programs
# 加上-c参数使用断点续传
wget -c https://nginx.org/download/nginx-1.12.2.tar.gz

解压源代码

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

配置

如果没有什么特殊操作, 直接使用默认的操作就可以也, 但是我需要添加httpshttp2支持, 就需要使用自定义参数了, 先看一下configure --help

./configure --help | more

    ...
  --without-poll_module              disable poll module

  --with-threads                     enable thread pool support

  --with-file-aio                    enable file AIO support

  --with-http_ssl_module             enable ngx_http_ssl_module
  --with-http_v2_module              enable ngx_http_v2_module
  ...

可以看到, 默认是不会编译httpshttp2模块的

关于参数, --with 是指默认不会编译模块, 手动加上这个参数, 就会编译该模块

--without 是指默认会编译该模块, 如果加上该参数, 是指将该模块去除

我最终的配置参数为

./configure --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-stream

编译安装

make && make install

nginx默认会安装在/usr/local/nginx目录下

启动nginx

# 启动
/usr/local/nginx/sbin/nginx
# 重新加载配置文件
/usr/local/nginx/sbin/nginx -s reload
# 立刻停止服务
/usr/local/nginx/sbin/nginx -s stop
# 优雅的停止服务
/usr/local/nginx/sbin/nginx -s quit
# 重新开使记录日志文件
/usr/local/nginx/sbin/nginx reopen

# 可以选择将nginx拷贝到 /usr/bin 下, 这样就可以直接使用nginx命令了
cp /usr/local/nginx/sbin/nginx /usr/bin/nginx

常用的nginx命令

# 测试配置文件
nginx -t
# 指定nginx.conf配置文件所在的位置, 将会覆盖默认的nginx.conf
nginx -c /path/to/nginx.conf
# 帮助
nginx -? 或者 -h 
# 指定运行目录
nginx -p
# 发送信号
nginx -s
# 打印版本信息, 编译信息
nginx -v 或 -V

查看编译参数

使用nginx -V即可

nginx -V

nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-stream

开启gzip

开启gzip能大幅度减少数据传输大小

首先打开/usr/local/nginx/conf/nginx.conf, 找到 gzip on; 去除前面的注释

另起一行, 按需要添加下列的配置

# 小于设定的大小的文件将不会被压缩
gzip_min_length 1k;
# 压缩等级, 推荐的等级是5-7, 一般使用6, 其实1已经够用了, 7以上和7的压缩大小已经差别不大了, 但是cpu消耗会增加许多
gzip_comp_level 6;
# 开启针对文件类型压缩
# 关于文件类型, 可以在 usr/local/nginx/conf/mime.types 这个文件下查看
gzip_types text/plain text/html application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/json application/rss+html;

整体的配置如下图

image-20200625190954475

设置vim中nginx语法高亮

vim中开启nginx语法高亮的方法很简单, 不需要下载插件
查看下nginx的源码目录, 会发现下面有一个contrib的文件夹, 该文件夹下面有一个vim子文件夹, 将这个文件夹下面的所有文件复制到 ~/.vim中即可

cd /data/programs/nginx-1.12.2/
ll
# 查看nginx源码目录, 找到contrib
...
-rwxr-xr-x 1 1001 1001 2.5K 10月 17 2017 configure
drwxr-xr-x 4 1001 1001 4.0K 6月  21 22:23 contrib
...

cd contrib
ll
# 发现vim目录
drwxr-xr-x 6 1001 1001 4.0K 10月 17 2017 vim

vim目录复制到 ~/.vim/

如果宿主目录下面没有.vim目录, 创建一个即可

cd ~
# 如果没有 .vim目录 新建一个就行
mkdir .vim
cp -r /data/programs/nginx-1.12.2/contrib/vim/* ./.vim

这个时候就已经成功的开启nginx的语法高亮了, 下面上两张图来看一下区别

未开启语法高亮

image-20200625113437156

已开启语法高亮

image-20200625113411899

可以看到, 开启语法高亮之后已经可以识别出nginx的关键字了

但是这种方法也有一个缺点, 就是他只支持nginx.conf这个文件名, 其他的文件名他是不支持高亮的, 下面就来演示一下怎样让他支持更多的文件和我们自定义的目录下的配置文件高亮

扩展nginx语法高亮

上面我们已经复制了nginx的语法高亮文件, 现在就来配置一下怎么支持其他目录下的配置文件语法高亮

执行一下下面的命令即可

echo -e "au BufRead,BufNewFile /data/conf/nginx/vhost/*,/usr/local/nginx/conf/* if &ft == '' | setfiletype nginx | endif" >> ~/.vim/filetype.vim

上面的命令中, 我定义了两个目录, 指定vim使用nginx的语法高亮


作者: 徐善通
地址: https://xstnet.com/article-151.html
声明: 除非本文有注明出处,否则转载请注明本文地址


我有话说



最新回复


正在加载中....

Copyrights © 2016-2019 醉丶春风 , All rights reserved. 皖ICP备15015582号-1