正常是两种安装方式
- 一种是使用系统的包管理软件,比如
centos
的yum -y install nginx
命令(简单但不推荐,配置文件分散不易管理,且需要配置第三方源yum -y install epel-release
等,如果是简单使用,配置文件什么的都不改,做一些测试使用之类的任务,还是比较方便的,总的来说,看自己需求) - 第二种是通过源码编译安装的方式(推荐),可以自定义配置文件存放位置,自主选择安装版本等。
前往nginx官网
文章目录
- 1. 包管理软件安装
- 1.1 redhat系列
- 1.2 debian系列
- 2. 源码安装
- 2.1 选择需要的版本
- 2.2 编译安装
- 2.2.1获取源码
- 2.2.2编译安装
- 2.3 创建软链接
- 2.3.1 四个目录
- 2.4 设置自启动
- 2.4.1新建nginx服务
- 2.4.2验证自启动
- 2.4.3启动失败
- 2.4.3.1查看状态
- 2.4.3.2检查端口占用
- 2.4.3.3重启
- 2.4.3.4检查状态
- 3.常用命令
- 3.1启动
- 3.2停止
- 3.3检查文件
- 3.4重载配置文件
- 3.5开启、停止、重启服务
- 4. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
- 4.1查看状态
- 4.2检查端口占用
- 4.3重启
- 4.4检查状态
- 补充:再不行就关掉防火墙(不推荐)
1. 包管理软件安装
1.1 redhat系列
# 安装第三方源
yum -y install epel-release
# 安装nginx(安装源内最新版,不一定是官网最新版)
yum -y install nginx
1.2 debian系列
# 安装nginx(安装源内最新版,不一定是官网最新版)
apt -y install nginx
2. 源码安装
各Linux发行版本通用
2.1 选择需要的版本
nginx历史版本
选择一个版本,比如1.8.0,在legacy versions
中选中nginx-1.18.0
右键选择复制链接地址
2.2 编译安装
2.2.1获取源码
# 下载到本地:wget [复制的地址链接] -P [存放地址]
wget http://nginx.org/download/nginx-1.18.0.tar.gz -P /usr/local/src/
cd /usr/local/src
tar xzvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
# 查看帮助
./configure --help
2.2.2编译安装
# 下载环境依赖
yum -y install gcc pcre-devel openssl-devel zlib-develuseradd -r -s /sbin/nologin nginx# 下面一块是一个整体复制进终端(当前目录在:/usr/local/src/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# 编译安装
make -j 2 && make install
chown -R nginx.nginx /apps/nginx
2.3 创建软链接
ln -s /apps/nginx/sbin/nginx /usr/bin/
# 查看版本信息
nginx -v
2.3.1 四个目录
/apps/nginx
├── conf
├── html
├── logs
└── sbin
- conf 配置文件
- html web文件
- logs 日志信息
- sbin 可执行脚本
2.4 设置自启动
2.4.1新建nginx服务
vim /usr/lib/systemd/system/nginx.service# 复制下面到/usr/lib/systemd/system/nginx.service中
[Unit]
Description=The nginx HTTP and reverse proxy server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/apps/nginx/run/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.targetmkdir /apps/nginx/run/
vim /apps/nginx/conf/nginx.conf# 复制下面到/apps/nginx/conf/nginx.conf中(可以解开注释并修改,或者直接复制进去)
pid /apps/nginx/run/nginx.pid;
2.4.2验证自启动
systemctl daemon-reload
systemctl enable nginx
ll /apps/nginx/run
# 存在pid文件
2.4.3启动失败
2.4.3.1查看状态
2.4.3.2检查端口占用
2.4.3.3重启
2.4.3.4检查状态
3.常用命令
nginx官方文档
3.1启动
# 直接nginx
nginx
3.2停止
nginx -s stop
3.3检查文件
验证文件是否正确
nginx -t
3.4重载配置文件
nginx -s reload
3.5开启、停止、重启服务
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
4. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
出现的可能性比较大,单独拎出来,和上文内容一样
4.1查看状态
4.2检查端口占用
4.3重启
4.4检查状态
补充:再不行就关掉防火墙(不推荐)
systemctl stop firewalld