前言 {#前言}
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。本文介绍四种基于linux环境下的安装nginx的方法,安装版本为现阶段官网推出的最新稳定版本。
Linux下四种安装方式 {#Linux下四种安装方式}
- yum 安装:简单方便,不易出错
- rpm安装包安装:便捷,方便
- 源码包安装:有点繁琐,服务性能好
- docker 安装:方便快捷
其中yum、源码安装、docker安装依赖互联网接入,rpm可以离线安装。
安装步骤 {#安装步骤}
安装之前查看端口,默认nginx使用的80端口,如果80端口已经占用启动过程中可能会报错,针对端口占用情况,可以停止占用端口的服务或者nginx改用其他端口启动,停用和改端口方法不在本文介绍。
|-----------|---------------------------------|
| 1
| netstat -nltp | grep 80
|
3.1 yum 安装 nginx {#3-1-yum-安装-nginx}
nginx添加yum repro库中
|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5
| # 下载nginx包 wget https://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm # 建立nginx的yum仓库 rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
|
查看nginx信息
|-----------|------------------------|
| 1
| yum info nginx
|
查看yum源仓库中nginx版本
|-----------|--------------------------------------------------|
| 1
| yum --showduplicates list nginx | expand
|
安装nginx,默认安装最新的稳定版本 及 nginx 1.20.2
|-----------|---------------------------|
| 1
| yum install nginx
|
3.2 源码编译安装nginx {#3-2-源码编译安装nginx}
Nginx 源码包安装步骤相比其他安装方法比较繁琐,但是操作不复杂,需要提前安装一些 Nginx 依赖库。
3.2.1 依赖库安装 {#3-2-1-依赖库安装}
1、安装gcc环境
编译时依赖gcc环境
|-----------|-----------------------------------------------------------|
| 1
| yum -y install gcc gcc-c++ autoconf automake make
|
2、安装 pcre
提供nginx支持重写功能
|-----------|----------------------------------------|
| 1
| yum -y install pcre pcre-devel
|
3、安装zlib
zlib 库提供了很多压缩和解压缩的方式,nginx 使用 zlib 对 http 包内容进行 gzip 压缩
|-----------|-----------------------------------------------------|
| 1
| yum -y install zlib zlib-devel make libtool
|
4、安装openssl
安全套接字层密码库,用于通信加密
|-----------|----------------------------------------------|
| 1
| yum -y install openssl openssl-devel
|
3.2.2 nginx 安装 {#3-2-2-nginx-安装}
手动创建用户和用户组
|-------------|-------------------------------------------------------------------|
| 1 2
| groupadd nginx useradd nginx -g nginx -s /sbin/nologin -M
|
官网下载nginx源码包
|-----------|-------------------------------------------------------------|
| 1
| wget https://nginx.org/download/nginx-1.20.2.tar.gz
|
解压
|-----------|---------------------------------------|
| 1
| tar -zxvf nginx-1.20.2.tar.gz
|
编译目录
|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3
| cd nginx-1.20.2 # 检查平台安装环境 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx
|
参数说明:
|------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| --prefix=/usr/local/nginx #编译安装目录 --user=nginx #所属用户nginx --group=nginx #所属组nginx --with-http_stub_status_module #该模块提供nginx的基本状态信息 --with-http_ssl_module # 支持HTTPS
|
编译源码并安装
|-------------|------------------------------------------|
| 1 2
| make # 编译 make install # 安装
|
nginx编译安装完成以后,修改nginx.conf
|-----------|---------------------------|
| 1
| user nginx nginx;
|
3.2.3 ningx操作 {#3-2-3-ningx操作}
启动服务
|-----------|-------------------------------------|
| 1
| /usr/local/nginx/sbin/nginx
|
重新加载服务
|-----------|-----------------------------------------------|
| 1
| /usr/local/nginx/sbin/nginx -s reload
|
停止服务
|-----------|---------------------------------------------|
| 1
| /usr/local/nginx/sbin/nginx -s stop
|
查看进程
|-----------|-----------------------------|
| 1
| ps -ef | grep nginx
|
验证
|-----------|-----------------|
| 1
| curl IP
|
nginx版本信息查看
|-----------|----------------------------------------|
| 1
| /usr/local/nginx/sbin/nginx -V
|
nginx配置服务
目前nginx都是通过命令执行的,在nginx运行过程中,需要nginx作为系统的服务运行。以systemctl命令运行服务
配置服务文件
|-----------|----------------------------------------------|
| 1
| vi /lib/systemd/system/nginx.service
|
配置信息
|---------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13
| [Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx reload ExecStop=/usr/local/nginx/sbin/nginx quit PrivateTmp=true [Install] WantedBy=multi-user.target
|
创建服务
|-----------|----------------------------------------|
| 1
| systemctl enable nginx.service
|
使用服务命令
|-----------|--------------------------------|
| 1
| systemctl status nginx
|
3.3 rpm安装包安装nginx {#3-3-rpm安装包安装nginx}
3.3.1 下载rpm安装包 {#3-3-1-下载rpm安装包}
官网下载安装包
|-----------|------------------------------------------------------------------------------------------------|
| 1
| wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.2-1.el7.ngx.x86_64.rpm
|
3.3.2 安装nginx包 {#3-3-2-安装nginx包}
|-----------|----------------------------------------------------|
| 1
| rpm -ivh nginx-1.20.2-1.el7.ngx.x86_64.rpm
|
3.3.3 配置权限 {#3-3-3-配置权限}
使用root账号创建nginx用户和组
|-------------|-------------------------------------------------------------------|
| 1 2
| groupadd nginx useradd nginx -g nginx -s /sbin/nologin -M
|
授权列表清单给nginx
|------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 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 27 28
| chown -R nginx:nginx /etc/log/logrotate.d/nginx chown -R nginx:nginx /etc/nginx chown -R nginx:nginx /etc/nginx/conf.d chown -R nginx:nginx /etc/config.d/default.conf chown -R nginx:nginx /etc/nginx/fastcgi_params chown -R nginx:nginx /etc/nginx/mime.types chown -R nginx:nginx /etc/nginx/modules chown -R nginx:nginx /etc/nginx/nginx.conf chown -R nginx:nginx /etc/nginx/scgi_params chown -R nginx:nginx /etc/nginx/uwsgi_params chown -R nginx:nginx /usr/lib/systemd/system/nginx-debug.service chown -R nginx:nginx /usr/lib/systemd/system/nginx.service chown -R nginx:nginx /usr/lib64/nginx chown -R nginx:nginx /usr/lib64/nginx/modules chown -R nginx:nginx /usr/libexec/initscripts/legacy-actions/nginx chown -R nginx:nginx /usr/libexec/initscripts/legacy-actions/nginx/check-reload chown -R nginx:nginx /usr/libexec/initscripts/legacy-actions/nginx/upgrade chown -R nginx:nginx /usr/sbin/nginx chown -R nginx:nginx /usr/sbin/nginx-debug chown -R nginx:nginx /usr/share/doc/nginx-1.20.1 chown -R nginx:nginx /usr/share/doc/nginx-1.20.1/COPYRIGHT chown -R nginx:nginx /usr/share/man/man8/nginx.8.gz chown -R nginx:nginx /usr/share/nginx chown -R nginx:nginx /usr/share/nginx/html chown -R nginx:nginx /usr/share/nginx/html/50x.html chown -R nginx:nginx /usr/share/nginx/html/index.html chown -R nginx:nginx /var/cache/nginx chown -R nginx:nginx /var/log/nginx
|
启动nginx
|-----------|--------------------------------|
| 1
| systemctl start nginix
|
验证
|-----------|-----------------|
| 1
| curl IP
|
卸载 nginx
|-------------------|-----------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5
| # 查看nginx安装文件 rpm -qa | grep nginx nginx-1.20.2-1.el7.ngx.x86_64 # 卸载nginx安装文件 rpm -e nginx-1.20.2-1.el7.ngx.x86_64
|
3.4 docker 中安装nginx {#3-4-docker-中安装nginx}
docker安装可以选择在线和离线安装,在线安装使用docker命令安装,离线安装使用docker安装完毕后,打包至离线服务器进行安装,本文以在线安装为例进行展开操作。
|---------------------|---------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6
| # 获取nginx镜像 docker pull nginx:1.21.6 # 查看镜像 docker images 运行nginx docker run --name nginx -p 80:80 -d nginx
|
使用过程中会挂载 配置文件、站点、日志信息,在现有基础上新增挂载参数即可。
验证
|-----------|-----------------|
| 1
| curl IP
|
4 nginx 其他 {#4-nginx-其他}
4.1 nginx常用操作 {#4-1-nginx常用操作}
常用操作是基于nginx正确安装的基础上的操作
启动nginx
|-----------|-------------------------------|
| 1
| systemctl start nginx
|
停止 nginx
|-----------|------------------------------|
| 1
| systemctl stop nginx
|
重启 nginx
|-----------|---------------------------------|
| 1
| systemctl restart nginx
|
重新加载配置
|-----------|--------------------------------|
| 1
| systemctl reload nginx
|
设置开机启动
|-----------|--------------------------------|
| 1
| systemctl enable nginx
|
关闭开机启动设置
|-----------|---------------------------------|
| 1
| systemctl disable nginx
|
查看版本
|-----------|------------------|
| 1
| nginx -V
|
4.2 目录说明 {#4-2-目录说明}
| 目录 | 说明 | |---------------------------|---------------------------| | /etc/nginx/ | 所有相关配置文件目录 | | /etc/nginx/nginx.conf | nginx主配置文件 | | /etc/nginx/conf.d/ | 独立的nginx服务配置文件目录 | | /var/log/nginx/ | nginx日志文件目录 | | /var/log/nginx/access.log | 访问日志(IP/浏览器信息/处理时间/请求URL) | | /var/log/nginx/error.log | 错误日志(服务器和请求处理中的错误信息) | | /usr/share/nginx/html | 默认的站点位置,可以根据实际情况进行设置调整 |
参考链接:https://blog.csdn.net/shallow72/article/details/123878716