买VPS有瘾!

最近又新买了一台VPS,由于之前折腾的经历,经常是好几台服务器需要安装Nginx,为了追求效率终是向一键脚本妥协了,所以没有一次手动安装的经历。

不甘寂寞的我这次决定自己动手折腾折腾,整理下来发现步骤并不是很多,也不复杂。这期间也发现了不少坑,在此记录一下。

虽然标题是在CentOS系统环境安装,但同时也会在个别文章节点中记录下Ubuntu的安装步骤,方便后续自己查阅。


事前准备

检查机器环境:新买的机器居然连wgetnano都没有安装,这系统简直是太纯净了,所以需要自己安装一下:

sudo yum install -y nano wget

然后,由源码编译安装需要有C环境,这里建议直接安装开发组工具包:

sudo yum groupinstall "Development Tools"

或者只安装C模块:

sudo yum install -y gcc gcc-c++
这两项我在 WSL Ubuntu 20.04 系统中测试,发现都是已经安装了的,所以在Ubuntu下可以跳过这个步骤

一、开始安装

1.首先从官网下载源码包,文章撰写时最新稳定版为 stable 1.22.1

# 下载
wget https://nginx.org/download/nginx-1.22.1.tar.gz
# 解压
tar -zxvf ./nginx-1.22.1.tar.gz
# 切换到源码目录
cd ./nginx-1.22.1

2.然后执行./configure。根据 官网文档 的说明,这个命令有很多参数,这里列出一些自己可能用到的,也包括自己已经用到的,仅供参考:

# 配置模块
./configure \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_image_filter_module=dynamic \
--with-http_mp4_module \
--with-http_auth_request_module \
--with-stream \
--with-stream_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_sub_module \
--with-ld-opt=-ljemalloc \
--with-http_dav_module \
--with-http_flv_module \
--with-openssl=/root/download/nginx-1.21.1/other_modules/openssl-1.1.1k \
--with-openssl-opt=enable-weak-ssl-ciphers \
--add-module=/root/download/nginx-1.21.1/other_modules/headers-more-nginx-module-0.33 \
--add-module=/root/download/nginx-1.21.1/other_modules/nginx-dav-ext-module-3.0.0 \
--add-module=/root/download/nginx-1.21.1/other_modules/ngx_time_var
# 编译安装
sudo make && make install

各模块说明:

  • http_ssl_modulehttp_v2_module两个模块依赖openssl,执行以下指令进行安装:
sudo yum install openssl openssl-devel
可执行 openssl version 查看系统中是否已安装,如果已安装过的话,可以直接在configure命令后加上参数指定openssl的安装位置--with-openssl=/usr/bin/openssl。openssl的安装位置可以通过whereis openssl命令进行查找

  • rewrite模块依赖pcre,可以通过yum进行安装:
sudo yum install pcre-devel

或从官网下载源码安装:

版本列表1: https://ftp.pcre.org/pub/pcre/
版本列表2: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
wget https://ftp.pcre.org/pub/pcre/pcre-8.42.zip
unzip pcre-8.42.zip -d ./
cd ./pcre-8.42
./configure --prefix=/usr/local/pcre --enable-utf8 --enable-unicode-properties
make
make install

安装过后,再次执行nginx的./configure命令时,加上如下参数:

--with-pcre=/usr/local/pcre
Ubuntu下安装PCRE建议通过apt软件仓安装,执行: sudo apt install libpcre3 libpcre3-dev

  • gzip模块依赖 zlib库,可通过yum安装:
sudo yum install zlib-devel
Ubuntu建议通过apt软件仓安装,执行:sudo apt install zlib1g zlib1g-dev

  • image_filter_module依赖GD库,可通过yum安装:
sudo yum install gd gd-devel

二、创建软链接

创建一个到/usr/bin/nginx的软链接,这样以后就可以直接在命令行调用nginx命令了:

sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

安装完成

至此nginx就算安装成功了,作者期间并未遇到其它问题,此处只记录了自己遇到的情况,如果你的使用环境与笔者不同,请善用搜索引擎查询:)