Nginx-1.9.1安装教程:从源码编译到服务启动的完整指南

Nginx-1.9.1安装教程:从源码编译到服务启动的完整指南

大家好,我是你们的后端技术老司机。今天我们来聊聊一个后端开发绕不开的话题——Nginx安装。别看这玩意儿简单,但新手朋友经常在这上面摔跟头。

今天我就手把手教你,从零开始安装Nginx 1.9.1版本,让你一次成功,从此告别"装个Nginx搞了一天"的尴尬!

为什么选择源码安装?

可能有朋友问了:"为啥不直接yum install或者apt-get install?"

好问题!源码安装虽然步骤多一点,但有这几个好处:

  1. 版本可控:想装哪个版本就装哪个版本,不像包管理器可能只有老版本
  2. 模块定制:可以根据需要选择功能模块,要啥装啥,不要的不装
  3. 性能优化:针对你的服务器环境进行编译优化
  4. 学习价值:了解软件安装的本质过程,排查问题更方便

安装前的准备工作

环境检查

首先确认你的服务器环境:

# 查看系统版本
cat /etc/redhat-release  # CentOS/RedHat
# 或者
cat /etc/issue          # Ubuntu/Debian

# 查看内核版本
uname -r

安装依赖包

Nginx编译需要一些基础库,咱们一次性装齐:

# CentOS/RedHat系统
yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

# Ubuntu/Debian系统
apt-get update
apt-get install -y build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev

这些依赖的作用:

  • gcc gcc-c++:编译器,不装这个没法编译C/C++代码
  • pcre pcre-devel:正则表达式库,Nginx的rewrite功能需要
  • zlib zlib-devel:压缩库,gzip压缩功能需要
  • openssl openssl-devel:SSL/TLS加密库,HTTPS功能需要

下载并解压源码

下载Nginx 1.9.1

# 进入源码目录(习惯放这里)
cd /usr/local/src

# 下载源码包
wget http://nginx.org/download/nginx-1.9.1.tar.gz

# 解压
tar -zxvf nginx-1.9.1.tar.gz

# 进入源码目录
cd nginx-1.9.1

配置编译参数

这是最关键的一步!Nginx的强大之处就在于模块化设计,你可以按需选择功能。

./configure \
--prefix=/usr/local/nginx \
--user=www \
--group=www \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_auth_request_module \
--with-http_sub_module \
--with-http_dav_module \
--with-stream \
--with-stream_ssl_module

参数解释:

  • --prefix:安装目录,建议统一放/usr/local/nginx
  • --user/--group:运行用户和用户组,安全考虑不能用root
  • --with-http_ssl_module:HTTPS支持模块,现在是标配
  • --with-http_v2_module:HTTP/2支持,提升性能
  • --with-http_stub_status_module:状态监控模块,运维必备
  • --with-stream:TCP/UDP代理模块,四层负载均衡需要

如果提示缺少某些库,比如GeoIP,可以先安装对应依赖或者去掉相关模块。

编译和安装

# 编译(这步时间稍长,喝杯茶)
make

# 安装(这步很快)
make install

安装完成后,Nginx会被安装到/usr/local/nginx目录下:

# 查看安装结果
ls /usr/local/nginx/
# 输出应该是:
# conf  html  logs  sbin

目录结构说明:

  • conf:配置文件目录
  • html:默认网页文件目录
  • logs:日志文件目录
  • sbin:可执行文件目录

创建运行用户

为了安全,我们创建专门的nginx运行用户:

# 创建用户组
groupadd www

# 创建用户并加入组
useradd -g www www

启动Nginx

直接启动

# 启动Nginx
/usr/local/nginx/sbin/nginx

# 检查是否启动成功
ps -ef | grep nginx

正常情况下会看到master和worker进程:

root     12345     1  0 10:00 ?        00:00:00 nginx: master process
www      12346 12345  0 10:00 ?        00:00:00 nginx: worker process

验证安装

打开浏览器访问你的服务器IP地址,应该能看到Nginx的欢迎页面。

或者用命令行验证:

curl http://localhost

Nginx常用操作命令

# 启动(如果已启动会报错)
/usr/local/nginx/sbin/nginx

# 优雅停止(处理完当前请求再停止)
/usr/local/nginx/sbin/nginx -s quit

# 强制停止
/usr/local/nginx/sbin/nginx -s stop

# 重新加载配置文件(不中断服务)
/usr/local/nginx/sbin/nginx -s reload

# 检查配置文件语法
/usr/local/nginx/sbin/nginx -t

# 查看版本和编译参数
/usr/local/nginx/sbin/nginx -V

配置系统服务(推荐)

为了方便管理,我们把Nginx配置成系统服务:

# 创建服务文件
cat > /etc/systemd/system/nginx.service << 'EOF'
[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=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

# 重新加载系统服务
systemctl daemon-reload

# 设置开机自启
systemctl enable nginx

# 启动服务
systemctl start nginx

# 查看服务状态
systemctl status nginx

现在就可以用systemctl管理Nginx了:

systemctl start nginx    # 启动
systemctl stop nginx     # 停止
systemctl restart nginx  # 重启
systemctl reload nginx   # 重载配置
systemctl status nginx   # 查看状态

常见问题排查

1. 端口被占用

# 查看80端口占用情况
netstat -tlnp | grep :80

# 杀掉占用进程(替换PID)
kill -9 PID

2. 权限问题

# 检查nginx目录权限
ls -la /usr/local/nginx

# 修改权限
chown -R www:www /usr/local/nginx

3. 配置文件错误

# 检查配置文件语法
/usr/local/nginx/sbin/nginx -t

# 查看错误日志
tail -f /usr/local/nginx/logs/error.log

性能优化建议

安装完成后,建议做以下优化:

  1. 调整worker进程数

    # 在nginx.conf中
    worker_processes auto;  # 自动检测CPU核心数
    
  2. 调整连接数

    events {
        worker_connections  1024;  # 单个worker最大连接数
    }
    
  3. 开启gzip压缩

    http {
        gzip on;
        gzip_types text/plain text/css application/json application/javascript;
    }
    

结语

到这里,Nginx 1.9.1的安装就全部完成了!从下载源码、编译安装到配置服务,每一步都详细讲解了。

记住几个关键点:

  1. 依赖要装全,不然编译会报错
  2. configure参数按需选择,不要贪多
  3. 运行用户要设置,安全第一
  4. 配置成系统服务,管理更方便

安装只是第一步,后续我们还会分享Nginx的配置优化、负载均衡、安全加固等实战技巧,记得关注我们的公众号"服务端技术精选"!

觉得这篇文章对你有帮助吗?欢迎点赞、在看、转发三连,你的支持是我们持续创作的最大动力!


服务端技术精选 | 专注分享实用的后端技术干货


标题:Nginx-1.9.1安装教程:从源码编译到服务启动的完整指南
作者:jiangyi
地址:http://jiangyi.space/articles/2025/12/21/1766304293950.html

    0 评论
avatar