WEB服务器群集——Nginx安装、配置以及设置访问控制

Nginx是一款高性能、轻量级的web服务

特点

  • 稳定性高
  • 系统资源消耗低,内存占用少
  • 处理HTTP高并发连接能力强
Nginx手工编译安装

安装环境

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

测试访问nginx首页
WEB服务器群集——Nginx安装、配置以及设置访问控制_第1张图片

制作脚本便于进行对nginx的管理
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访问控制

进入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 的状态统计功能,除了启用内建模块以外,还需要修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置代码

修改 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

你可能感兴趣的:(WEB服务器群集)