跳转至

Rocky Linux 9.3 安装 Nginx

约 649 个字 175 行代码 预计阅读时间 4 分钟

一、使用dnf安装Nginx

使用dnf info命令检查程序仓库中是否有nginx,如下:

dnf info nginx
执行示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ dnf info nginx
Rocky Linux 9 - BaseOS                          631 kB/s | 2.2 MB     00:03    
Rocky Linux 9 - AppStream                       3.3 MB/s | 7.4 MB     00:02    
Rocky Linux 9 - Extras                           10 kB/s |  14 kB     00:01    
可安装的软件包
名称         : nginx
时期         : 1
版本         : 1.20.1
发布         : 14.el9_2.1
架构         : x86_64
大小         : 36 k
           : nginx-1.20.1-14.el9_2.1.src.rpm
仓库         : appstream
概况         : A high performance web server and reverse proxy server
URL          : https://nginx.org
协议         : BSD
描述         : Nginx is a web server and a reverse proxy server for HTTP, SMTP,
             : POP3 and IMAP protocols, with a strong focus on high concurrency,
             : performance and low memory usage.
使用dnf install命令安装Nginx,如下:
sudo dnf install nginx
在出现提示,需要确认时,输入y确认,即可。 执行示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ sudo dnf install nginx

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] fotianmoyin 的密码:
Rocky Linux 9 - BaseOS                                         2.2 kB/s | 4.1 kB     00:01    
Rocky Linux 9 - AppStream                                      3.7 kB/s | 4.5 kB     00:01    
Rocky Linux 9 - Extras                                         2.4 kB/s | 2.9 kB     00:01    
依赖关系解决。
===============================================================================================
 软件包                    架构           版本                         仓库               大小
===============================================================================================
安装:
 nginx                     x86_64         1:1.20.1-14.el9_2.1          appstream          36 k
安装依赖关系:
 nginx-core                x86_64         1:1.20.1-14.el9_2.1          appstream         565 k
 nginx-filesystem          noarch         1:1.20.1-14.el9_2.1          appstream         8.5 k
 rocky-logos-httpd         noarch         90.15-2.el9                  appstream          24 k

事务概要
===============================================================================================
安装  4 软件包

总下载:634 k
安装大小:1.8 M
确定吗?[y/N] y
下载软件包:
(1/4): rocky-logos-httpd-90.15-2.el9.noarch.rpm                 94 kB/s |  24 kB     00:00    
(2/4): nginx-filesystem-1.20.1-14.el9_2.1.noarch.rpm            30 kB/s | 8.5 kB     00:00    
(3/4): nginx-1.20.1-14.el9_2.1.x86_64.rpm                      115 kB/s |  36 kB     00:00    
(4/4): nginx-core-1.20.1-14.el9_2.1.x86_64.rpm                 3.7 MB/s | 565 kB     00:00    
-----------------------------------------------------------------------------------------------
总计                                                           411 kB/s | 634 kB     00:01     
Rocky Linux 9 - AppStream                                      1.6 MB/s | 1.7 kB     00:00    
导入 GPG 公钥 0x350D275D:
 Userid: "Rocky Enterprise Software Foundation - Release key 2022 <releng@rockylinux.org>"
 指纹: 21CB 256A E16F C54C 6E65 2949 702D 426D 350D 275D
 来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
确定吗?[y/N] y
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                1/1 
  运行脚本: nginx-filesystem-1:1.20.1-14.el9_2.1.noarch                                    1/4 
  安装    : nginx-filesystem-1:1.20.1-14.el9_2.1.noarch                                    1/4 
  安装    : nginx-core-1:1.20.1-14.el9_2.1.x86_64                                          2/4 
  安装    : rocky-logos-httpd-90.15-2.el9.noarch                                           3/4 
  安装    : nginx-1:1.20.1-14.el9_2.1.x86_64                                               4/4 
  运行脚本: nginx-1:1.20.1-14.el9_2.1.x86_64                                               4/4 
  验证    : rocky-logos-httpd-90.15-2.el9.noarch                                           1/4 
  验证    : nginx-filesystem-1:1.20.1-14.el9_2.1.noarch                                    2/4 
  验证    : nginx-1:1.20.1-14.el9_2.1.x86_64                                               3/4 
  验证    : nginx-core-1:1.20.1-14.el9_2.1.x86_64                                          4/4 

已安装:
  nginx-1:1.20.1-14.el9_2.1.x86_64                  nginx-core-1:1.20.1-14.el9_2.1.x86_64      
  nginx-filesystem-1:1.20.1-14.el9_2.1.noarch       rocky-logos-httpd-90.15-2.el9.noarch       

完毕!

二、启用nginx服务

运行如下命令,开机启用nginx服务:

sudo systemctl enable nginx
执行示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ sudo systemctl enable nginx
[sudo] fotianmoyin 的密码:
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service  /usr/lib/systemd/system/nginx.service.
执行如下命令,启动nginx服务:
sudo systemctl start nginx
执行如下命令,查看nginx服务状态:
systemctl status nginx
执行示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ systemctl status nginx
 nginx.service - The nginx HTTP and reverse proxy server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)
     Active: active (running) since Fri 2024-02-23 14:28:31 CST; 1min 17s ago
    Process: 29048 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
    Process: 29049 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
    Process: 29050 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
   Main PID: 29051 (nginx)
      Tasks: 3 (limit: 11018)
     Memory: 2.8M
        CPU: 26ms
     CGroup: /system.slice/nginx.service
             ├─29051 "nginx: master process /usr/sbin/nginx"
             ├─29052 "nginx: worker process"
             └─29053 "nginx: worker process"

2月 23 14:28:31 fotianmoyin-rl systemd[1]: Starting The nginx HTTP and reverse proxy server...
2月 23 14:28:31 fotianmoyin-rl nginx[29049]: nginx: the configuration file /etc/nginx/nginx.co>
2月 23 14:28:31 fotianmoyin-rl nginx[29049]: nginx: configuration file /etc/nginx/nginx.conf t>
2月 23 14:28:31 fotianmoyin-rl systemd[1]: Started The nginx HTTP and reverse proxy server.
通过Active字段值active (running)可知nginx服务已经运行了。

三、nginx服务管理命令

开机时启用nginx服务:

sudo systemctl enable nginx
开机时停用nginx服务:
sudo systemctl disable nginx
查看nginx服务是否开机启动:
systemctl is-enabled nginx
启动nginx服务:
sudo systemctl start nginx
停止nginx服务:
sudo systemctl stop nginx
重启nginx服务:
sudo systemctl restart nginx
不停止nginx服务,重新加载配置:
sudo systemctl reload nginx

四、调整防火墙

查看防火墙服务状态:

systemctl status firewalld
执行示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ systemctl status firewalld
 firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
     Active: active (running) since Fri 2024-02-23 13:48:15 CST; 1h 6min ago
       Docs: man:firewalld(1)
   Main PID: 717 (firewalld)
      Tasks: 2 (limit: 11018)
     Memory: 42.1M
        CPU: 640ms
     CGroup: /system.slice/firewalld.service
             └─717 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid

2月 23 13:48:14 fotianmoyin-rl systemd[1]: Starting firewalld - dynamic firewall daemon...
2月 23 13:48:15 fotianmoyin-rl systemd[1]: Started firewalld - dynamic firewall daemon.
可以看到防火墙服务状态为启用,执行以下命令,查看以下防火墙允许列表:
sudo firewall-cmd --permanent --list-all
执行示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --permanent --list-all
[sudo] fotianmoyin 的密码:
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
可以看到在默认启动防火墙后,http服务或者80端口没有在允许列表,执行以下命令,将http服务添加到防火墙允许列表:
sudo firewall-cmd --permanent --add-service=http
执行示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --permanent --add-service=http
success
再次查看防火墙允许列表,示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --permanent --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client http ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
http服务已经添加到了防火墙允许服务的列表。执行如下命令,重新加载防火墙配置:
sudo firewall-cmd --reload
执行示例:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --reload
success
查看服务器外网IP可以通过如下命令:
curl -4 icanhazip.com
用浏览器访问虚拟机地址i,可以看到如下界面: nginx_welcom

五、Nginx 重要文件和目录简介

1、内容目录

  • /usr/share/nginx/html:

    实际的网页内容,默认情况下只包含您之前看到的默认 Nginx 页面,由 /usr/share 提供/nginx/html 目录。这可以通过更改 Nginx 配置文件来更改。

2、服务器配置

  • /etc/nginx:

    Nginx配置目录。所有 Nginx 配置文件都驻留在此处。

  • /etc/nginx/nginx.conf:

    主要的Nginx配置文件。这可以修改以更改 Nginx 全局配置。

  • /etc/nginx/conf.d/:

    此目录包含服务器块配置文件,您可以在其中定义托管在 Nginx 中的网站。一种典型的方法是将每个网站放在一个单独的文件中,该文件以网站的域名命名,例如 your_domain.conf。

3、服务器日志

  • /var/log/nginx/access.log:

    对您的网络服务器的每个请求都会记录在此日志文件中,除非 Nginx 配置为不这样做。

  • /var/log/nginx/error.log:

    任何 Nginx 错误都将记录在此日志中。