特点
安装环境
yum install gcc gcc-c++ pcre pcre-devel zlib-devel -y
创建程序用户管理nginx
useradd -M -s /sbin/nologin nginx #创建名为nginx的用户,且不允许登录系统,-M代表不创建家目录
解压文件到自定义目录,并进入自定义的/opt/nginx-1.12.2中
tar zxvf nginx-1.12.2.tar.gz -C /opt/ #解压到指定/opt/中
cd /opt/nginx-1.12.2/
编译安装nginx
./configure \
--prefix=/usr/local/nginx \ #指定路径
--user=nginx \ #指定用户
--group=nginx \ #指定组
--with-http_stub_status_module #开启stub_status状态统计模块
编译和安装
make && make install
创建软链接,便于方便管理配置文件
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
测试
nginx -t #检查
nginx #启动
killall -1 nginx #重启
killall -3 nginx #停止
[root@192 sbin]# ls
nginx
[root@192 sbin]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
添加执行权限
chmod +x /etc/init.d/nginx
将脚本文件添加到服务器列表中,并开启服务
chkconfig --add nginx
service nginx start
[root@192 init.d]# service nginx start
[root@192 init.d]# netstat -ntap | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 38948/nginx: master
补充(要想执行开机自启动)
chkconfig --level 35 nginx on #开机自启
进入nginx.conf配置文件
[root@192 init.d]# vim /usr/local/nginx/conf/nginx.conf
# 全局配置
#user nobody; #运行用户
worker_ processes 1; #工作运行数量
#error_ log logs/error.log; #错误日志文件的位置
#pid logs/nginx.pid; #PID文件的位置
# I/O 时间配置
events {
worker_connections 1024; //每进程处理1024个连接
}
在HTTP配置
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main; #访问日志位置
sendfile on; #支持文件发送(下载)
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65; #连接保持超时
#gzip on;
server { #监听web服务器配置
listen 80; #监听端口
server_name localhost; #域名
#charset koi8-r; #默认字符集
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
状态统计模块
nginx内置了 HTTP_STUB_STATUS 状态统计模块,用来反馈当前的 Web 访问情况,配置编译参数时可添加 --with-http_stub_status_module 来启用此模块支持
使用命令查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块
nginx -V #如果在 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ 中创建过软链接直接用 nginx -V 就可以查询
/usr/local/nginx/sbin/nginx -V #没有创建软链接,用这条命令管理
修改 nginx.conf 主配置文件
vim /usr/local/nginx/conf/nginx.conf
#搜索/server 修改其中三个模块即可
server {
listen 80; #监听端口
server_name www.test.com; #域名
charset utf-8; #默认字符集
#access_log logs/host.access.log;
location / {
root html;
index index.html index.htm;
}
location /status { #添加location /status状态统计功能
stub_status on;
access_log off;
}
}
服务重启
service nginx stop
service nginx start
授权访问控制
当用户通过客户端访问网站时,要求用户输入用户名和密码进行正常访问
修改 nginx.conf 主配置文件
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;
}
安装工具
yum -y install httpd-tools
用 htpasswd 命令生成用户认证文件
[root@192 conf]# htpasswd -c /usr/local/nginx/passwd.db test01
New password:
Re-type new password:
Adding password for user test01