轻松搞定 Nginx 在 CentOS 和 Ubuntu 上的安装与配置
注:这是对我以前博客进行优化后再次发布的,博客中的截图为以前的。原博客已删除。
如何安装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_certificate
和ssl_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。
轻松搞定 Nginx 在 CentOS 和 Ubuntu 上的安装与配置的更多相关文章
- MySQL5.7在Ubuntu上的安装、配置与使用
前言 服务器上安装东西一直是很让我头疼的事情,缘由:Linux基础不好.. 安装MySQL踩了很多坑,绕了很多弯路,这次踩得是tar包安装的坑... 当然,与tar包无关... 环境: Ubuntu ...
- 六招轻松搞定你的CentOS系统安全加固
Redhat是目前企业中用的最多的一类Linux,而目前针对Redhat攻击的黑客也越来越多了.我们要如何为这类服务器做好安全加固工作呢? 一. 账户安全 1.1 锁定系统中多余的自建帐号 检查方 ...
- centos下yum安装lamp和lnmp轻松搞定
centos下yum安装lamp和lnmp轻松搞定.究竟多轻松你看就知道了.妈妈再也不操心不会装lamp了. 非常辛苦整理的安装方法,会持续更新下去.凡无法安装的在评论里贴出问题来,会尽快解决.共同维 ...
- CENTOS --5分钟搞定Nginx安装的教程
1. 安装gcc(centos 7之后一般已自带,可以在第6步失败后再安装) yum install gcc gcc-c++ 2. 安装pcre yum install -y pcre pcre-de ...
- 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul
通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...
- 【转】轻松搞定FTP之FlashFxp全攻略
转载网址:http://www.newhua.com/2008/0603/39163.shtml 轻松搞定FTP之FlashFxp全攻略 导读: FlashFXP是一款功能强大的FXP/FTP软件,融 ...
- 轻松搞定javascript变量(闭包,预解析机制,变量在内存的分配 )
变量: 存储数据的容器 1.声明 var 2.作用域 全局变量. 局部变量. 闭包(相对的全局变量): 3.类型 a.基本类型(undefi ...
- Webcast / 技术小视频制作方法——自己动手录制video轻松搞定
Webcast / 技术小视频制作方法——自己动手录制video轻松搞定 http://blog.sina.com.cn/s/blog_67d387490100wdnh.html 最近申请加入MSP的 ...
- 【微服务】之二:从零开始,轻松搞定SpringCloud微服务系列--注册中心(一)
微服务体系,有效解决项目庞大.互相依赖的问题.目前SpringCloud体系有强大的一整套针对微服务的解决方案.本文中,重点对微服务体系中的服务发现注册中心进行详细说明.本篇中的注册中心,采用Netf ...
- 【微服务】之三:从零开始,轻松搞定SpringCloud微服务-配置中心
在整个微服务体系中,除了注册中心具有非常重要的意义之外,还有一个注册中心.注册中心作为管理在整个项目群的配置文件及动态参数的重要载体服务.Spring Cloud体系的子项目中,Spring Clou ...
随机推荐
- Java中对的创建与引用
对象与引用 Java语言中除了基本数据类型以外都属于引用类型 Java中的对象是通过引用对其操作的 class Car{ String name; String color; int price; } ...
- JS 中 == 和 === 区别是什么?
a.对于string,number等基础类型,==和===有区别:不同类型间比较,==之比较"转化成同一类型后的值"看"值"是否相等,===如 果类型不 ...
- PIC18 bootloader之RS485 bootloader
了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制b ...
- MyBatis 关于查询语句上配置的详细内容
1. MyBatis 关于查询语句上配置的详细内容 @ 目录 1. MyBatis 关于查询语句上配置的详细内容 2. 准备工作 3. SQL查询结果,返回为POJO实体类型 4. SQL查询结果,返 ...
- 安装Ingress-Nginx
目前,DHorse(https://gitee.com/i512team/dhorse)只支持Ingress-nginx的Ingress实现,下面介绍Ingress-nginx的安装过程. 下载安装文 ...
- Linux 中 uid、gid、euid、egid、groups 之间的关系
导航 1 权限匹配流程 2 五种身份变化 3 有效用户/组 4 特权对 Shell 脚本无效 5 Sudo 与 SUID/SGID 的优先级 6 SUID.SGID.Sticky 各自的功能 Linu ...
- “进口”双核A53@1.4GHz仅188元起,超高性价比!“邮票孔”AM62x工业核心板,正式发布!
创龙科技作为TI官方合作伙伴,在2022年9月即推出搭载TI最新明星处理器AM62x的工业核心板-SOM-TL62x(B2B版本).为了让工业客户进一步降低产品成本,并提高产品连接的可靠性,我们再次推 ...
- Asp .Net Core 系列:基于 Castle DynamicProxy + Autofac 实践 AOP 以及实现事务、用户填充功能
目录 什么是 AOP ? .Net Core 中 有哪些 AOP 框架? 基于 Castle DynamicProxy 实现 AOP IOC中使用 Castle DynamicProxy 实现事务管理 ...
- 树莓派安装OpenCv
树莓派安装OpenCv 更换树莓派软件源 我们选择将树莓派的软件源切换到清华大学镜像站,据笔者亲测,通过此站可以顺利安装openCV. 切换软件源需要修改两个软件源配置文件的内容. 第一个需要修改是「 ...
- 1. 简述一下你对 HTML 语义化的理解?
用正确的标签做正确的事情.1.HTML 语义化让页面的内容结构化,结构更清晰,便于对浏览器.搜索引擎解析; 2.即使在没有样式 CSS 的情况下也能以一种文档格式显示,并且是容易阅读的; 3.搜索引擎 ...