Ubuntu22.04使用apt在线安装Nginx
系列 - Nginx学习
目录
Ubuntu 22.04 使用 apt 在线安装 Nginx
Note
操作系统版本:Ubuntu 20.04.6 LTS
参考文档:Nginx 官方文档
1.安装依赖软件
安装必要的依赖软件,命令如下:
apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -y
2.导入官方签名密钥
导入官方 Nginx 签名密钥,以便 apt 可以验证包的真实性。
命令如下:
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
验证下载的文件是否包含正确的密钥。
命令如下:
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
# 输出信息
pub rsa4096 2024-05-29 [SC]
8540A6F18833A80E9C1653A42FD21310B49F6B46
uid nginx signing key <signing-key-2@nginx.com>
pub rsa2048 2011-08-19 [SC] [expires: 2027-05-24]
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid nginx signing key <signing-key@nginx.com>
pub rsa4096 2024-05-29 [SC]
9E9BE90EACBCDE69FE9B204CBCDCD8A38D88A2B3
uid nginx signing key <signing-key-3@nginx.com>
3.设置稳定版本 Nginx 软件仓库
设置稳定版本 Nginx 软件仓库。
命令如下:
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
设置优先从自定义仓库安装。
命令如下:
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
4.安装Nginx软件
使用 apt 命令安装 Nginx,命令如下:
apt update
apt install nginx -y
5.启动nginx服务
我们可以通过 systemctl 命令和 Nginx 脚本两种方式来管理 Nginx 服务,但同一时间只能使用一种(如使用 systemctl 命令启动服务后,不能使用脚本停止服务)。
5.1 使用systemctl启动
1.使用systemctl启动 Nginx 服务并设置开机自启
命令如下:
systemctl start nginx && systemctl enable nginx
2.查看 Nginx 服务启动状态。
命令如下:
ss -autlp|grep nginx
ps -aux|grep nginx
5.2 使用脚本启动
使用脚本启动 Nginx 服务命令如下:
/usr/sbin/nginx
Note
其他命令如下:
/usr/sbin/nginx -s stop:停止/usr/sbin/nginx -s reload:重载/usr/sbin/nginx -s stop && /usr/sbin/nginx:重启
6.nginx配置文件
检查配置文件语法格式命令如下:
nginx -t
6.1 主配置文件
root@nginx:~# cat /etc/nginx/nginx.conf
# 核心区域
user nginx; # 启动nginx的虚拟用户,安装默认创建
worker_processes auto; # 启动workder子进程个数,auto表示以cpu内核为准
error_log /var/log/nginx/error.log notice; # 错误日志位置以及级别
pid /run/nginx.pid; # nginx存放pid文件位置
# 事件模块
events {
worker_connections 1024; # 进程的最大连接数
}
# http模块
http {
include /etc/nginx/mime.types; # 媒体类型
default_type application/octet-stream; # 默认类型,如果不存在则直接下载下载
# 定义日志格式
# $remote_addr 客户端IP地址
# $remote_user 登录用户(如果登录)
# $time_local 本地时间
# $request 请求类型
# $status 状态码
# $body_bytes_sent 字节大小
# $http_referer 从哪个网址点击过来的
# $http_user_agent 客户端的信息
# $http_x_forwarded_for 如果有代理会记录客户端真实IP
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; # 访问日志存放位置及调用的日志格式
sendfile on; # 文件高效传输
#tcp_nopush on;
keepalive_timeout 65; # 长连接的超时时间
#gzip on; # 是否开启压缩
include /etc/nginx/conf.d/*.conf; # 包含的其他配置文件(将包含的所有文件内容都引用到了当前文件中)
}
6.2 主机配置文件
主机配置文件也可直接写在主配置文件中,但是为了易读性我们一般分开写。
root@nginx:~# grep -Ev '#|^$' /etc/nginx/conf.d/default.conf
server {
listen 80; # 监听端口
server_name localhost; # 访问域名
location / { # 用户访问localhost:80/时的配置
root /usr/share/nginx/html; # 网页文件根目录
index index.html index.htm; # 用户访问localhost:80/时默认返回页面
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}