目录
编译安装nginx
root和alias
升级
nginx访问状态统计配置
基于授权的的访问控制
基于客户端的访问控制
编译安装nginx
1.关闭防火墙,安全机制,去官网下载nginx压缩包,并进行解压
systemctl stop firewalld #关闭防火墙
systemctl disable --now firewalld #开机不自启并立即关闭防火墙
setenforce 0 #关闭安全机制
2.安装依赖包,由于nginx的配置及运行需要pcre、zlib、openssl等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
3.创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)
useradd -M -s /sbin/nologin nginx #建立nginx程序用户
4.编译安装Nginx
cd nginx-1.12.0/ #进入到解压完的nginx包下
./configure \ #指定编译安装的路径
--prefix=/usr/local/nginx \ #指定nginx的安装路径
--user=nginx \ #指定用户名
--group=nginx \ #指定组名
--with-http_stub_status_module #启用 http_stub_status_module 模块以支持
状态统计
make && make install #转为二进制文件并安装
5.在$PATH路径下创建nginx的软连接
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #让系统识别nginx的操作命令
6.添加nginx系统服务
方法一
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.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
方法二
vim /lib/systemd/system/nginx.service
[Unit] #服务的说明
Description=nginx #描述服务
After=network.target #依赖,当依赖的服务启动之后再启动自定义的服务
[Service] #服务运行参数的设置
Type=forking #是后台运行的形式
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx #为服务的具体运行命令
ExecReload=/bin/kill -s HUP $MAINPID #为重启命令
ExecStop=/bin/kill -s QUIT $MAINPID #为停止命令
PrivateTmp=true #表示给服务分配独立的临时空间
[Install] #服务安装的相关设置,可设置为多用户
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
root和alias
修改nginx配置文件
添加root和alias俩段
重新加载nginx服务
分别在/var/www/kk和/var/web下创建一个文件用来检测
去网页上搜索地址看是否成功
升级
原始版本
先去官网下载最新版本压缩包,并解压,然后备份老文件,并进行替换老文件
cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
cp objs/nginx /usr/local/nginx/sbin/nginx
make upgrade
现在版本
nginx访问状态统计配置
1.先使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块,若没有模块,就去到解压的安装包里重新编译安装这个模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make
make install
2.修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
vim /usr/local/nginx/conf/nginx.conf
......
http {
......
server {
listen 80;
server_name www.wwy.com;
charset utf-8;
location / {
root html;
index index.html index.php;
} #添加 stub_status 配置
location /status { #访问位置为/status
stub_status on; #打开状态统计功能
access_log off; #关闭此位置的日志记录
}
}
}
3.重启服务,访问测试
systemctl restart nginx
systemctl stop firewalld
setenforce 0
4.测试是否成功
浏览器访问 http://ip地址/status 例:http://192.168.75.30/status
Active connections:表示当前的活动连接数,即当前与 Nginx 服务器建立的连接数。
server accepts handled requests :表示已经处理的连接信息
三个数字依次表示服务器已接收的连接数;服务器成功处理的连接数;服务器累计处理的总请求数(在保持连接模式下,请求数量可能会大于连接数量)
Reading:表示当前正在从客户端读取数据的连接数。
Writing:表示当前正在向客户端写入数据的连接数。
Waiting:表示当前空闲并等待请求的连接数。
注:在虚拟机的同网段主机里也可以看
基于授权的的访问控制
1.生成用户密码认证文件
yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db 用户名
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db
2.修改主配置文件相对应目录,添加认证配置项
vim /usr/local/nginx/conf/nginx.conf
......
server {
location / {
......
auth_basic "secret"; #设置密码提示框文字信息
auth_basic_user_file /usr/local/nginx/passwd.db;
}
}
3.重启服务,访问测试
nginx -t #查看语法是否有误
systemctl restart nginx
基于客户端的访问控制
访问控制规则如下:
deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。
进入配置文件修改
vim /usr/local/nginx/conf/nginx.conf
......
server {
location / {
......
##添加控制规则##
allow 192.168.75.20; #允许访问的客户端 IP
deny all; #拒绝其它IP客户端访问
}
}
systemctl restart nginx