如何进行Nginx源码编译安装
一、Nginx概述
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
优点:
1、稳定性高;
2、对系统资源消耗低;
3、对HTTP并发连接的处理能力高。
二、安装步骤
1、关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
2、上传压缩包并解压缩
tar zxvf nginx-1.12.2.tar.gz //如果包不在/opt目录下,需要-C /opt/解压到opt目录下
3、安装依赖环境
yum -y install gcc gcc-c++ pcre-devel zlib-devel make //安装C语言、函数、编译等依赖环境
4、进入/opt目录下的Nginx目录并编译安装Nginx
cd /nginx-1.12.2/ //如果不在/opt目录下,在前面加绝对路径。
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module //加载功能模块
make && make install //编译
5、通过软连接优化
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ //优化访问路径
6、创建管理用户
useradd -M -s /sbin/nologin nginx //创建运行用户
7、检查、启用、添加系统管理
nginx -t //检查配置文件是否正确
nginx //启动Nginx
注:
---停止Nginx服务---
cat /usr/local/nginx/logs/nginx.pid //查看Nginx的PID号
kill -3 <PID>
kill -s QUIT <PID>
killall -3 nginx
killall -s QUIT nginx
---重载---
kill -1 <PID>
kill -s HUP <PID>
killall -1 nginx
killall -s HUP nginx
添加Nginx系统服务
方式一:
vim /etc/init.d/nginx //创建nginx文件
#!/bin/bash
# chkconfig: - 99 20 //“-”表示不启用开机启动管理,不加#,chkconfig add nginx 会加载不到配置
# description: Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx" //命令程序文件位置(nginx)
PID="/usr/local/nginx/logs/nginx.pid" //pid文件
case "$1" in
start)
$COM
;;
stop)
kill -s QUIT $(cat $PID)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PID)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
----->wq
chmod +x /etc/init.d/nginx //赋予权限
chkconfig --add nginx //添加为系统服务
systemctl stop nginx
systemctl start nginx //停止、启动服务
注:可在/etc/rc.d/init.d 目录下查看到nginx服务。
方式二:
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx //描述
After=network.target //描述服务类别
[Service]
Type=forking //后台运行类型
PIDFile =/usr/local/nginx/logs/nginx.pid //PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx //启动服务
ExecrReload=/bin/kill -s HUP $MAINPID //根据PID重载配置
ExecrStop=/bin/kill -s QUIT $MAINPID //根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target //启动级别
chmod 754 /lib/systemd/system/nginx.service //设置754权限是一种安全优化
systemctl start nginx.service
systemctl enable nginx.service
8、关于主配置文件注意事项(nginx.conf)
1、备份防止出错:
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak //.bak属于备份文件
2、主配置文件内:
---nginx控制---
#user nobody;
worker processes 1; //工作进程运行数量,可配置成服务器内核数*2,访问量不大设为1
events {
worker_connections 1024; //每个进程最多处理的连接数量
}
注:如果要提高每个进程的连接数需要执行`ulimit -n 65535`命令临时修改本地每个进程同时打开最大文件数。
可使用ulimit -a 命令查看系统允许当前用户进程打开的文件数限制。
永久修改:vim /etc/security/limits.conf。
---nginx正文核心---
sendfile on; //支持文件发送(下载)
#tcp_nopush on;
#此项允许或禁止使用socket的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile时候使用
#keepalive_timeout 0; *//连接保持超时时间,单位:秒
keepalive_timeout 65;
#gzip on; //压缩模块 on 表示开启
server { //web服务的监听配置
listen 80; //默认监听端口
server_name localhost; *//站点域名,需要修改。 www.lrz.com
#charset koi8-r; *//字符集支持(修改为中文)UTF-8
#access_log logs/host.access.log main; //此web服务的主访问日志
(*)location / { //“/”根目录配置(浏览器中,www.baidu.com./)
root html; //网站根目录的位置/usr/local/nginx/html(相对路径)
index index.html index.htm; //支持的首页文件格式
error_page 500 502 503 504 /50x.html; //当发生错误的时候能够显示一个预定的错误页面
location = /50x.html { //错误页面配置
root html;
注:目前需要了解的大概内容
9、启动服务测试
echo "192.168.65.129 www.lrz.com" >> /etc/hosts
访问域名www.lrz.com