yum安装
官方包链接:nginx: Linux packages
官方yum源链接:nginx: Linux packages
配置yum源
[root@localhost ~]# yum install -y nginx
[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
列出所有版本
yum list nginx --showduplicates
查看版本信息
yum info nginx
安装
yum install -y nginx
查看nginx安装包信息
rpm -q nginx
rpm -qi nginx
nginx配置文件
rpm -ql nginx
rpm -qc nginx
启动nginx
systemctl enable --now nginx
注意:若是出现Failed to start nginx - high performance web server
可能是80端口被占用
lsof -i:80
杀死进程
kill -9 pid
查看其他进程
systemctl status nginx
pstree -p
查看版本
访问网站
查看nginx权限用户
ps aux | grep nginx
修改权限用户
systemctl stop nginx
systenctl status nginx
vim +5 /etc/nginx/nginx.conf
#user nginx;
nginx -g "user stu;"
!ps
nginx的参数
帮助: -? -h
使用指定的配置文件: -c
指定配置指令:-g
指定运行目录:-p
测试配置文件是否有语法错误:-t -T
打印nginx的版本信息、编译信息等:-v -V
发送信号: -s 示例: nginx -s reload立刻停止服务:stop,相当于信号SIGTERM,SIGINT
优雅的停止服务:quit,相当于信号SIGQUIT
平滑重启,重新加载配置文件: reload,相当于信号SIGHUP
重新开始记录日志文件:reopen,相当于信号SIGUSR1,在切割日志时用途较大
平滑升级可执行程序:发送信号SIGUSR2,在升级版本时使用
优雅的停止工作进程:发送信号SIGWINCH,在升级版本时使用
nginx运行方式
运行:nginx
关闭:nginx -s stop
运行: systemctl start nginx
关闭:systemctl stop nginx
前台运行:nginx -g "daemon off;"
关闭:Ctrl + z
服务文件
cat /usr/lib/systemd/system/nginx.service
pid文件
cat /run/nginx.pid
编译安装
yum -y install gcc pcre-devel openssl-devel zlib-devel
创建nginx的权限用户
useradd -s /sbin/nologin nginx
安装包
cd /usr/local/src/
wget https://nginx.org/download/nginx-1.20.2.tar.gz
tar -zxvf nginx-1.20.2.tar.gz
auto:用于编译时的文件,以及相关lib库,编译时对对操作系统的判断等,都是为了辅助./configure命令执行的辅助文件。
conf:存放 Nginx 服务器配置文件
configure:命令,用于对即将安装的软件的配置,完成 makefile 编译文件的生成
contrib:存放由其他机构贡献的文档材料
html:存放 Nginx 欢迎页面
man:nginx命令的帮助文档,linux上可以使用man命令查看帮助
src:存放 Nginx 源码
编译安装
生成makefile
./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
编译
make
make install
ls /apps/nginx
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二进制启动脚本,可以接受不同的参数以实现不同的功能。
创建软连接
ln -s /apps/nginx/sbin/nginx /usr/sbin/
修改所用者
chown -R nginx.nginx /apps/nginx
访问
配置service文件
cat /usr /lib/systemd/system/nginx.service
[unit]
Description=The nginx HTTP and reverse proxy server
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target[Service]
Type=forking
PIDFile=/run/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=mixed
PrivateTmp=true[Install]
WantedBy=multi-user.target
修改run/nginx.pid
find / -name nginx.pid
cd /apps/nginx
mkdir run
cp logs/nginx.pid run/
chown -R nginx.nginx /apps/nginx/run/nginx.pid
vim /apps/nginx/conf/nginx.conf
加载启动
加载:systemctl daemon-reload
启动: systemctl start nginx