目录
- 0、Nginx演进
- 一、什么是Nginx
-
- [1.1 Nginx 简介](#1.1 Nginx 简介)
- [1.2 核心架构与技术特点](#1.2 核心架构与技术特点)
- [1.3 主要功能与应用场景](#1.3 主要功能与应用场景)
- 二、Nginx的作用
-
- [2.1 正向代理](#2.1 正向代理)
- [2.2 反向代理](#2.2 反向代理)
- [2.3 理解负载均衡](#2.3 理解负载均衡)
- [2.4 动静分离](#2.4 动静分离)
- 三、Nginx安装编译依赖
-
- [3.1、上传并解压 Nginx 安装包](#3.1、上传并解压 Nginx 安装包)
- 3.2、配置编译参数
- [3.3、编译 Nginx](#3.3、编译 Nginx)
- 3.4、验证安装结果
- [3.5 常用命令](#3.5 常用命令)
0、Nginx演进
在新公司刚把项目发布上线后,一般情况下,用户量是比较少的,这个时候可以只用一台服务器去直接访问即可

一年之后,用户的访问量越来越多了,这个时候服务器的负载会越来越高。一台服务器满足不了这么多的用户了,怎么办呢?

这个时候,就需要增加服务器的数量了,增加多个服务器之后,用户要怎么去访问呢?这个时候session是无法共享给其他服务器的,每访问新的服务器都会有新的session

那么这个时候,就需要用到一个中间件Nginx,代理客户端去访问服务器的服务,这个时候的session都是存储在nginx服务器上的,

这个可以理解为反向代理
这个时候,nginx服务器就可以把用户的请求转发到后端Tomcat服务器上,就像你在找房子,是需要过中介的,你找中介看房子,中介通过你想要什么样的房子,就去给你找到合适的房子
当然,患有一种情况,就是每台的服务器资源是不同的,比如一台8G内存服务器,一台16G内存服务器,还有一台64G服务器.假如我想把请求到更多内存资源的服务器上,可以给64G内存服务器加权重

一、什么是Nginx
1.1 Nginx 简介
Nginx(发音类似 "engine X")是由俄罗斯程序员伊戈尔·赛索耶夫(Igor Sysoev)开发的开源 Web 服务器软件,采用 2-clause BSD 许可证发布,可免费用于商业和个人场景。
Nginx 基于异步非阻塞的事件驱动架构 ,能够结合 Linux 下的 epoll、BSD 系统中的 kqueue 等高效 I/O 多路复用机制,实现对大量并发连接的高效处理。其最初的设计目标就是解决传统 Web 服务器在高并发场景下的性能瓶颈,即著名的 C10K 问题(同时处理一万个并发连接)。
1.2 核心架构与技术特点
Nginx 主要具备以下技术特性:
- Master-Worker 多进程架构:Master 进程负责管理配置、维护 Worker 进程及处理信号;Worker 进程负责实际的网络连接和请求处理。多进程模型能够提高服务稳定性,并降低单个进程故障对整体服务的影响。
- 事件驱动与非阻塞 I/O:通过事件循环和 I/O 多路复用机制,高效处理大量并发连接,减少线程或进程切换带来的资源开销。
- 模块化设计:通过模块扩展 HTTP、代理、缓存、日志、访问控制等功能,便于根据业务需求进行功能定制。
- 高性能与低资源消耗:针对高并发、静态资源访问和网络代理等场景进行了优化,在合理配置和硬件条件下,能够以较低的资源开销处理大量请求。
- 稳定性与可维护性:支持配置热加载、平滑升级以及 Worker 进程异常退出后的自动拉起,有利于提高服务的可用性。
1.3 主要功能与应用场景
Nginx 不仅可以作为 Web 服务器托管静态资源,还提供多种网络服务能力:
- HTTP Web 服务器:提供 HTML、CSS、JavaScript、图片等静态资源的访问服务。
- 反向代理服务器:接收客户端请求,并将请求转发至后端应用服务器,隐藏后端服务拓扑。
- 负载均衡器:将请求分发至多个后端节点,提高系统的吞吐能力和可用性。
- HTTP 缓存服务器:缓存后端响应内容,减少后端压力并降低响应延迟。
- 邮件代理服务器:支持 IMAP、POP3、SMTP 等邮件协议的代理功能。
- 流量控制与访问管理:支持访问限制、连接数控制、请求速率限制等功能,可用于提升服务安全性和稳定性。
二、Nginx的作用
2.1 正向代理
比如翻墙 :一般情况下,用户需要去看youtube,这个时候是需要用到vpn的,客户端通过代理服务器发请求到vpn服务器上,间接通过vpn就能看到国外的yuutube网站了 正向代理是代理客户端的

2.2 反向代理
比如访问百度 :一般情况下,百度的服务器肯定是不止一台的,在多个用户同时访问的情况下,每个用户访问的服务器是不一样的,比如有北京的服务器、深圳的服务器等等,比如 访问www.baidu.com,用户访问的只是一个域名,后端是有多台服务器的,用户的访问是没有感知的,不知道访问的是具体哪台服务器 反向代理是代理客户端的

记忆口诀
正向代理靠近客户端,代理客户端;反向代理靠近服务器,代理服务端。
2.3 理解负载均衡

nginx有两种负载均衡的策略:内置策略和扩展策略。内置策略为轮询,加权轮询,Iphash。扩展策略
1、轮询
第一次请求是服务器A,第二次服务器B、第三次是服务器C、第四次是服务器A等等,以此类推

2、加权轮询
哪个服务器资源多一些,权重就会高一些,那么请求的数量也会大一些

2.4 动静分离
静态网站和动态网站,有些静态网站是可以不用经过后台服务器去处理的(比如:css、html、jpg、js等等),这些文件是静态的;动态网站是需要把网页中的数据通过服务器端加载显示出来的,这样动静分离之后,可以提高服务器的响应速度

三、Nginx安装编译依赖
Nginx 编译需要 GCC、Make 以及相关开发库。
yum install -y gcc gcc-c++ make \
zlib-devel \
openssl-devel \
pcre2-devel
依赖说明:
| 依赖 | 作用 |
|---|---|
| gcc | C 编译器 |
| gcc-c++ | C++ 编译器 |
| make | 执行编译 |
| pcre2-devel | 支持正则表达式及 Rewrite 模块 |
| zlib-devel | 支持 Gzip 压缩 |
| openssl-devel | 支持 HTTPS 和 SSL/TLS |
注意: 如果缺少
pcre2-devel,执行./configure时可能出现HTTP rewrite module requires the PCRE library错误。
3.1、上传并解压 Nginx 安装包
将 Nginx 安装包上传至服务器,例如:
nginx-1.30.4.tar.gz
进入安装包所在目录:
cd /usr/local/src
解压安装包:
tar -zxvf nginx-1.30.4.tar.gz
进入源码目录:
cd nginx-1.30.4
参数说明:
| 参数 | 作用 |
|---|---|
-z |
通过 gzip 解压 |
-x |
解包 |
-v |
显示详细过程 |
-f |
指定文件 |
3.2、配置编译参数
执行 configure 生成 Makefile:
bash
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gzip_static_module
# 注释
./configure \
--prefix=/usr/local/nginx \ # 指定 Nginx 安装根目录
--sbin-path=/usr/local/nginx/sbin/nginx \ # 指定 Nginx 主程序路径
--conf-path=/usr/local/nginx/conf/nginx.conf \ # 指定主配置文件路径
--pid-path=/usr/local/nginx/logs/nginx.pid \ # 指定 PID 文件路径
--error-log-path=/usr/local/nginx/logs/error.log \ # 指定错误日志路径
--http-log-path=/usr/local/nginx/logs/access.log \ # 指定访问日志路径
--with-http_ssl_module \ # 启用 HTTPS(SSL/TLS)模块
--with-http_v2_module \ # 启用 HTTP/2 模块
--with-http_gzip_static_module # 启用静态 Gzip 文件支持
主要参数说明:
| 参数 | 作用 |
|---|---|
--prefix |
指定 Nginx 安装目录 |
--sbin-path |
指定 Nginx 主程序路径 |
--conf-path |
指定配置文件路径 |
--pid-path |
指定 PID 文件路径 |
--error-log-path |
指定错误日志路径 |
--http-log-path |
指定访问日志路径 |
--with-http_ssl_module |
启用 HTTPS 支持 |
--with-http_v2_module |
启用 HTTP/2 模块 |
--with-http_gzip_static_module |
启用静态 Gzip 文件支持 |
配置成功后,通常会显示:
Configuration summary
+ using system PCRE2 library
+ using system OpenSSL library
+ using system zlib library
3.3、编译 Nginx
执行:
bash
make
编译成功后,执行安装:
bash
make install
3.4、验证安装结果
查看 Nginx 版本:
/usr/local/nginx/sbin/nginx -v
预期输出类似:
nginx version: nginx/1.30.4
检查编译参数:
/usr/local/nginx/sbin/nginx -V
查看安装目录:
ls -l /usr/local/nginx
常见目录结构:
/usr/local/nginx/
├── conf/ # 配置文件
├── html/ # 默认网站目录
├── logs/ # 日志文件
└── sbin/ # Nginx 主程序
说明: 本笔记仅包含 Nginx Tar 包的解压、依赖安装、编译、安装和结果验证,不涉及服务启动、开机自启及业务配置。
nginx.conf详细配置注释
bash
# ==============================
# 1. 全局配置模块(Main)
# ==============================
# 指定 Nginx Worker 进程运行的用户和用户组
#
# 格式:
# user 用户名 [用户组];
# 默认情况下该指令被注释。
# 如果未指定,Nginx 通常使用编译时指定的默认用户。
# 生产环境中通常建议创建专用的 nginx 用户,
# 并按照最小权限原则进行配置。
# user nginx;
# 指定 Worker 进程数量
#
# Worker 进程负责实际处理客户端连接、
# 接收请求以及返回响应。
# 1 表示只启动 1 个 Worker 进程。
# 生产环境通常可以使用:
# worker_processes auto;
# auto 会根据 CPU 核心数自动设置 Worker 进程数量。
worker_processes 1;
# 指定错误日志文件路径及日志级别
#
# 错误日志用于记录 Nginx 运行过程中出现的异常和错误,例如:
# - 配置文件错误
# - 连接后端服务器失败
# - 客户端连接异常
# - 权限不足
# - Worker 进程异常
# 日志级别从低到高通常包括:
# debug、info、notice、warn、error、crit、alert、emerg
# 日志级别越低,记录的信息越详细。
# logs/error.log 是相对路径,
# 通常相对于 Nginx 安装目录 prefix 解析。
# 以下配置默认被注释:
# error_log logs/error.log;
# error_log logs/error.log notice;
# error_log logs/error.log info;
# 指定 Nginx 主进程 PID 文件路径
#
# PID 文件用于保存 Nginx Master 进程的进程号。
# 常见用途:
# - 管理 Nginx 进程
# - 停止或重载 Nginx
# - 通过脚本获取主进程 PID
# 例如:
# kill -QUIT $(cat /usr/local/nginx/logs/nginx.pid)
# 默认配置被注释:
# pid logs/nginx.pid;
# ==============================
# 2. events 模块
# ==============================
events {
# 设置单个 Worker 进程允许同时处理的最大连接数。
#
# worker_connections 1024 表示:每个 Worker 进程最多允许处理 1024 个连接。
# 注意:
# worker_connections 表示连接数上限,
# 不等于每秒请求数(QPS)。
# 如果启用了反向代理:
# 一个客户端连接可能对应:
# 1. 一个客户端连接
# 2. 一个到后端服务器的连接
# 因此,实际能够承载的客户端数量,
# 还取决于客户端连接与后端连接的数量关系。
# 实际最大连接数还受到以下因素影响:
# - 文件描述符限制
# - 操作系统内核参数
# - CPU 和内存
# - 网络带宽
# - 后端服务器处理能力
worker_connections 1024;
}
# ==============================
# 3. http 模块
# ==============================
http {
# 引入 MIME 类型配置文件
#
# MIME 类型用于告诉客户端:
# 当前响应内容属于什么类型。
# 常见 MIME 类型示例:
# text/html HTML 文件
# text/css CSS 文件
# application/javascript JavaScript 文件
# image/png PNG 图片
# mime.types 通常位于:
# /usr/local/nginx/conf/mime.types
# 当访问 HTML、CSS、JavaScript、图片等静态资源时,
# MIME 类型可以帮助浏览器正确识别响应内容。
include mime.types;
# 设置默认响应类型
#
# 如果 Nginx 无法根据文件扩展名匹配到对应的 MIME 类型,
# 则使用 application/octet-stream。
# application/octet-stream 通常表示通用二进制数据。
# 例如:
# 如果访问一个没有对应 MIME 类型的文件,
# Nginx 可能会使用该类型返回。
default_type application/octet-stream;
# ==============================
# 4. 日志格式配置
# ==============================
# 定义访问日志格式
#
# log_format 用于定义访问日志的记录格式。
# main 是日志格式名称,
# 后续可以通过 access_log 指令引用该格式。
# 下面的格式记录了常见的客户端请求信息:
# $remote_addr
# 客户端 IP 地址
# $remote_user
# 经过 HTTP Basic Auth 认证的用户名。
# 如果没有认证,通常为 -
# $time_local
# 服务器本地时间
# $request
# 客户端请求行,例如:
# GET /index.html HTTP/1.1
# $status
# HTTP 响应状态码,例如:
# 200、404、500
# $body_bytes_sent
# 发送给客户端的响应体字节数,
# 不包括响应头。
# $http_referer
# 请求来源页面,也就是 Referer 请求头。
# $http_user_agent
# 客户端 User-Agent 信息,
# 通常包含浏览器、操作系统等信息。
# $http_x_forwarded_for
# X-Forwarded-For 请求头。
# 常用于反向代理场景中传递客户端 IP。
# 注意:
# 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"';
# ==============================
# 5. 访问日志配置
# ==============================
# 指定访问日志文件和日志格式
#
# access_log 用于记录客户端访问 Nginx 的请求。
# 示例日志:
#
# 127.0.0.1 - - [15/Sep/2026:10:00:00 +0800]
# "GET /index.html HTTP/1.1" 200 615
# logs/host.access.log 是日志文件路径。
# main 是前面定义的日志格式名称。
# 当前配置默认被注释:
# access_log logs/host.access.log main;
# ==============================
# 6. 静态文件高效传输
# ==============================
# 启用 sendfile 零拷贝机制
#
# sendfile 可以利用操作系统提供的高效文件传输机制,
# 减少用户态和内核态之间的数据复制,
# 从而提高静态文件传输效率。
# 适用场景包括:
# - HTML
# - CSS
# - JavaScript
# - 图片
# - 视频
# - 其他静态文件
# 注意:
# sendfile 并不是所有场景下都能提升性能。
# 实际效果取决于操作系统、文件系统和业务场景。
sendfile on;
# TCP 数据包优化
#
# tcp_nopush 主要用于配合 sendfile,
# 尝试减少 TCP 数据包数量,
# 使响应头和文件数据更加合理地组织发送。
# 通常用于优化静态文件传输。
# 当前配置默认被注释:
# tcp_nopush on;
# ==============================
# 7. HTTP 长连接
# ==============================
# 设置 HTTP Keep-Alive 超时时间,单位为秒。
#
# 65 表示:
# HTTP 长连接在空闲 65 秒后关闭。
# HTTP 长连接可以复用同一个 TCP 连接,
# 避免频繁建立和关闭 TCP 连接,
# 从而降低连接建立开销。
# 注意:
# 这里的 65 秒是空闲超时时间,
# 不是请求处理时间限制。
keepalive_timeout 65;
# ==============================
# 8. Gzip 压缩
# ==============================
# 启用 Gzip 压缩
#
# Gzip 可以压缩响应内容,
# 减少网络传输数据量。
# 适用于:
# - HTML
# - CSS
# - JavaScript
# - JSON
# - XML
# - 其他文本类型内容
# 不建议对已经压缩的图片、视频等内容重复压缩。
# 当前配置默认被注释:
# gzip on;
# ==============================
# 9. server 模块
# ==============================
# 一个 server 块代表一个虚拟服务器。
# Nginx 可以在同一个配置文件中配置多个 server,
# 并根据客户端请求的 IP、端口和 Host 请求头,
# 选择匹配的 server。
# 常见用途:
# - 配置多个网站
# - 配置不同域名
# - 配置不同监听端口
# - 配置 HTTP 和 HTTPS 服务
server {
# 监听 80 端口
# 80 是 HTTP 默认端口。
# 客户端访问:
# http://服务器IP/
# 默认会连接服务器的 80 端口。
listen 80;
# 指定虚拟主机域名
#
# localhost 表示匹配 Host 为 localhost 的请求。
# 例如:
# http://localhost/
# 生产环境中通常改成实际域名:
#
# server_name www.example.com;
server_name localhost;
# ==============================
# 10. 当前虚拟主机的访问日志
# ==============================
# 指定当前 server 的访问日志文件。
# 当前配置默认被注释:
# access_log logs/host.access.log main;
# ==============================
# 11. location 请求匹配模块
# ==============================
# location 用于匹配客户端请求的 URI。
# / 表示匹配所有以 / 开头的普通请求,
# 是一个通用的前缀匹配规则。
# 例如:
# /
# /index.html
# /images/logo.png
# /test/a
# 这些请求都可以匹配到该 location。
location / {
# 指定静态资源根目录
#
# html 是相对路径,
# 通常相对于 Nginx 安装目录解析。
# 如果安装目录为:
# /usr/local/nginx
# 那么 html 通常对应:
# /usr/local/nginx/html
# 当客户端请求:
# /index.html
# Nginx 通常会尝试读取:
# /usr/local/nginx/html/index.html
root html;
# 指定默认首页文件
#
# 当客户端请求目录时,
# Nginx 会按照顺序查找以下文件:
# 1. index.html
# 2. index.htm
# 例如访问:
# http://localhost/
# Nginx 会尝试返回:
# /usr/local/nginx/html/index.html
# 如果文件不存在,
# 可能返回 403 或其他错误。
index index.html index.htm;
}
# ==============================
# 12. 错误页面配置
# ==============================
# 自定义错误页面
#
# 当 Nginx 返回以下状态码时:
# 500:服务器内部错误
# 502:网关错误,常见于反向代理连接后端失败
# 503:服务不可用
# 504:网关超时
# Nginx 会将错误页面内部映射到:
#
# /50x.html
# 注意:
# error_page 是内部错误页面映射,
# 不一定代表客户端发生了 HTTP 重定向。
error_page 500 502 503 504 /50x.html;
# 精确匹配 /50x.html
#
# = 表示精确匹配。
# 只有请求 URI 完全等于:
#
# /50x.html
# 才会匹配该 location。
location = /50x.html {
# 指定错误页面所在目录
#
# html 对应:
# /usr/local/nginx/html
root html;
}
# ==============================
# 13. 反向代理 PHP 示例
# ==============================
# 下面是一个将 PHP 请求转发给后端 Apache 的示例。
#
# 当前配置被注释,不会生效。
# location ~ \.php$ {
# # 将匹配到的 PHP 请求转发到:
# # http://127.0.0.1
#
# # 这里的 127.0.0.1:80
# # 通常表示本机 80 端口服务。
# proxy_pass http://127.0.0.1;
# }
# ==============================
# 14. FastCGI 配置示例
# ==============================
# 下面是将 PHP 请求转发给 PHP-FPM 的示例。
#
# 当前配置被注释,不会生效。
# location ~ \.php$ {
# # 指定 PHP 文件所在目录
# root html;
# # 将请求转发给 PHP-FPM
# # PHP-FPM 默认可能监听 127.0.0.1:9000
# fastcgi_pass 127.0.0.1:9000;
# # 指定默认 PHP 文件
# fastcgi_index index.php;
# # 设置 PHP 脚本的实际文件路径
# fastcgi_param SCRIPT_FILENAME
# /scripts$fastcgi_script_name;
# # 引入 FastCGI 通用参数
# include fastcgi_params;
# }
# ==============================
# 15. 禁止访问 .htaccess 文件
# ==============================
# Apache 常用的 .htaccess 文件用于目录级配置。
# 如果 Apache 和 Nginx 使用相同的网站目录,
# 可能需要禁止客户端直接访问 .htaccess 文件。
# 当前配置被注释:
# location ~ /\.ht {
# # 拒绝所有访问
# deny all;
# }
}
# ==============================
# 16. 其他虚拟主机示例
# ==============================
# 下面是另一个虚拟主机示例。
#
# 当前配置被注释,不会生效。
# 可以通过不同的端口和域名,
# 配置多个独立的网站。
# server {
# # 监听 8000 端口
# listen 8000;
# # 监听指定域名的 8080 端口
# listen somename:8080;
# # 配置虚拟主机名称
# server_name somename alias another.alias;
# # 配置网站根目录
# location / {
# root html;
# index index.html index.htm;
# }
# }
# ==============================
# 17. HTTPS 服务器示例
# ==============================
# 下面是 HTTPS 虚拟主机示例。
#
# 当前配置被注释,不会生效。
# 启用 HTTPS 通常需要:
# - 监听 443 端口
# - 配置 SSL/TLS 证书
# - 配置证书私钥
# - 根据实际需求配置 TLS 参数
# server {
# # 监听 443 端口并启用 SSL
# listen 443 ssl;
# # 指定 HTTPS 域名
# server_name localhost;
# # SSL/TLS 证书文件
# ssl_certificate cert.pem;
# # SSL/TLS 私钥文件
# ssl_certificate_key cert.key;
# # SSL 会话缓存
# ssl_session_cache shared:SSL:1m;
# # SSL 会话超时时间
# ssl_session_timeout 5m;
# # 指定密码套件
# ssl_ciphers HIGH:!aNULL:!MD5;
# # 是否优先使用服务端密码套件顺序
# ssl_prefer_server_ciphers on;
# # HTTPS 网站根目录
# location / {
# root html;
# index index.html index.htm;
# }
# }
}
生产配置建议
bash
cat > /usr/lib/systemd/system/nginx.service <<'EOF'
[Unit]
Description=Nginx Web Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
===================================注释版本======================================================
# ==============================
# Nginx Systemd 服务配置文件
# 文件位置:
# /usr/lib/systemd/system/nginx.service
# ==============================
[Unit]
# 服务描述信息
Description=Nginx Web Server
# 定义启动顺序
# nginx 在网络、远程文件系统、DNS解析服务之后启动
After=network.target remote-fs.target nss-lookup.target
[Service]
# nginx 启动后会进入后台运行(fork)
# systemd通过PID文件管理主进程
Type=forking
# 指定 nginx 主进程 PID 文件位置
# 源码安装默认生成:
# /usr/local/nginx/logs/nginx.pid
PIDFile=/usr/local/nginx/logs/nginx.pid
# 启动 nginx 前执行配置检测
# 等同于:
# nginx -t
#
# 如果配置文件错误,则不会启动 nginx
ExecStartPre=/usr/local/nginx/sbin/nginx -t
# 启动 nginx
# 等同于手动执行:
# /usr/local/nginx/sbin/nginx
ExecStart=/usr/local/nginx/sbin/nginx
# 重新加载 nginx 配置
# 不停止服务,只重新读取配置
#
# 等同于:
# nginx -s reload
#
# 常用于修改 nginx.conf 后生效
ExecReload=/usr/local/nginx/sbin/nginx -s reload
# 优雅停止 nginx
# 等待已有连接处理完成后退出
#
# 等同于:
# nginx -s quit
ExecStop=/usr/local/nginx/sbin/nginx -s quit
# 给 nginx 创建独立临时目录
# 提高安全性
PrivateTmp=true
# nginx异常退出时自动重启
#
# 例如:
# nginx进程崩溃
# kill异常结束
#
# systemd会自动重新启动服务
Restart=on-failure
[Install]
# 设置服务启动级别
#
# multi-user.target:
# 类似Linux普通运行级别3
# 表示系统进入多用户模式后自动启动
#
# 配合:
# systemctl enable nginx
#
# 实现开机自动启动
WantedBy=multi-user.target
3.5 常用命令
bash
# 启动
/usr/local/nginx/sbin/nginx
# 停止
/usr/local/nginx/sbin/nginx -s stop
# 优雅停止
/usr/local/nginx/sbin/nginx -s quit
# 重栽配置
/usr/local/nginx/sbin/nginx -s reload
# 测试配置
/usr/local/nginx/sbin/nginx -t
测试访问
