HCRM博客

如何正确在CentOS上安装Nginx?

nginx在CentOS上的安装步骤

准备工作

1、检查系统环境

如何正确在CentOS上安装Nginx?-图1
(图片来源网络,侵权删除)

确保你的CentOS版本为7或更高。

确保系统中没有其他服务占用80和443端口,如Apache。

2、更新系统软件包

```bash

sudo yum update y

```

如何正确在CentOS上安装Nginx?-图2
(图片来源网络,侵权删除)

3、安装EPEL源

EPEL(Extra Packages for Enterprise Linux)提供了许多额外的软件包,包括Nginx。

```bash

sudo yum install epelrelease y

```

安装Nginx所需的依赖库

Nginx需要一些依赖库才能正常运行,以下是安装这些依赖的命令:

如何正确在CentOS上安装Nginx?-图3
(图片来源网络,侵权删除)
命令 说明
sudo yum install gcc y 安装GCC编译器,用于编译Nginx源码。
sudo yum install pcre pcredevel y 安装PCRE库及其开发包,用于解析正则表达式。
sudo yum install zlib zlibdevel y 安装zlib压缩库及其开发包。
sudo yum install openssl openssldevel y 安装OpenSSL库及其开发包,用于支持HTTPS

执行以下命令来安装所有这些依赖:

sudo yum install gcc pcre pcredevel zlib zlibdevel openssl openssldevel y

下载并解压Nginx源码

1、创建存放目录

```bash

cd /home

mkdir nginx

cd nginx

```

2、下载Nginx源码

```bash

wget https://nginx.org/download/nginx1.24.0.tar.gz

```

3、解压Nginx源码

```bash

tar zxvf nginx1.24.0.tar.gz

cd nginx1.24.0

```

编译和安装Nginx

1、配置Nginx

```bash

./configure

```

2、解决依赖问题

如果在配置过程中遇到错误,例如缺少某些依赖,可以通过以下命令解决:

```bash

sudo yum install make zlibdevel gccc++ libtool openssl openssldevel y

./configure user=nobody group=nobody prefix=/usr/local/nginx withhttp_stub_status_module withhttp_gzip_static_module withhttp_realip_module withhttp_sub_module withhttp_ssl_module

```

3、编译Nginx

```bash

make

```

4、安装Nginx

```bash

make install

```

启动Nginx并设置开机自启

1、启动Nginx

进入安装目录并启动Nginx:

```bash

cd /usr/local/nginx/sbin

./nginx

```

2、检查Nginx状态

使用以下命令查看Nginx进程是否成功启动:

```bash

ps ef | grep nginx

```

3、设置开机自启动

创建一个systemd服务文件:

```bash

sudo vi /etc/systemd/system/nginx.service

```

添加以下内容:

```ini

[Unit]

Description=The NGINX HTTP and reverse proxy server

After=network.target remotefs.target nsslookup.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStartPre=/usr/local/nginx/sbin/nginx t q g 'daemon on; master_process on;'

ExecStart=/usr/local/nginx/sbin/nginx g 'daemon on; master_process on;'

ExecReload=/usr/local/nginx/sbin/nginx s reload

ExecStop=/usr/local/nginx/sbin/nginx s quit

PrivateTmp=true

[Install]

WantedBy=multiuser.target

```

4、启用并启动服务

```bash

sudo systemctl enable nginx.service

sudo systemctl start nginx.service

```

5、检查Nginx服务状态

```bash

sudo systemctl status nginx.service

```

配置防火墙以开放HTTP和HTTPS端口

1、开放端口

```bash

sudo firewallcmd permanent zone=public addservice=http

sudo firewallcmd permanent zone=public addservice=https

sudo firewallcmd reload

```

2、验证端口是否打开

```bash

sudo firewallcmd listall

```

常见问题及解决方法

1、Q: Nginx启动报错“bind() to 0.0.0.0:80 failed (13: Permission denied)”

A: 该错误通常是由于SELinux的安全策略限制导致的,解决方法如下:

```bash

sudo setsebool P httpd_can_network_connect 1

```

或者将Nginx绑定到非标准端口,如8080,并在配置文件中修改监听端口:

```conf

server {

listen 8080;

server_name localhost;

...

}

```

2、Q: Nginx配置文件测试失败

A: 如果运行nginx t命令时出现配置错误,可以按照以下步骤排查:

1. 检查配置文件路径是否正确。

2. 确保配置文件语法正确,特别是大括号的匹配情况

3. 查看日志文件/var/log/nginx/error.log获取更多错误信息。

分享:
扫描分享到社交APP
上一篇
下一篇