轻松搞定 Nginx 在 CentOS 和 Ubuntu 上的安装与配置

news2025/1/10 20:35:38

注:这是对我以前博客进行优化后再次发布的,博客中的截图为以前的。原博客已删除。

如何安装nginx

nginx是一款开源、高性能的Web和反向代理服务器,支持HTTP、HTTPS、SMTP、POP3和IMAP协议。由于其轻量级、资源占用少和强大的并发能力,nginx广泛用于多种场景。本文将介绍如何在CentOS和Ubuntu系统上安装nginx。

下载nginx

方法一:从官网下载后上传

从nginx的官方网站下载稳定版的安装包。下载地址为https://nginx.org/en/download.html。选择稳定版进行下载。

本文将使用FinalShell终端工具进行操作,当然您也可以使用其他工具。FinalShell工具的下载地址是:http://www.hostbuf.com/t/988.html。下载安装完成后,登录并连接到服务器。然后上传下载好的文件。

您可以通过命令ls查看上传的文件。

方法二:通过wget命令直接下载到Linux中

wget命令是Linux系统中用于从Web下载文件的命令行工具,支持HTTP、HTTPS及FTP协议下载文件。此外,wget提供了许多选项,例如下载多个文件、后台下载、使用代理等,非常方便。

在Linux中输入以下命令进行下载:

wget https://nginx.org/download/nginx-1.22.1.tar.gz

该命令默认将文件下载到当前工作目录,并在下载过程中显示进度条、文件大小、下载速度等信息。

下载完成后,文件将保存在当前目录。

安装nginx

1、解压文件

使用以下命令解压下载好的文件:

# 使用 -zxf 不显示解压过程进行解压
tar -zxf nginx-1.22.1.tar.gz

解压完成后,您将看到解压后的文件。

2、初始化配置

进入解压后的目录:

cd nginx-1.22.1/
在CentOS上

首先,确保安装了必要的依赖包:

sudo yum install -y pcre pcre-devel zlib-devel gcc gcc-c++

然后初始化配置:

./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/home/d/nginx/log/access.log --error-log-path=/home/d/nginx/log/error.log --http-fastcgi-temp-path=/home/d/nginx/tmp/fastcgi_tmp --http-proxy-temp-path=/home/d/nginx/tmp/proxy_tmp --http-client-body-temp-path=/home/d/nginx/tmp/client_body_temp --with-pcre --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --modules-path=/etc/nginx/modules --with-http_ssl_module  --with-http_v2_module --user=www-data --group=www-data --with-http_dav_module

在这段配置命令中,以下部分可以根据需要进行自定义修改:

  • --prefix=/var/www/html: nginx安装的根目录。可以根据需要选择不同的安装位置,如/usr/local/nginx

  • --sbin-path=/usr/sbin/nginx: nginx可执行文件的位置。可以更改为其他目录,如/usr/local/sbin/nginx

  • --conf-path=/etc/nginx/nginx.conf: nginx主配置文件的位置。可以自定义为其他路径,如/usr/local/nginx/conf/nginx.conf

  • --http-log-path=/home/d/nginx/log/access.log: HTTP请求的访问日志文件路径。可以更改为其他位置,如/var/log/nginx/access.log

  • --error-log-path=/home/d/nginx/log/error.log: 错误日志文件路径。可以自定义为其他路径,如/var/log/nginx/error.log

  • --http-fastcgi-temp-path=/home/d/nginx/tmp/fastcgi_tmp: FastCGI模块使用的临时文件路径。可以修改为其他位置,如/var/cache/nginx/fastcgi_temp

  • --http-proxy-temp-path=/home/d/nginx/tmp/proxy_tmp: 代理模块使用的临时文件路径。可以更改为其他位置,如/var/cache/nginx/proxy_temp

  • --http-client-body-temp-path=/home/d/nginx/tmp/client_body_temp: 存储HTTP请求主体的临时文件路径。可以自定义为其他路径,如/var/cache/nginx/client_body_temp

  • --lock-path=/var/lock/nginx.lock: nginx的锁文件路径。可以修改为其他位置,如/var/run/nginx.lock

  • --pid-path=/var/run/nginx.pid: 存储nginx进程ID的文件路径。可以自定义为其他路径,如/usr/local/nginx/logs/nginx.pid

  • --modules-path=/etc/nginx/modules: nginx模块的安装路径。可以根据需要更改为其他目录,如/usr/local/nginx/modules

  • --user=www-data: 运行nginx进程的系统用户。可以修改为系统中的其他用户,如nginx

  • --group=www-data: 运行nginx进程的系统用户组。可以自定义为系统中的其他用户组,如nginx

其他参数如--with-pcre--with-http_ssl_module--with-http_v2_module--with-http_dav_module是功能启用选项,通常不需要修改。根据具体需求,可以启用或禁用这些模块。


如果遇到以下错误提示,请安装相应的依赖包。未出现错误提示则直接跳过此部分。

  • 错误提示:error: the HTTP rewrite module requires the PCRE library

    解决方案:

    sudo yum install -y pcre pcre-devel
    
  • 错误提示:error: Invalid C++ compiler or C++ compiler flags

    解决方案:

    sudo yum install -y gcc gcc-c++
    
  • 错误提示:error: the HTTP gzip module requires the zlib library

    解决方案:

    sudo yum install -y zlib-devel
    

安装依赖完成后,再次执行初始化配置命令。


在Ubuntu上

在Ubuntu中,首先安装以下依赖:

sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev libgd-dev libxml2 libxml2-dev uuid-dev -y

然后进行配置:

./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/home/d/nginx/log/access.log --error-log-path=/home/d/nginx/log/error.log --http-fastcgi-temp-path=/home/d/nginx/tmp/fastcgi_tmp --http-proxy-temp-path=/home/d/nginx/tmp/proxy_tmp --http-client-body-temp-path=/home/d/nginx/tmp/client_body_temp --with-pcre --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --modules-path=/etc/nginx/modules --with-http_ssl_module  --with-http_v2_module --user=www-data --group=www-data --with-http_dav_module

3、编译nginx

使用以下命令编译nginx:

make

编译过程中可能需要一些时间,请耐心等待。

4、执行安装操作

编译完成后,执行以下命令安装nginx:

make install

安装完成后,您将看到相关的提示信息。

5、运行nginx

查找nginx的安装目录:

whereis nginx


进入安装目录:

cd /usr/local/nginx

执行启动命令:

./sbin/nginx

使用以下命令查看启动结果:

ps -ef | grep nginx

如果启动成功,您将看到相关进程信息。

在浏览器中输入服务器地址,即可访问nginx默认页面。


注:nginx默认使用80端口,请确保服务器已放行该端口。

配置开机自启

创建自启脚本

进入到系统服务目录:

cd /etc/systemd/system

创建并编辑脚本文件(没有vim也可以使用vi代替):

vim nginx.service

文件内容如下:

[Unit]
# 服务的简要描述,用于显示服务的名称或用途
Description=nginx service

# 指定该服务在网络服务启动后启动
After=network.target

[Service]
# 服务类型为forking,表示服务进程会派生一个子进程进行实际工作
Type=forking

# 启动Nginx服务的命令路径
ExecStart=/usr/local/nginx/sbin/nginx

# 重新加载Nginx配置的命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload

# 停止Nginx服务的命令
ExecStop=/usr/local/nginx/sbin/nginx -s quit

# 为服务提供独立的临时空间,确保服务的临时文件与系统其他部分隔离
PrivateTmp=true

[Install]
# 指定服务的目标运行级别,即在多用户模式下启动
WantedBy=multi-user.target

配置说明:

  • Description: 自定义服务的描述。

  • After: 可以指定其他需要的服务目标,确保服务在相关服务之后启动。

  • ExecStart: 根据nginx的实际安装路径修改。

  • ExecReload: 根据nginx的实际安装路径修改。

  • ExecStop: 根据nginx的实际安装路径修改。

  • WantedBy: 可以修改为其他目标,如graphical.target,根据系统的运行级别需求进行调整。

设置开机自启

systemctl enable nginx.service

systemctl其他常用命令

  • 启动服务

    systemctl start nginx.service
    
  • 重启服务

    systemctl restart nginx.service
    
  • 停止服务

    systemctl stop nginx.service
    
  • 查看服务状态

    systemctl status nginx.service
    
  • 关闭服务

    systemctl disable nginx.service
    

nginx基础配置

nginx是一款开源、高性能、高可靠的Web和反向代理服务器,支持热部署。它还提供IMAP/POP3/SMTP服务,支持不间断运行和热更新。nginx占用内存少、并发能力强,且可以免费商业化使用,配置简单。以下是nginx.conf文件的简单配置示例:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       80;
        # server_name 应与443端口一致
        server_name  domain.com;
        # 使用rewrite实现强制https
        rewrite ^(.*) https://$server_name$1 permanent;
    }
    
    server {
        listen       443 ssl;
        server_name  domain.com;

        ssl_certificate      crt格式文件;
        ssl_certificate_key  key格式文件;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            # 代理路径
            proxy_pass   http://127.0.0.1:8090;
        }
    }
}

配置说明:

  • worker_processes: 定义nginx运行的进程数量。根据服务器的硬件资源进行调整。
  • worker_connections: 每个进程最大连接数。可以根据需求增加,以提升并发性能。
  • server_name: 配置服务器的域名或IP地址。
  • rewrite: 将所有HTTP请求重定向到HTTPS,确保数据传输安全。
  • ssl_certificatessl_certificate_key: 分别指定SSL证书文件和密钥文件的路径,用于启用HTTPS。
  • proxy_pass: 配置反向代理,将请求转发到指定的后端服务器。

常用的优化配置:

  • 开启Gzip压缩: 减少传输数据量,提升加载速度。

    http {
        gzip on;
        gzip_types text/plain application/xml;
    }
    
  • 启用缓存: 提升响应速度和服务器性能。

    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 30d;
    }
    

希望这篇博客能帮助您在CentOS和Ubuntu系统上顺利安装并配置nginx。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1969268.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时空预测又爆火了!新SOTA实现零样本精准预测

时空预测又有新突破啦!港大、华南理工等提出了时空大模型UrbanGPT,在性能上猛超现有SOTA,实现零样本即可时空预测! 另外还有清华的首个通用城市时空预测模型UniST、能即插即用快速适配的时空提示调整机制FlashST...这些效果非常ni…

探索计算器存储器的奥秘:数字记忆的科学

在日常生活中,我们经常使用计算器来执行各种数学运算。但你是否曾想过,当按下每个按键时,计算器是如何记住数字和运算符的?本文将深入探讨计算器存储器的工作原理,揭示其背后的科学原理。 引言:数字世界的…

家庭出游新风尚!格瑞维亚改装大赛创意实用并存

在创新浪潮翻涌的当下,汽车已蜕变为个性化生活的璀璨舞台,格瑞维亚改装共创大赛便是这一变革的推动者。这场大赛,不仅汇聚了400余支创意团队的心血结晶,更将汽车改装的魅力推向了新的高度。它不仅仅是对机械与美学的重塑&#xff…

STM32——EXIT外部中断

一、中断系统 以上就是中断的概念,简单理解就是: 当程序运行过程中,如果有中断源向CPU打报告,CPU就会暂停手下的事情去处理中断源提交的事情,然后处理完了在返回到CPU原来的位置继续处理手上的事情。如果同时有多个中…

浏览器指纹技术:如何更改浏览器指纹?

“指纹信息”是一个人独有的身份象征,而“浏览器指纹”,就是网站和在线平台使用浏览器指纹来收集有关您的浏览器、设备和网络的详细信息,它可以说是你上网的身份象征,可让网站跟踪您的在线行为。 下面我们简单科普浏览器指纹的工…

tomato 靶场

1.主机发现 扫描ip及端口 2.端口扫描 nmap192.168.233.131 有三个开放的端口nmap -sC -sV -O 192.168.233.131 -sC常见漏洞脚本扫描 -sV开放端口服务/版本号 -O操作系统探测 3.目录扫描 DIRECTORY: http://192.168.233.131/antibot_image/ http://192.168.233.131/index.h…

单调队列与单调栈<1>——单调队列

单调队列,即队列里的元素单调递增或递减。一般用于求区间内的最值问题。 模板题:P1886 暴力的话很简单,搞定。但是对于来说肯定TLE。所以我们要用单调队列来解决这道题。因为单调队列中元素大小单调递增或递减,所以,队首必定是最…

TwinCAT3 新建项目教程

文章目录 打开TwinCAT 新建项目(通过TcXaeShell) 新建项目(通过VS 2019)

案例精选 | 聚铭网络助力石家庄市栾城区中医院防护体系焕新升级

石家庄市栾城区中医院,坐落于栾城这块历史悠久的热土上,占地广阔,达4200平方米,作为一家享有盛誉的二级甲等综合性中医医疗机构,它不仅是传统医学与现代科技融合的典范,更是区域医疗卫生服务的重要支柱。 …

【JavaScript】详解数组方法 fill()

文章目录 一、fill()方法简介二、fill()方法的基本用法三、fill()方法的进阶用法四、实际应用案例五、注意事项六、总结 在JavaScript中,fill()方法是数组操作中一个非常有用的方法。它可以快速地用特定值填充数组的全部或部分内容。理解fill()方法的工作机制和使用…

深度对话安天王小丰:我们应该从微软“蓝屏”事件学到什么?

ITValue 国内厂商和CrowdStrike的差距,相比于国外厂商和CrowdStrike的差距更大。 作者|张帅 编辑|盖虹达 首发|钛媒体APP ITValue 我们赖以生存的数字世界,可能比想象得还要脆弱。 近日,全球范围内的微软Wi…

基于Gitlab CI+Argo CD的Gitops实践

项目简介 项目说明 本项目构建了一个基于GitOps理念的完整CI/CD管道,旨在实现软件开发与运维的高度自动化和一致性。通过GitLab、GitLab Runner(部署于Kubernetes)、Maven、Java、SonarQube、Harbor以及Argo CD等工具的紧密协作&#xff0c…

二叉树的存储

二叉树的存储 满二叉树或者完全二叉树可以采用顺序存储,普通二叉树一般采用链式存储 节点的结构体原型 typedef int DataType typedef struct node { DataType data; struct node *L; struct node *R; }twotree&#xff…

【数值计算方法】数值积分微分-python实现-p3

原文链接:https://www.cnblogs.com/aksoam/p/18332123 更多精彩,关注博客园主页,不断学习!不断进步! 我的主页 csdn很少看私信,有事请b站私信 博客园主页-发文字笔记-常用 有限元鹰的主页 内容&#xf…

【阅读笔记】红外sensor的ITR、IWR读出模式分析

一、ITR、IWR读出模式分析 InGaAs短波红外探测器具有ITR和IWR两种工作模式。两种工作模式都包括三个相同的工作过程,即复位、积分和读出。每个工作过程的开始与结束都由配置指令码控制,配置指令码包括复位指令、开始积分指令、开始读出指令和读出结束指…

找到学习的引擎,更让你进入心流状态的高效学习

一、心流状态的启动秘籍 1. 简单开始:找到学习的入口 从简单的任务开始,比如整理学习空间或列出学习计划,让大脑逐渐适应学习的节奏。 2. 环境塑造:打造专注的学习空间 清理桌面,减少干扰,比如将手机置…

探索未来之境:揭秘元宇宙(Metaverse)

在科技与想象的交界,一个名为“元宇宙”(Metaverse)的概念正逐渐从科幻走入现实,预示着人类交互与体验的全新纪元。元宇宙不仅是技术的飞跃,更是未来生活方式的蓝图,它模糊了虚拟与现实的界限,开…

Ubuntu配置项目环境

目录 一、Xshell连接云服务器 二、切换到root用户 三、安装jdk 四、安装tomcat 五、安装mysql 1、安装mysql服务器 2、卸载mysql服务器 六、正式进行程序的部署 一、Xshell连接云服务器 要想使用xshell连接上云服务器就需要明确云服务器的几个信息: 1&…

Qt 的径向渐变的类QRadialGradient 学习笔记

QRadialGradient 是 PySide(即 Qt 的 Python 绑定)中用于创建径向渐变的类。径向渐变是一种从中心点向外扩展的渐变效果,与线性渐变不同,线性渐变是沿着一条直线变化的。基本概念 QRadialGradient 可以用来为图形项、形状或背景…