马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Nginx 装起来不难,难的是装完发现起不来、访问不到、或者重启服务器就没了。这篇在 CentOS 上从装编译依赖、下源码、configure、make install 到启动、开端口,一条直线走完,并把最常见的三个坑标出来。
一、装依赖
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
这五个分别对应:编译器、正则库(rewrite 模块要用)、gzip 模块、HTTPS 需要的 zlib 与 openssl。少装 pcre-devel 会在 configure 阶段直接报错,这是新手第一道坎。
二、下载源码
打开 nginx.org 的下载页,把要装的版本右键复制链接(示例用 1.25.1):
wget http://nginx.org/download/nginx-1.25.1.tar.gz
为了方便管理,建个专门目录放包:
mkdir /usr/java
mv nginx-1.25.1.tar.gz /usr/java
cd /usr/java
ls
tar -zxf nginx-1.25.1.tar.gz
cd nginx-1.25.1
看到解压出来的 nginx-1.25.1 目录就说明没问题了。
三、配置与编译
./configure
make && make install
configure 跑完会打印一句前缀路径,默认是 /usr/local/nginx;make 编译、make install 安装,也可以分开写。想自定义前缀就 ./configure --prefix=/usr/local/nginx --with-http_ssl_module,加 ssl 模块才能跑 HTTPS。
四、启动
cd /usr/local/nginx/sbin
./nginx
验证两种方式:命令行直接跑 curl 127.0.0.1 看有没有 welcome 页面;或者浏览器访问 服务器IP,默认端口 80。
五、放通端口
用 IP 访问前记得开防火墙:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
云服务器还要去控制台的安全组里加一条入站规则,很多人「本地 curl 通、公网访问不了」就是卡在这一步。
六、用 systemd 托管(别裸跑 ./nginx)
直接 ./nginx 启动的进程不会随开机启动,重启服务器后服务就没了。生产环境务必写个 unit:
/usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
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
systemctl daemon-reload
systemctl enable nginx
systemctl start nginx
systemctl status nginx
改配置后重载用 nginx -t 先验语法,再 nginx -s reload 平滑重载,不要直接重启。
七、三个常见坑
- bind() to 0.0.0.0:80 failed:80 端口被别的进程(Apache、已启动的另一个 nginx)占了,
lsof -i :80 查一下再处理;
- 启动后访问 403:大概率是
conf/nginx.conf 里 user 指令指定的用户没有 html 目录权限,或者权限配置写错;
- 卸载重装:
/usr/local/nginx 直接删掉、make uninstall 可选,别忘了把 systemd unit 和防火墙规则一起清掉,否则下次装的还是老版本。
qidao123.com企服评测-应用市场 编辑提示 |