找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 103|回复: 5

[建站] AlmaLinux 9.4 安装 Nginx 1.26.2

[复制链接]
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
发表于 2024-11-10 01:22:52 | 显示全部楼层 |阅读模式
宝塔安装Nginx位置
Nginx通常会被安装在默认的位置,例如 /www/server/nginx 或 /usr/local/nginx
查找Nginx的配置文件:
nginx -t
这将显示Nginx的配置文件路径,通常配置文件位于安装目录下的conf文件夹内。
这个命令会检查配置文件的正确性,并且如果有错误,会提示你如何修正。如果没有错误,它会显示配置文件的路径。


gedit /www/server/nginx/conf/nginx.conf

Nginx的运行端口可以通过修改配置文件中的listen指令来改变,通常在server块内指定端口、重新加载配置文件和重启Nginx服务。首先找到Nginx的配置文件nginx.conf
找到listen指令并修改端口号。例如,将默认的80端口改为8080,将listen 80;改为listen 8080;。修改完成后,要重新加载配置文件或重启Nginx服务,以使变更生效。 重启Nginx时要确保新的端口没有被其他服务占用,并且Nginx有权限绑定使用该端口。

检查 "server" 指令是否被放置在了正确的上下文中。通常,"server" 指令应该在 http 块内,而不是在 http 块外,或者在另一个 server 块内部。


重载或重启 Nginx
配置正确无误后,可以重载Nginx来应用新配置,而不必完全重启服务。重载命令会启动新的工作进程并平滑关闭旧的工作进程:
systemctl reload nginx

或者使用Nginx自己的命令进行重载:
nginx -s reload

如果需要,也可以完全重启Nginx服务,但这将中断当前的连接:
systemctl restart nginx

或者:
service nginx restart

五、 验证端口更改
重启Nginx后,可以使用netstat或ss命令来确认Nginx是否在新的端口上监听:
netstat -plntu | grep nginx

或者
ss -plntu | grep nginx
确保输出中显示了新的端口号。


nginx配置文件有错误
运行下面命令查看修改
nginx -t

2.已经启动nginx或者配置文件中的端口号被占用
    检查端口是否被占用
netstat -tnlp

如果端口已经被占用,自己权衡一下是换个端口还是把占用端口的进程杀掉
    检查nginx是否已经启动
ps -aux | grep nginx
ps ajx | grep nginx

如果已经启动使用下面命令干掉即可
pkill -9 nginx


  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-10 01:23:46 | 显示全部楼层
在AlmaLinux 9.4上安装Nginx 1.26.2,你可以按照以下步骤操作:
    首先,确保你的系统是最新的,并且已经安装了EPEL仓库,可以使用以下命令:
sudo dnf update -y
sudo dnf install epel-release -y

    接下来,添加Nginx的官方仓库,并从该仓库安装Nginx:
sudo tee /etc/yum.repos.d/nginx.repo <<EOL
[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/rhel/9/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOL

查看版本
yum list nginx

    安装Nginx:
sudo dnf install nginx -y

尝试重新启动Nginx服务:sudo systemctl restart nginx 或 sudo service nginx restart。
如果Nginx服务不是通过系统服务管理器启动的,请直接使用Nginx的命令行工具,例如nginx或nginx -s reload来启动或重载配置。



    启动并设置Nginx开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx

    验证Nginx版本:
nginx -v

查看Nginx运行状态(按Q退出)
systemctl status nginx.service

如果一切进展顺利的话,现在你可以通过你的域名或IP来访问你的Web页面来预览一下Nginx的默认页面;

    以下是nginx相关的验证命令及启动命令:
版本查看 nginx -v
测试命令 nginx -t
启动 nginx
关闭停止 nginx -s quit
修改nginx.conf之后,可以重载 nginx -s reload
强制停止 nginx -s stop

    以下是Nginx的默认路径:
(1) Nginx配置目录:/etc/nginx
(2) PID文件:/var/run/nginx.pid
(3) 错误日志文件:/var/log/nginx/error.log
(4) 访问日志文件:/var/log/nginx/access.log
    默认站点目录:/usr/share/nginx/html
    Nginx全局配置文件:/etc/nginx/nginx.conf
    默认站点配置文件: /etc/nginx/conf.d/default.conf

事实上,只需知道Nginx配置路径,
其他路径均可在/etc/nginx/nginx.conf
以及 /etc/nginx/conf.d/default.conf 中查询到.


要卸载nginx,你需要根据你的操作系统使用相应的包管理器。
对于基于RPM的系统(如CentOS),使用yum或dnf:
sudo yum remove nginx
# 或者
sudo dnf remove nginx

对于基于Debian的系统(如Ubuntu),使用apt:
sudo apt-get remove nginx nginx-common

对于macOS,如果你使用Homebrew安装nginx:
brew uninstall nginx
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-10 03:55:09 | 显示全部楼层

默认配置文件

# 定义 Nginx 运行的用户和用户组
user  nginx;
#nginx进程数,建议设置为等于CPU总核心数。
worker_processes  auto;

# 指定工作模式和连接数上限
events {
    worker_connections  1024;
}
#指定nginx进程运行文件存放地址
pid        /var/run/nginx.pid;
#定位全局错误日志文件,级别。这个设置可以放入全局块,http块,server块。
#级别以此为:debug|info|notice|warn|error|crit|alert|emerg。
#debug输出最多,crir输出最少,根据实际环境而定
error_log  /var/log/nginx/error.log notice;

# 指定 HTTP 服务器配置
http {
    #文件扩展名与文件类型映射表
    include       /etc/nginx/mime.types;

    #默认文件类型,默认为text/plain
    default_type  application/octet-stream;
    #自定义格式,main为日志格式的名称,可自行设置,后面引用
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    #引用日志main格式   
    access_log  /var/log/nginx/access.log  main;
    #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
    sendfile        on;
    #连接超时时间,默认为75s,0;  无限时间,可以在http,server,location块。
    keepalive_timeout  65;
    #开启gzip压缩
    #gzip  on;
    # 包含其他的配置文件    include /etc/nginx/conf.d/*.conf;
    #配置虚拟主机的相关参数
    server {
    listen       7777;
    server_name  127.0.0.1;


    location / {
        root   /usr/share/nginx/html; #服务默认启动目录
        index  index.html index.htm; # 默认的首页文件,多个用空格分开
        try_files $uri $uri/ /404.html;
    }

    # 定义错误页面
    error_page  404              /404.html;
        location = /40x.html {
    }

    error_page   500 502 503 504  /50x.html; # 出现对应的http状态码时,使用50x.html回应客户
        location = /50x.html { # location区块开始,访问50x.html
   root   /usr/share/nginx/html; # 指定对应的站点目录为html
    }
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}
}
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-10 04:14:03 | 显示全部楼层
nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)
该错误消息通常表示 Nginx 在启动过程中无法找到指定路径的日志文件或进程号文件。
这个问题可能有几种原因和解决方法:
1. 确保 Nginx 配置文件中的日志路径正确。在 Nginx 配置文件中查找 `error_log` 和 `pid` 配置指令,并检查路径是否正确。例如:
error_log /var/log/nginx/error.log;
pid       /var/run/nginx.pid;

确保这些路径存在,并且 Nginx 有相应的权限来访问它们。可以使用 `ls` 命令验证路径是否存在。
2. 如果您在启动 Nginx 时遇到该错误消息,可能是因为 `/usr/local/nginx/logs/` 目录不存在。您可以尝试手动创建该目录,并确保其拥有适当的权限。使用以下命令创建目录:
sudo mkdir -p /usr/local/nginx/logs/
sudo mkdir -p /usr/local/nginx/sbin
sudo mkdir -p  /var/run/

手动创建该文件:sudo touch /var/run/nginx.pid

然后,确保该目录对 Nginx 可写:
sudo chown -R 777 /usr/local/nginx/logs/
sudo chown -R 777 /usr/local/nginx/sbin

请注意,上述命令的用户和组可能因您的系统而异。如果不确定,请参考您的 Nginx 配置文件中的用户和组设置。
确保Nginx用户有权限读取和写入PID文件:

sudo chmod 644 /var/run/nginx.pid

3. 如果找不到 pid 文件,您可以尝试在命令行中指定一个自定义的 pid 文件路径。例如:
cd /usr/local/nginx/sbin
./nginx -p /usr/local/nginx -c /usr/local/nginx/conf/nginx.conf -g 'pid /var/run/nginx.pid;
此命令将指定 pid 文件的路径为 `/var/run/nginx.pid`。确保您选择的路径对 Nginx 是可写的。

Nginx尝试从它的PID文件/var/run/nginx.pid读取进程ID(PID),但是文件中并没有发现有效的PID数字。这通常发生在Nginx进程没有正常运行,或者PID文件被意外删除的情况下。
  检查nginx是否已经启动
ps -aux | grep nginx

如果已经启动使用下面命令干掉即可
pkill -9 nginx
nginx重启:
    nginx -s reload
nginx -s stop : 快速停止nginx
nginx -s quit :完整有序的停止nginx
nginx启动
nginx

看是否有nginx进程:
    netstat -anput | grep nginx
netstat -tulpn | grep nginx

查看服务器端口占用情况:
    netstat -ntlp
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-10 05:05:53 | 显示全部楼层
nginx禁止ip访问80端口
解决方法
先来配置80端口的
打开Nginx的配置文件:
gedit /etc/nginx/nginx.conf
增加以下代码片段
server
    {
        listen 80 default;
        return 403;
    }

最后重载配置即可

明明修改了nginx.conf的端口号,启动依然提示端口被占用
80端口启动nginx服务器是提示端口被占用的错误,修改了nginx.conf中的监听端口号依然无效。
后来在一篇文章中找到了答案,要修改以下目录中的default快捷链接,把里面的80端口号修改为其他端口号,nginx就不占用80端口
gedit /etc/nginx/conf.d/default.conf

pkill -9 nginx
nginx -s quit
nginx
netstat -tulpn | grep nginx
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-10 06:05:13 | 显示全部楼层
1.HTTP协议代理服务器常用端口号:80/8080/3128/8081/9098

2.SOCKS代理协议服务器常用端口号:1080

3.FTP(文件传输)协议代理服务器常用端口号:21

4.Telnet(远程登录)协议代理服务器常用端口号:23

5.HTTP服务器,默认端口号为80/tcp(木马Executor开放此端口)

6.HTTPS(securely transferring web pages)服务器,默认端口号为443/tcp 443/udp

7.Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口)

8.FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口)

9.TFTP(Trivial File Transfer Protocol),默认端口号为69/udp

10.SSH(安全登录)、SCP(文件传输)、端口号重定向,默认的端口号为22/tcp

11.SMTP Simple Mail Transfer Protocol(E-mail),默认端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口)

12.POP3 Post Office Protocol(E-mail),默认端口号为110/tcp

13.Webshpere应用程序,默认端口号为9080

14.webshpere管理工具,默认端口号9090

15.JBOSS,默认端口号为8080

16.TOMCAT,默认端口号为8080

17.WIN2003远程登录,默认端口号为3389

18.Symantec AV/Filter for MSE,默认端口号为 8081

19.Oracle 数据库,默认的端口号为1521

20.ORACLE EMCTL,默认的端口号为1158

21.Oracle XDB(XML 数据库),默认的端口号为8080

22.Oracle XDB FTP服务,默认的端口号为2100

23.MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp

24.MS SQL*SERVER数据库monitor,默认的端口号为1434/tcp 1434/udp

25.Kibana 配置项,server.port:默认的端口号为5601
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2026-5-13 19:35 , Processed in 0.047622 second(s), 24 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表