轻松搞定 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。