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 }
欢迎讨论,欢迎指正,谢谢。