轻松搞定 Nginx 在 CentOS 和 Ubuntu 上的安装与配置
创始人
2024-09-26 08:50:47
0

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

如何安装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。

相关内容

热门资讯

分享攻略!微信拼三张房卡自建房... 微信游戏中心:拼三张房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信拼三张房...
分享攻略!微信里面斗牛房卡在哪... 微信游戏中心:斗牛房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
分享攻略!如何创建炸金花房间,... 微信游戏中心:炸金花房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信炸金花房...
分享攻略!微信牛牛房卡链接在哪... 微信游戏中心:牛牛房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
分享攻略!微信里面拼三张房卡哪... 微信游戏中心:拼三张房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信拼三张房...
安卓系统禁止短信功能吗,揭秘短... 你有没有发现,最近你的安卓手机突然不能发短信了呢?是不是觉得有点奇怪,是不是在怀疑是不是安卓系统禁止...
分享攻略!微信牛牛房卡自建房间... 微信游戏中心:牛牛房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
安卓系统主播名称,揭秘热门主播... 你有没有发现,现在手机上那些安卓系统的主播名称真是五花八门,各有特色呢?今天,就让我带你一起探索一下...
安卓9.0系统落后了吗,是否已... 你有没有发现,最近安卓系统更新换代的速度简直就像坐上了火箭!不过,说到安卓9.0系统,是不是有人觉得...
领克01升级安卓系统,驾驭未来... 你知道吗?最近我的小宝贝——领克01,竟然悄悄地升级了安卓系统,简直就像给它换了个新灵魂!这让我这个...
打开助手推荐安卓系统,打开助手... 你有没有想过,你的手机里那个默默无闻的助手,其实是个隐藏的宝藏呢?没错,我说的就是那个智能助手!今天...
安卓系统怎么连凯迪拉克,智能驾... 你有没有想过,你的安卓手机和那辆酷炫的凯迪拉克之间也能来个亲密接触呢?没错,就是那种无缝连接的感觉,...
安卓系统网页放桌面,个性化定制 你有没有发现,现在手机上的安卓系统越来越智能了?今天,我就要和你聊聊一个超实用的小技巧——把网页放到...
安卓系统缓存能删吗,可删除的优... 你有没有发现,手机用久了,就像人一样,会积累不少“杂物”。这不,最近就有小伙伴问我:“安卓系统的缓存...
安卓系统无法更改日期,解锁日期... 你是不是也遇到了这个问题?安卓系统里的日期怎么就改不了呢?别急,今天就来给你好好捋一捋这个让人头疼的...
安卓系统发表小红书,小红书上的... 你知道吗?最近在安卓系统上,一款名为小红书的APP可是火得一塌糊涂呢!它不仅吸引了无数年轻人的目光,...
电脑安装不了安卓系统,安卓系统... 最近是不是有很多小伙伴在电脑上安装安卓系统呢?不过,有些小伙伴可能遇到了一个小麻烦——电脑安装不了安...
科技实测,炸金花房间链接游戏房... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
一分钟教会你,微信金花链接房卡... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...
一分钟秒懂,牛牛金花房卡链接在... 新九天是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享...