Nginx生产环境部署最佳实践
创作时间:
2025-01-22 06:35:21
作者:
@小白创作中心
Nginx生产环境部署最佳实践
在生产环境中部署Nginx需要经过一系列的步骤和配置优化,以确保其稳定性和性能。本文将详细介绍从安装依赖到设置开机自启的完整过程,帮助读者掌握Nginx生产环境部署的最佳实践。
实验环境
- 操作系统:Centos 7.9
- 硬件配置:4核8G SSD 100G
步骤1:安装依赖
在开始部署Nginx之前,需要先安装一些必要的依赖包。这些依赖包包括:
- gcc:GNU编译器集合,用于编译C、C++等语言的源代码
- pcre:Perl兼容正则表达式库,用于模式匹配
- zlib:数据压缩库
- openssl:安全套接层协议工具包
- make:构建自动化工具
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel make wget
步骤2:创建Nginx用户
为了安全考虑,需要为Nginx创建一个专用的用户和用户组。
groupadd nginx
useradd nginx -m -d /home/nginx -g nginx
echo nginx:nginx|chpasswd
步骤3:创建Nginx相关目录
创建Nginx所需的目录结构,并设置权限。
mkdir -p /usr/local/nginx/{cache,log,conf/conf.d}
chown -R nginx:nginx /usr/local/nginx
步骤4:下载Nginx包并解压
下载Nginx源码包并解压到指定目录。
mkdir /opt/software/
cd /opt/software/
wget http://nginx.org/download/nginx-1.20.1.tar.gz
tar -zxvf nginx-1.20.1.tar.gz
步骤5:编译并安装Nginx
配置Nginx的编译选项,并进行编译和安装。
cd nginx-1.20.1
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/log/error.log \
--http-log-path=/usr/local/nginx/log/access.log \
--pid-path=/usr/local/nginx/nginx.pid \
--lock-path=/usr/local/nginx/nginx.lock \
--http-client-body-temp-path=/usr/local/nginx/cache/client_temp \
--http-proxy-temp-path=/usr/local/nginx/cache/proxy_temp \
--http-fastcgi-temp-path=/usr/local/nginx/cache/fastcgi_temp \
--http-uwsgi-temp-path=/usr/local/nginx/cache/uwsgi_temp \
--http-scgi-temp-path=/usr/local/nginx/cache/scgi_temp \
--user=nginx \
--group=nginx \
--with-file-aio \
--with-threads \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-mail \
--with-mail_ssl_module \
--with-stream \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module
make && make install
步骤6:修改Nginx配置文件
根据业务需求调整Nginx的配置文件。
cat << EOF | tee /usr/local/nginx/conf/nginx.conf
user nginx nginx;
worker_processes auto;
pid /usr/local/nginx/nginx.pid;
worker_cpu_affinity auto;
worker_rlimit_nofile 1024000;
events {
use epoll;
accept_mutex on;
multi_accept on;
worker_connections 65535;
}
http {
include mime.types;
access_log off;
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
gzip on;
include /usr/local/nginx/conf/conf.d/*.conf;
}
EOF
步骤7:设置Nginx开机自启
创建systemd服务文件,使Nginx能够随系统启动自动运行。
cat << EOF |tee /etc/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
启用并启动Nginx服务:
systemctl daemon-reload && systemctl enable --now nginx
检查Nginx服务状态:
systemctl status nginx
补充命令
检查Nginx配置语法:
nginx -t重新加载Nginx配置:
systemctl reload nginx停止Nginx服务:
systemctl stop nginx重启Nginx服务:
systemctl restart nginx
通过以上步骤,你可以在生产环境中成功部署Nginx,并进行相应的配置优化。建议将具体的配置内容写在/usr/local/nginx/conf/conf.d目录下的.conf结尾的文件中。
热门推荐
电摩车架的设计与制造
听劝~别急着更新iOS 18,这类iPhone用户不建议升级
明清耶稣会士的传教与文化交流:以利玛窦的适应性传教路线为例
先吃菜肉后吃主食能减肥控糖?谁不适合这么吃?
古人的中秋节:台北故宫·《十二月令图轴 · 八月》
关于DeepSeek-R1的五大认知误区
《龙文鞭影》,承前启后的知识类蒙学经典
《龙文鞭影》:你想看的历史典故,都在这里了
如何判断小区绿化环境的好坏
合同解除违约金:了解其用途和重要性
NBA顶级球星退役后财富保值秘籍
租赁房屋合同书怎么写?房东更换时合同如何处理?
米诺地尔2%与5%浓度对比:效果差异解析
深中通道开通,中山名菜小吃一文睇!
新员工适应指南:让你的职场旅程更加顺利
快速除去油漆味道的有效方法
桥梁坍塌监测技术分析:守护大桥安全的技术利器
孩子低烧不退,家长须警惕四种疾病吗?
MTP核心管理技能:提升管理效率,打造高效团队
意大利和日本的文化差异及相似之处
右肋骨部位有什么器官
海南保亭风景旅游攻略一日游:详细路线与价格指南
保亭冬季旅游攻略:三条特色线路玩转海南暖冬
NK细胞疗法:抗肿瘤的第一道防线?哪里打比较靠谱?
黄山贡菊的功效与作用
足球巨星梅西的反击:一场技术与情感的较量
深圳率先给水果品质分级,买水果看标签即可辨别品质
Camera Raw修图技巧:色彩空间和色彩深度的设置
液氮容器在农业与食品行业的应用:冷冻保鲜与种子保存
劳动仲裁2n和n+1的区别