Nginx 版本
共有4个版本, Nginx开源版(最干净的、最纯净的,完成的就是网站服务器、代理服务器、负载均衡器这三大功能) http://nginx.org/ Nginx plus 商业版(除了基本三大功能外,提供其他的功能,无需开发者自己开发,做二次开发难度较大) https://www.nginx.com openresty(免费开源的,Nginx和Lua脚本结合在一起的web平台,而Nginx plus版本自己是可以开发出来的,此版本提供很多类库可供开发者开发) http://openresty.org/cn/ Tengine(淘宝、天猫发布的开源版本,在Nginx开源版本上新增功能,以模块化的方式增强原始文档) http://tengine.taobao.org/
Nginx 安装
一般采用Linux虚拟机的形式安装,安装之前最好先备份原有的虚拟机环境(用链接式克隆,占用空间更少),本文采用源码配置编译的方式安装。必须先安装的依赖库,将安装包pcre-8.45.tar.bz2、zlib-1.2.12.tar.gz、nginx-1.20.2.tar.gz 下载后放至Linux虚拟机中,可如下流程安装。
- 安装PCRE库(源码安装包:sourceforge.net/projects/pcre/files/pcre 下载),下载之后,解压后用如下命令安装:
$ cd pcre-8.45
$ sudo ./configure
$ sudo make
$ sudo make install
- 安装zlib库(源码安装包:www.zlib.net/fossils/ 下载),下载之后,解压后用如下命令安装:
$ cd zlib-1.2.12
$ sudo ./configure
$ sudo make
$ sudo make install
- 安装Nginx(源码安装包:nginx.org/ 下载),下载之后,解压后用如下命令安装:
使用编译安装,可以添加前缀 --prefix,使其安装到Linux下/usr/local/nginx 目录下,
cd nginx-1.20.2
sudo ./configure --prefix=/usr/local/nginx
sudo make
sudo make install
Nginx 启动
安装完Nginx后,进入/usr/local/nginx目录下没有任何的启动脚本,进入 /usr/local/nginx/sbin目录下有nginx可执行文件,执行命令: ./nginx
若报错:nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
再用命令:$ ldd nginx
linux-vbso.so.1 => (0x0000007fff730000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x0000007fb8000000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x0000007fe7700000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x0000007ffcb00000)
libpcre.so.1 => not found
libcrypto.so.6 => /lib/x86_64-linux-gnu/libcrypto.so.6 (0x0000007fe2100000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x0000007feb100000)
libc.so.6 => /lib64/libc.so.6 (0x0000007fea100000)
/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 (0x0000007ffd400000)
$ ls /usr/local/lib | grep pcre
$ sudo ln -s /usr/local/lib/libpcre.so.1 /lib/x86_64-linux-gnu/
此时执行命令:sudo ./nginx 浏览器中输入:虚拟机的IP地址即可登录,如下图: 若输入IP地址回车后,无任何响应,等待一段时间后出现无法访问,是因为虚拟机中的防火墙问题,关闭之后,重新登录网址,即可访问成功。
$ systemctl stop firewalld.service
$ systemctl disable firewalld.service
nginx的启动或停止相关命令:
$ ./nginx
$ ./nginx -s stop
$ ./nginx -s quit
$ ./nginx -s reload
Nginx 系统服务
由于开启nginx都需要手动执行命令较为繁琐,可创建脚本的方式,开启为系统级nginx服务,在/usr/lib/systemd/system/目录创建脚本文件:nginx.service
$ sudo vi /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
$ systemctl daemon-reload
可以先查下系统的nginx进程情况
$ ps -ef | grep nginx
此时已开启nginx服务
$ ./nginx -s stop
$ ps -ef | grep nginx
启动服务
$ systemctl start nginx.service
开机启动
$ systemctl enable nginx.service
|