Nginx介绍与安装
1.为什么要学习Nginx
Ⅰ.Nginx的诞生:2004年10月由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的
Ⅱ.当前的WebServer市场占有率
实时更新网址:https://news.netcraft.com/archives/2019/
Ⅲ.Nginx功能介绍:Http服务、反向代理、负载均衡、邮件代理、缓存加速、SSL、flv/mp4流媒体
选择Nginx的核心理由:它能在支持高并发请求的同时保持高效的服务
Ⅳ. Nginx官网、版本
➀ Nginx官网:http://nginx.org/
➁使用版本
Ⅴ.Nginx安装
➀.yum安装
首先,大家可能会用 yum -y install nginx 安装nginx,但是却安装失败,那是因为本地centos系统的yum仓库并没有nginx,需要自己新创建一个“/etc/yum.repos.d/nginx.repo”的文件(其实就是新增一个yum源)
//需要复制到源文件的配置内容
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
其次,使用yum命令查询一下我们的nginx的yum源配置是否成功
然后,使用yum命令安装nginx: yum install -y nginx
查看安装的nginx版本nginx -v
接下来,操作nginx: systemctl start/stop/restart/reload nginx
启动|停止|重启|重新加载配置 nginx
最后,测试用浏览器访问
先检查服务进程:ps aux |grep nginx
检查端口监听:netstat -lntp
如果有防火墙问题,添加放行端口规则:iptables -I INPUT -p tcp --dport 80 -j ACCEPT
➁.源码安装: 如果你已经用上面的yum安装了,先用yum remove nginx
指令卸载
yum安装虽然方便,但是只限于在支持yum的系统上
如果要用到第三方的定制模块,也需要用源码安装
首先,cd /usr/local/src/
在该目录下载源码包wget http://nginx.org/download/nginx-1.14.0.tar.gz
其次,解压展开源码文件
然后,进入解压后的文件夹cd nginx-1.14.0
进行编译前配置./configure --prefix=/usr/local/nginx
如果有报错先安装模块yum -y install pcre-devel openssl openssl-devel
执行编译安装
make && make install
查看版本号
/usr/local/nginx/sbin/nginx -v
接下来,操作nginx,源码安装需要设置自定义启动方式,不然只能用命令行在文件目录启动
/usr/local/nginx/sbin/nginx
//启动
pkill nginx //杀死nginx进程
//停止nginx服务
/usr/local/nginx/sbin/nginx -t
//检测配置文件语法错误
/usr/local/nginx/sbin/nginx -s reload
//重载配置
最后,测试用浏览器访问
源码安装其他设置
- 用脚本去快捷操作服务:
首先,创建nginx脚本文件vi /etc/init.d/nginx
然后在nginx添加内容如下,如果内容有误可以按esc(退出内容写入状态)+:%d清空内容
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"
start()
{
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload()
{
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart()
{
stop
start
}
configtest()
{
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
configtest)
configtest
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|configtest}"
RETVAL=1
esac
exit $RETVAL
之后设置用户的权限 chmod 755 /etc/init.d/nginx
755 用户的权限为:
1.文件所有者可读可写可执行 --7
2.与文件所有者同属一个用户组的其他用户可读可执行 --5
3.其它用户组可读可执行 --5
我们就可以在任意位置用脚本去操作nginx
/etc/init.d/nginx start/stop/restart/reload 启动|停止|重启|重新加载配置
- 每次启动或者重启服务需要进入到/usr/local/nginx下操作,比较麻烦,于是把Nginx添加到系统服务中开机启动:
首先,添加nginx.service vim /lib/systemd/system/nginx.service
然后在nginx.service添加内容如下:
[Unit]
Description=nginx service
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 quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
我们就可以在任意linux目录下调用如下命令
systemctl start nginx.service 启动nginx服务
systemctl stop nginx.service 停止服务
systemctl restart nginx.service 重新启动服务
systemctl list-units --type=service 查看所有已启动的服务
systemctl status nginx.service 查看服务当前状态
systemctl enable nginx.service 设置开机自启动
systemctl disable nginx.service 停止开机自启动