一.通过官方 yum 源安装nginx
1.配置yum源
[root@centos8 ~]#cat /etc/yum.repos.d/nginx.repo
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
[nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
2.安装指定版本
yum -y install nginx-1.18.0
3.检查安装
[root@centos8 ~]#rpm -q nginx
nginx-1.18.0-1.el8.ngx.x86_64
二.编译安装nginx1.18.0
1.安装所需的依赖包
#centos7、8
[root@centos8 ~]#yum -y install gcc pcre-devel openssl-devel zlib-devel
#rocky8
[root@rocky8 ~]#yum -y install gcc make gcc-c++ libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel perl-ExtUtils-Embed
#ubuntu2004
[root@ubuntu2004 ~]#apt -y install gcc make libpcre3 libpcre3-dev openssl libssl-dev zlib1g-dev
2.为应用程序创建用户
useradd -s /sbin/nologin nginx
#useradd -s:指定用户登录的shell
#/sbin/nologin:shell类型中的一种,作用是禁止用户登录
3.下载源码后解压
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar xf nginx-1.18.0.tar.gz
4.切换到nginx-1.18.0目录下进行编译
cd nginx-1.18.0/
./configure --prefix=/apps/nginx \
--user=nginx \ --group=nginx \
--with-http_ssl_module \ --with-http_v2_module \
--with-http_realip_module \ --with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \ --with-stream \
--with-stream_ssl_module \ --with-stream_realip_module
#默认安装路径在/usr/local/下,
更改需要加上参数(--prefix='安装路径')
#其它--参数,规定了nginx的某些模块达到特定的作用
5.开始安装
make && make install
6.修改权限
chown -R nginx.nginx /apps/nginx
#第2步和第4步的目的:为nginx服务创建一个用户,禁止此用户登录,修改配置文件的属主和属组为nginx用户,除管理员root外,其它用户将无法修改配置文件,提高了安全性
7.查看nginx启动文件,然后建立一个软连接,让此启动文件能被系统识别到
ls /apps/nginx/sbin/nginx
ln -s /apps/nginx/sbin/nginx /usr/sbin/
8.启动nginx服务
nginx
9.验证版本及编译参数
nginx -v(此处小写)
nginx -V(此处大写)
2.nginx完成安装后,会有四个主要目录
- #生成目录
ll /apps/nginx/
total 0
drwxr-xr-x 2 root root 333 Sep 22 12:49 conf
drwxr-xr-x 2 root root 40 Sep 22 12:49 html
drwxr-xr-x 2 root root 6 Sep 22 12:49 logs
drwxr-xr-x 2 root root 19 Sep 22 12:49 sbin
- #conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,配置文件一般都有一个样板配置文件,是以.default为后缀,使用时可将其复 制并将default后缀去掉即可
- #html目录中保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的 web文件是默认的错误页面提示页面
- #logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比 如/var/logs/nginx里面
- #sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能
3.创建nginx自启动文件
1.复制同一版本yum安装nginx生成的service文件
vim /usr/lib/systemd/system/nginx.service
[Unit] Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/apps/nginx/run/nginx.pid #指定pid文件的目录,默认在logs目录下,可选配置
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
2.创建pid文件存放的目录
mkdir /apps/nginx/run/
3.修改配置文件
vim /apps/nginx/conf/nginx.conf
pid /apps/nginx/run/nginx.pid;
4.验证自启动文件
systemctl daemon-reload
systemctl enable --now nginx
5.查看80端口是否开启
ss -ntl