华为欧拉 22.03 版本部署 nginx
华为欧拉 22.03 版本部署 nginx
一、部署前的准备工作
服务器环境确认:确保服务器运行的是华为欧拉 22.03 版本。可通过以下命令查看系统版本:
cat /etc/os-release
更新系统软件包:在部署 nginx 之前,建议先更新系统软件包,以确保系统具备最新的安全补丁和功能改进。执行以下命令进行更新:
yum update -y
安装必要的依赖包:nginx 是用 C 语言编写的,编译安装 nginx 需要一些依赖包。主要包括 gcc 编译器、pcre 库及其开发包(用于支持正则表达式)、openssl 库及其开发包(用于支持 SSL 加密)。使用以下命令安装这些依赖包:
yum -y install gcc pcre-devel openssl-devel tar make
二、下载并准备 nginx 安装包
选择 nginx 版本:前往 nginx 开源版官网(https://nginx.org/en/download.html),在页面右侧 “download” 处可以看到各个版本的 nginx。其中,Mainline 是抢先的主干版本(版本号为奇数),Stable 是稳定版(版本号为偶数)。一般建议选择稳定版,例如 nginx-1.24.0。
下载安装包:复制选定版本的下载链接,在欧拉系统的服务器上使用 wget 命令进行下载。例如,如果要下载 nginx-1.24.0 版本,执行以下命令:
wget https://nginx.org/download/nginx-1.24.0.tar.gz
解压安装包:下载完成后,使用 tar 命令解压安装包。假设安装包存放在当前目录下,执行以下命令解压:
tar -zxvf nginx-1.24.0.tar.gz
解压后会得到一个名为 “nginx-1.24.0” 的目录。
三、编译并安装 nginx
创建 nginx 用户:为了安全和权限管理,建议创建一个专门用于运行 nginx 服务的用户。执行以下命令创建用户:
useradd -M -s /sbin/nologin nginx
其中,“-M” 选项表示不创建用户主目录,“-s /sbin/nologin” 选项表示该用户不能用于登录系统。
2. 进入解压后的 nginx 目录:使用 cd 命令进入解压后的 nginx 目录,例如:
cd nginx-1.24.0
配置编译选项:执行 configure 脚本进行编译配置。可以根据项目需求设置不同的选项,以下是一些常用的配置示例:
./configure \\
\--prefix=/usr/local/nginx \\
\--conf-path=/usr/local/nginx/conf/nginx.conf \\
\--user=nginx \\
\--group=nginx \\
\--with-http\_ssl\_module \\
\--with-http\_stub\_status\_module \\
\--with-http\_gzip\_static\_module \\
\--with-pcre
参数说明:
--prefix=PATH
:指定 nginx 的安装目录,这里设置为 “/usr/local/nginx”。
--conf-path=PATH
:指定 nginx.conf 配置文件的路径。
--user=NAME
和--group=NAME
:指定 nginx 工作进程运行的用户和用户组,这里使用之前创建的 “nginx” 用户。
--with-http_ssl_module
:启用 SSL 模块,用于支持 HTTPS 协议。
--with-http_stub_status_module
:启用 Stub Status 模块,用于查看 nginx 的基本状态信息。
--with-http_gzip_static_module
:启用 Gzip 静态模块,可对静态文件进行压缩传输,提高传输效率。
--with-pcre
:开启 PCRE 正则表达式的支持。
编译和安装:配置完成后,依次执行 make 和 make install 命令进行编译和安装:
make && make install
编译过程可能需要一些时间,请耐心等待。编译和安装完成后,nginx 就安装到了指定的 “/usr/local/nginx” 目录下。
四、配置 nginx 服务
创建 nginx.service 文件:为了方便管理 nginx 服务,可以创建一个 systemd 服务单元文件。使用文本编辑器(如 vim)创建 “/etc/systemd/system/nginx.service” 文件,并输入以下内容:
\[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
\[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
\[Install]
WantedBy=multi-user.target
重载 systemd 配置:创建完服务单元文件后,执行以下命令重载 systemd 配置,使新的服务单元生效:
systemctl daemon-reload
设置开机自启并启动 nginx 服务:使用以下命令设置 nginx 服务开机自启,并启动 nginx 服务:
systemctl enable nginx
systemctl start nginx
可以通过以下命令检查 nginx 服务状态,确保服务正常运行:
systemctl status nginx
如果服务状态显示 “active (running)”,则表示 nginx 服务已成功启动。
五、测试 nginx 服务
检查 nginx 进程:使用以下命令检查 nginx 进程是否正在运行:
ps -ef | grep nginx
如果输出中包含 nginx 相关进程,说明 nginx 已经在运行。
2. 浏览器访问测试:在浏览器地址栏中输入服务器的 IP 地址,如果 nginx 服务配置正确,应该能够看到 nginx 的默认欢迎页面。例如,如果服务器 IP 地址为 192.168.1.100,在浏览器中输入 “http://192.168.1.100”,正常情况下会显示 nginx 的欢迎页面。
六、常见问题及解决方法
编译错误:在编译过程中,如果出现 “configure: error: the HTTP rewrite module requires the PCRE library.” 等类似错误,通常是因为缺少相应的依赖包。请检查是否正确安装了 pcre-devel 等依赖包,并确保安装路径正确。
服务启动失败:如果执行 “systemctl start nginx” 命令后,nginx 服务启动失败,可以通过查看日志文件来排查问题。nginx 的日志文件通常位于 “/usr/local/nginx/logs/” 目录下,主要日志文件有 error.log 和 access.log。查看 error.log 文件,根据错误信息进行相应的调整和修复。例如,如果提示 “nginx: [emerg] bind () to 0.0.0.0:80 failed (98: Address already in use)”,说明端口 80 已被占用,需要停止占用该端口的其他服务,或者修改 nginx 的监听端口。
无法访问 nginx 页面:如果在浏览器中无法访问 nginx 页面,首先检查服务器的防火墙设置。确保防火墙允许 HTTP(端口 80)或 HTTPS(端口 443)流量通过。可以使用以下命令临时关闭防火墙进行测试(仅用于测试,生产环境中不建议长期关闭防火墙):
systemctl stop firewalld
如果关闭防火墙后可以正常访问,则需要配置防火墙规则,允许 nginx 服务的端口通过。例如,对于 firewalld 防火墙,可以使用以下命令开放端口 80:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
通过以上步骤,你应该能够在华为欧拉 22.03 版本上成功部署 nginx 服务。在实际应用中,你可以根据项目需求进一步优化和配置 nginx,例如配置虚拟主机、反向代理、负载均衡等功能。