CentOs7 安装 nginx-1.26.2 源码安装详解

要在 CentOS 7 上安装 Nginx 1.26.2 版本(或其他版本)并通过源码进行安装,下面是详细的步骤:

1. 安装依赖

首先,确保你的系统已经安装了必要的依赖包。打开终端并运行以下命令:

sudo yum update -y
sudo yum install -y gcc make pcre-devel zlib-devel openssl-devel
  • gcc:GNU 编译器,用于编译源码。
  • make:构建工具,用于编译 Nginx。
  • pcre-devel:正则表达式库。
  • zlib-devel:数据压缩库。
  • openssl-devel:SSL/TLS 支持库。

2. 下载 Nginx 源码

前往 Nginx 官方网站 获取最新版本的 Nginx。如果你需要下载 Nginx 1.26.2,使用 wgetcurl 来下载源码包:

cd /usr/local/src
sudo wget http://nginx.org/download/nginx-1.26.2.tar.gz

或者使用 curl

cd /usr/local/src
sudo curl -O http://nginx.org/download/nginx-1.26.2.tar.gz

3. 解压源码包

下载完成后,解压源码包:

sudo tar -zxvf nginx-1.26.2.tar.gz
cd nginx-1.26.2

4. 配置 Nginx 编译选项

在编译 Nginx 之前,你需要配置它。你可以根据自己的需求选择不同的模块或功能。这里给出一个常见的配置:

sudo ./configure --prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--with-pcre
  • --prefix=/usr/local/nginx:指定 Nginx 安装目录。
  • --with-http_ssl_module:启用 SSL 支持。
  • --with-http_v2_module:启用 HTTP/2 支持。
  • --with-pcre:启用 PCRE 支持,通常用于正则表达式处理。

你可以根据需要加入其他模块。如果你不确定,可以运行 ./configure --help 来查看所有可选配置。

5. 编译 Nginx

配置完成后,运行以下命令开始编译:

sudo make

这一步会根据配置选项来编译 Nginx,可能需要几分钟时间。

6. 安装 Nginx

编译完成后,可以使用以下命令安装 Nginx:

sudo make install

这将把 Nginx 安装到你之前配置的路径下。

7. 启动 Nginx

安装完成后,可以通过以下命令启动 Nginx:

sudo /usr/local/nginx/sbin/nginx

8. 设置开机自启(可选)

如果希望 Nginx 在系统启动时自动启动,可以创建一个系统服务。

首先,创建一个新的 nginx.service 文件:

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

然后,加入以下内容:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target

[Service]
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PIDFile=/usr/local/nginx/nginx.pid

[Install]
WantedBy=multi-user.target

保存并退出文件后,重新加载 systemd 配置:

sudo systemctl daemon-reload

现在可以启用并启动 Nginx 服务:

sudo systemctl enable nginx
sudo systemctl start nginx

9. 配置防火墙

如果你的 CentOS 7 上启用了防火墙,确保允许 HTTP 和 HTTPS 流量:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

10. 验证安装

在浏览器中访问你的服务器 IP 地址,应该能看到 Nginx 的欢迎页面。如果安装成功,页面会显示类似以下内容:

Welcome to nginx!

你还可以通过命令行检查 Nginx 状态:

sudo /usr/local/nginx/sbin/nginx -t

如果配置正确,你会看到:

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

11. 停止和重启 Nginx

  • 停止 Nginx

    sudo /usr/local/nginx/sbin/nginx -s stop
    
  • 重启 Nginx

    sudo /usr/local/nginx/sbin/nginx -s reload
    

总结

通过这些步骤,你已经成功在 CentOS 7 上通过源码安装了 Nginx 1.26.2。你可以根据需要调整配置文件,安装更多模块,或者自定义其他设置。

如果在 CentOS 7 上执行 sudo nano 时出现 command not found 错误,说明 nano 编辑器没有安装。你可以选择安装 nano 或使用其他编辑器(如 vimvi)进行编辑。

安装 nano 编辑器

如果你希望继续使用 nano,可以通过以下命令安装它:

sudo yum install nano -y

安装完成后,你可以重新运行:

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

使用 vivim 编辑器

如果你不想安装 nano,可以使用 CentOS 上默认安装的 vivim 编辑器。命令如下:

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

使用 vi 编辑器时,按以下步骤操作:

  1. i 进入插入模式,开始编辑文件。
  2. 输入或粘贴需要的内容。
  3. 编辑完成后,按 Esc 键退出插入模式。
  4. 输入 :wq 保存并退出。

如果你不想保存更改,可以输入 :q! 退出而不保存。

选择适合你的编辑器,继续设置 Nginx 服务即可。

如果在 CentOS 7 上看到 FirewallD is not running 的提示,说明 firewalld 服务没有启动或没有安装。

1. 检查 firewalld 状态

首先,你可以通过以下命令检查 firewalld 是否正在运行:

sudo systemctl status firewalld

如果看到类似于 inactivenot found 的状态,说明 firewalld 没有启动或者没有安装。

2. 启动 firewalld

如果 firewalld 已经安装但没有启动,可以通过以下命令启动它:

sudo systemctl start firewalld

然后,检查它是否成功启动:

sudo systemctl status firewalld

3. 设置 firewalld 开机自启

如果你希望 firewalld 在系统启动时自动启动,可以运行以下命令:

sudo systemctl enable firewalld

4. 安装 firewalld(如果没有安装)

如果 firewalld 没有安装,可以通过以下命令进行安装:

sudo yum install firewalld -y

安装完成后,启动并设置开机自启:

sudo systemctl start firewalld
sudo systemctl enable firewalld

5. 配置防火墙规则

如果 firewalld 启动后,你需要允许 HTTP 和 HTTPS 流量(常见的 Web 服务),可以使用以下命令:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

6. 如果你不使用 firewalld

如果你不打算使用 firewalld,你可以选择禁用它并使用 iptables 或其他防火墙管理工具。禁用 firewalld 的命令如下:

sudo systemctl stop firewalld
sudo systemctl disable firewalld

然后,你可以启用和配置 iptables 来进行防火墙管理。

总结

  • 如果 firewalld 未运行或未安装,可以通过安装并启用它。
  • 如果不打算使用 firewalld,可以禁用它并使用其他防火墙管理工具。

你可能感兴趣的:(工具,nginx,运维)