下载
官网:https://nginx.org/en/download.html
1
| wget https://nginx.org/download/nginx-1.22.1.tar.gz
|
解压
1
| tar zxvf nginx-1.22.1.tar.gz
|
安装
依赖准备
安装前需要安装nginx编译的依赖环境,依赖的名称在centos与ubuntu下,会有所不同,以下两种发行版都有。
整合全部依赖安装命令(执行后可直接跳至“编译安装”的步骤)
1 2 3 4
| yum -y install make gcc gcc-c++ zlib zlib-devel pcre pcre-devel openssl openssl-devel libffi-devel libtool
apt-get install make g++ zlib1g zlib1g.dev libpcre3 libpcre3-dev openssl libssl-dev libffi-dev libtool
|
make
编译安装必须需要make。make在centos与ubuntu下名称一样。
gcc-c++
GCC用来对nginx源码进行编译。
1 2 3 4
| yum install gcc-c++
apt-get install g++
|
zlib zlib-devel
zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。
1 2 3 4
| yum -y install zlib zlib-devel
apt-get install zlib1g zlib1g.dev
|
pcre pcre-devel
Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码。
1 2 3 4
| yum -y install pcre pcre-devel
apt-get install libpcre3 libpcre3-dev
|
openssl openssl-devel
nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http)。如果使用了 https,需要安装 OpenSSL 库。
1 2 3 4
| yum -y install openssl openssl-devel
apt-get install openssl libssl-dev
|
编译安装
编译安装任何软件基本一致,编译安装所依赖的工具库需准备全!
进入解压后的目录执行./configure
,之后会生成Makefile文件
默认会安装在 /usr/local/nginx
可指定位置 ./configure --prefix=/home/rocyuan/software/nginx
然后执行make && make install
会进行编译安装。
安装完成
安装完成后进入/usr/local/nginx/sbin
下会有nginx可执行文件
然后访问localhost
或者本机ip,会显示nginx的欢迎页
systemctl管理
创建 nginx.service 文件
1
| vim /usr/lib/systemd/system/nginx.service
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| [Unit]
Description=nginx - high performance web server Documentation=https://nginx.org After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx-1.24.0/sbin/nginx
ExecReload=/usr/local/nginx-1.24.0/sbin/nginx -s reload
ExecStop=/usr/local/nginx-1.24.0/sbin/nginx -s stop
ExecQuit=/usr/local/nginx-1.24.0/sbin/nginx -s quit
PrivateTmp=true
RestartSec=5s
[Install]
WantedBy=multi-user.target
|
完成后重新加载 systemd
守护进程配置文件
1 2 3 4 5 6 7 8 9 10 11 12
| systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl status nginx
systemctl enable nginx
systemctl disable nginx
|