在今天的互联网世界中,Nginx已经成为了一款非常流行的Web服务器和反向代理服务器,它可以高效地处理大量并发连接,提高Web应用程序的性能和稳定性。在本篇文章中,我们将介绍如何通过源码安装Nginx,并且掌握常用的Nginx命令和配置文件的使用,以便更好地管理和部署Web应用程序。

通过两种方式安装nginx

通过命令安装nginx

命令一键安装nginx:

安装必要的依赖项

1
2
sudo apt-get update
sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

安装nginx

查看运行状态

1
systemctl status nginx

image-20230317203221667

查看版本信息

1
nginx -V

image-20230317203051313

输入IP就可以访问了

卸载nginx

1
apt-get --purge autoremove nginx
通过源码安装nginx

安装必要的依赖项

1
2
3
sudo apt-get update

sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

下载并解压Nginx源代码

1
2
3
wget https://nginx.org/download/nginx-1.22.1.tar.gz

tar -zxvf nginx-1.22.1.tar.gz

进入目录,查看参数

1
2
3
cd nginx-1.22.1

./configure --help

image-20230317204239979

按需要自行添加,这里我添加了一个ssl模块

1
./configure --prefix=/usr/local/nginx --with-http_ssl_module

image-20230317204855625

编译并安装:

1
2
3
make

sudo make install

进入目录启动nginx

1
2
3
cd /usr/local/nginx/sbin

./nginx
配置环境变量

将nginx配置到当前用户环境变量中:

打开终端并输入以下命令,找到Nginx可执行文件的路径:

1
sudo find / -name nginx

记下Nginx可执行文件的路径。例如,它可能位于/usr/local/nginx/sbin/nginx

打开.bashrc文件,并添加以下行:

1
2
3
sudo vim .bashrc # 根目录

export PATH="$PATH:/usr/local/nginx/sbin"

保存.bashrc文件并执行以下命令使更改生效:

1
source ~/.bashrc

需要注意的是,.bashrc 文件是用户级别的文件,只对当前用户生效。如果您需要设置系统范围的环境变量或命令别名,应该使用 /etc/profile 文件或其他系统范围的配置文件。

二选一(不推荐)

添加到全局的环境变量配置文件

1
2
3
4
sudo vim /etc/profile
# 添加下面代码
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin

重载profile文件

1
source /etc/profile

首先,export NGINX_HOME=/usr/local/nginx将Nginx的安装路径设置为/usr/local/nginx。这个路径可以根据您的实际安装路径进行修改。

接下来,export PATH=$PATH:$NGINX_HOME/sbin将Nginx可执行文件的路径添加到环境变量$PATH中,使得系统可以在任何位置找到该可执行文件。这里的$PATH是环境变量,它包含了一组目录路径,用于指示系统在哪些位置查找可执行文件。$NGINX_HOME/sbin是Nginx可执行文件的路径,它会被添加到$PATH变量的末尾。

这样做的好处是,您不必在每次使用Nginx时都输入完整的可执行文件路径。相反,您可以在终端中直接运行Nginx命令,系统会在环境变量中查找Nginx可执行文件的路径并执行它。

需要注意的是,这些命令是针对当前用户的。如果您希望在系统上所有用户中添加Nginx的路径,可以将这些命令添加到系统的环境变量文件中,例如/etc/profile/etc/environment。(来自Chat GPT解释)

创建服务文件

创建nginx.service服务文件

检查 Nginx 服务文件是否存在

1
ls /etc/systemd/system/nginx.service

image-20230317213437518

创建nginx.service文件

1
2
3
4
# 切换root用户
sudo su root
# 进入 /etc/systemd/system 目录
cd /etc/systemd/system

创建Nginx服务文件

1
sudo nano nginx.service

nginx.service内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=Nginx HTTP Server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop

[Install]
WantedBy=multi-user.target

  • [Unit]:包含关于服务的基本信息,比如服务名称、描述和启动顺序等。
  • [Service]:指定服务的类型、PID 文件位置和服务的执行命令等。
  • [Install]:指定服务应该在哪些 systemd 目标中启动。

保存文件并关闭编辑器,按 CTRL + O 并按 ENTER 保存更改,退出 CTRL + X

  1. 重新加载 systemd 守护进程,使用命令 sudo systemctl daemon-reload
  2. 重新启动 Nginx 服务,使用命令 sudo systemctl restart nginx
  3. 运行 systemctl status nginx 命令以确认服务是否已经正确启动。

image-20230317230101757

nginx常用命令

  1. 启动nginx服务:sudo systemctl start nginx
  2. 停止nginx服务:sudo systemctl stop nginx
  3. 重启nginx服务:sudo systemctl restart nginx
  4. 查看nginx状态:sudo systemctl status nginx
  5. 重新加载nginx配置文件:sudo nginx -s reload
  6. 测试nginx配置文件语法是否正确:sudo nginx -t
  7. 查看nginx版本号:nginx -v
  8. 查看nginx编译时的配置参数:nginx -V
  9. 在nginx中开启一个新的worker进程:sudo nginx -s reopen
  10. 停止接收新的请求,等待所有请求处理完成后退出:sudo nginx -s quit

nginx的配置文件路径为:/etc/nginx/nginx.conf

nginx的默认文档根目录是/usr/share/nginx/html/,该目录下的文件和目录可以直接被访问。

nginx日志文件路径为/var/log/nginx,包含access.log和error.log两个文件。

在配置nginx之前,需要先确保nginx已经安装,可以使用sudo apt install nginx命令安装nginx。默认情况下,nginx安装后会自动启动,可以使用sudo systemctl status nginx命令查看nginx的状态。

在进行nginx配置时,可以先备份原有的nginx.conf文件,然后修改新的配置文件,然后使用sudo nginx -t命令测试配置文件的语法是否正确,如果正确就使用sudo systemctl reload nginx命令重新加载配置文件。

nginx的详细使用教程和配置文件语法可以参考nginx官方文档。