1、环境

系统版本:Centos 7.9.2009

Nginx版本为:nginx-1.20.2.tar.gz

在安装Nginx之前,我们需要确保安装Nginx所依赖的其他程序,执行下面的命令,安装或更新相应的程序

1 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel

执行完成后,如果之前未安装的,则会自动安装,如果之前已经安装有旧的版本,则会被新的版本代替

 

 

2、下载

下载地址:http://nginx.org/download/nginx-1.20.2.tar.gz

假设,我们把文件下载到 /root 下面

cd /root/        #进入到/root目录
wget http://nginx.org/download/nginx-1.20.2.tar.gz   #将文件下载到当前目录

 

3、解压

1

使用命令进入到 解压的目录

1 cd /usr/local/          #进入到 /usr/local/ 目录 
2 ls          #查看解压后的名称,可以查看到 多了一个目录为 nginx-1.20.2 的目录 
3 cd nginx-1.20.2       #进入 名称为 nginx-1.20.2 的目录

 

4、安装

再使用 ls 可以看到 目录下有 configure 的可执行文件,这个文件的作用,就是根据你系统的情况,生成makefile的,以便于下一步的编译和安装

1

执行完成后,下一步便是编译和安装了

1 make
2 make install   
3 #这两行可以分开执行,也可以在同一行执行
4 #同一行执行,则是:make && make install

到此便已经是安装完成了。

 

5、自启动

很多时候,我们为了方便管理,在服务器重启后,需要nginx自动启动,那么我们可以添加 nginx 的服务

1 vi

nginx 的服务文件配置可参考如下:

1 [Unit]
 2 Description=nginx
 3 After=network.target
 4 
 5 [Service]
 6 Type=forking
 7 ExecStart=/usr/local/nginx/sbin/nginx
 8 ExecReload=/usr/local/nginx/sbin/nginx -s reload
 9 ExecStop=/usr/local/nginx/sbin/nginx -s stop
10 PrivateTmp=true
11 
12 [Install]
13 WantedBy=multi-user.target

 

完成后,按ESC键,输入:wq 保存并退出,上面的nginx 相应的目录,需要改为你自己的目录。

服务文件配置好了,接下来要把它添加到服务里面

1

执行完后,系统会在下方提示:

Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

看到这个,nginx 的服务 就已经完成添加,但这个时候,还没有启动的,我们可以通过下面的命令来操作nginx

1

 

如果是正在运行,则会输出:

● nginx.service - nginx
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since 三 2022-02-23 13:53:56 CST; 42min ago
Process: 15270 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
Main PID: 15271 (nginx)
CGroup: /system.slice/nginx.service
├─15271 nginx: master process /usr/local/nginx/sbin/nginx
└─15272 nginx: worker process

2月 23 13:53:56 cloudback systemd[1]: Starting nginx...
2月 23 13:53:56 cloudback systemd[1]: Started nginx.

 

其他命令

systemctl start nginx      #启动nginx 
systemctl stop nginx         #停止nginx 
systemctl reload nginx     #重新加载 nginx如

如果重新修改 nginx.service 配置文件后,则需要使用下面的命令来重新加载服务的配置文件

1

 

6、nginx 配置

使用这种安装方式,nginx的配置文件,通常会在 /usr/local/nginx/conf/nginx.conf 这个位置,我们可以通过 vi 或 vim 修改

1

 

我这里对日志的目录和站点的配置,作了修改:

1 #user  nobody;
 2 worker_processes  1;
 3 
 4 error_log   /var/log/nginx/error.log warn;               #日志目录
 5 #error_log  logs/error.log  notice;
 6 #error_log  logs/error.log  info;
 7 
 8 pid         /var/run/nginx.pid;
 9 
10 
11 events {
12     worker_connections  1024;
13 }
14 
15 
16 http {
17     include       /usr/local/nginx/conf/mime.types;
18     default_type  application/octet-stream;
19 
20     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
21                       '$status $body_bytes_sent "$http_referer" '
22                       '"$http_user_agent" "$http_x_forwarded_for"';
23 
24     access_log   /var/log/nginx/access.log  main;                #访问日志
25 
26     sendfile        on;
27     #tcp_nopush     on;
28 
29     #keepalive_timeout  0;
30     keepalive_timeout  65;      #长连接时间,秒数
31 
32     gzip  on;    #开启压缩
33 
34     include /usr/local/nginx/conf.d/*.conf;           #其他站点的配置,可以分多个文件,有利于管理
35 
36 }

 

conf.d 目录下的配置文件 示例:

1 # /usr/local/nginx/conf.d/demo.conf
 2 server {
 3     listen 80;
 4     client_max_body_size 10240M;
 5     location / {
 6         root /var/www/app/web/;
 7         proxy_pass http://localhost:8080;
 8         proxy_http_version 1.1;
 9         proxy_set_header Upgrade $http_upgrade;
10         proxy_set_header Connection keep-alive;
11         proxy_set_header Host $host;
12         proxy_cache_bypass $http_upgrade;
13         proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
14         proxy_set_header   X-Forwarded-Proto $scheme;
15         proxy_connect_timeout       3600;
16         proxy_send_timeout          3600;
17         proxy_read_timeout          3600;
18         send_timeout                3600;
19     }
20 }

 

 

欢迎讨论,欢迎指正,谢谢。