目录
前言
1.什么是nginx的服务基础?2.什么是nginx的服务控制?3.什么是nginx虚拟主机?
1.关于Nginx
一款高性能、轻量级Web服务软件 1.稳定性高 2.系统资源消耗低 3.对HTTP并发连接的处理能力高 单台物理服务器可支持30000~50000个并发请求
1.1Nginx编译安装
安装支持软件
[root@localhost ~]# yum -y install pcre-devel zlib-devel
创建运行用户、组
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
编译安装Nginx
[root@localhost ~]# tar zxf nginx-1.12.0.tar.gz
[root@localhost ~]# cd nginx-1.12.0
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --gser=nginx --group=nginx --with-http_stub_status _module
[root@localhost nginx-1.12.0]# make && make install
1.2编译安装Nginx服务
1、关闭防火墙,将安装ngnix所需的软件包上传到/opt目录下
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
2、 安装依赖包
yum -y install gcc gcc-c++ pcre-devel zlib-devel make
3、 编译安装Nginx
tar zxvf nginx-1.12.2.tar.gz -C /opt/
cd /opt/nginx-1.12.2/
./configure \
prefix= /usr/local/nginx \
user= nginx \
-group= nginx \
--with-http_ stub_ status_ module
make && make install
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
useradd -M -S /sbin/nologin nginx
4、 检查、启用、添加系统管理
①常用命令
nginx -t
#检查配置文件是否配置正确
nginx
#启动
2.停止nginx服务
cat /usr/local/nginb/logs/nginx.pid#首先查看nginx的PID号
kill -3 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUlT nginx
重载
kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP <PID号>
nginx平滑升级
添加Nginx系统服务(systemctl or service)
方式一:
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20 # chkcofig - “-” 表示不启用开机启动管理 (同时 若不加“#”, 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
chmod +x /etc/init.d/nginx
chkconfig --add nginx #添加为系统服务
systemctl stop nginx
systemctl start nginx
3.访问状态统计
1、先使用命令/usr/local/nginx/sbin/nginx-V查看已安装的Nginx是否包含HTTP_STUB_STATUS模块
2、修改nginx.conf配置文件,指定访问位置并添加stub_status配置
4.访问控制
###基于授权的访问控制
htpasswd : htpasswd是一个用于目录访问权限认证的一个工具。
-c:创建密码文件,如果文件存在,那么内容被清空重写
1、生成用户密码认证文件
yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db zhangsan
passwd :
#添加nginx管理、给与400权限
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db
2、修改主配置文件相对应目录,添加认证配置项vim /usr/local/nginx/conf/nginx.conf
location /{
auth_basic "secret";
#在主页配置项中添加认证
auth_basic_user_file /usr/local/nginx/passwd.db;#在主页配置项中添加认证root html;
index index.html index.htm;
3、重启服务,访问测试
nginx -t
systemctl restart nginx
测试:浏览器访问http://www.ky11.com————》要求输入账号密码
5.虚拟主机
1、基于域名的Nginx虚拟主机
添加域名解析
echo "192.168.226.128 www.accp.com www.benet.com" >>/etc/hosts
准备虚拟站点网页文档
mkdir -p /var / www / html/ accpmkdir -p /var / www / html / benet
echo "<h1> www.accp.com</h1>" >/var/www / html/accp/index.htmlecho "<h1> www.benet.com</h1>" >/var/www / html/benet/index.html
##修改配置文件
server {
listen 80;
server_name www.accp.com;
charset utf-8;
access_log logs/ accp.access. log;
location / {
root /var/ www/ html/accp;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name www.benet.com;
charset utf-8;
access_log logs/ benet.access. log;
location / {
root /var/ www/ html/ benet;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
6.基于不同端口
server {
listen 192.168.10.13:80;
server_name www.accp.com;
charset utf-8;
access_log logs/ accp.access. log;
location / {
root /var/ www/ html/accp;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 192.168.10.13:8080;
server_name www.accp.com;
charset utf-8;
access_log logs/ accp.access. log;
location / {
root /var/ www/ html/accp;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
7.基于不同IP地址
server {
listen 192.168.10.13:80;
server_name www.accp.com;
charset utf-8;
access_log logs/ accp.access. log;
location / {
root /var/ www/ html/accp;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 192.168.10.10:80;
server_name www.benet.com;
charset utf-8;
access_log logs/ benet.access. log;
location / {
root /var/ www/ html/ benet;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
总结
1、首先nginx 与httpd以静态页面处理+动态页面转发的功能上比较类似,但是nginx “优势在于o抗高并发+0轻量级+ e性能稳定”—》httpd 与nginx区别(小概率的面试题)
2、nginx 的配置文件中包含的模块从全局—》具体匹配的URL,分为以下几种: 全局模块 在此模块中定义的内容,会生效于所有配置
http
应用于用户以http方式访问nginx这个过程
server 服务
适用于通过端口、ip 、域名的访问方式的请求 location——》URL www. ky13.com/index.html