Linux操作篇之LNMP--实验(三)

一、状态统计信息

在nginx中,可以配置使其可以查看当前nginx访问统计信息。使用的是安装nginx时,安装过--with-http_stub_status_module这一模块。

找到nginx主配置文件,在server标签下可新建location标签。填写以下代码。(注意后面的分号和括号)

location /nginx_status {
                stub_status on; //开启状态信息统计
                access_log off; //访问状态统计时,不记入到统计中

}

Linux操作篇之LNMP--实验(三)

 Linux操作篇之LNMP--实验(三)

检查没有问题后,可以对其服务进行重启,然后完成后,浏览器输入www.IP/nginx_status就可以查看了。

Linux操作篇之LNMP--实验(三)

 其中:第一行表示当前的连接数、第二行代表以处理的连接信息、第三行依次代表处理的连接数量;成功的TCP握手次数;已处理的请求。

二、目录保护(与apache目录保护一样)

主配置文件中添加以下代码。

auth_basic "Hell Word!";

auth_basic_user_file /usr/local/nginx/html/htpasswd.nginx

Linux操作篇之LNMP--实验(三)

然后使用apache的htpasswd命令生成密码文件(需要安装apache,并不需要开启服务,只需要使用htpasswd命令)

htpasswd -c /usr/local/nginx/html/htpasswd.nginx xiaoming   (-c是新建第一个,当第二个开始使用-m,路径与密码文件名称要与配置文件中填写一致)

New password:
Re-type new password

检查没有问题后,重启nginx服务,访问时,需要输入用户名密码

Linux操作篇之LNMP--实验(三)

三、访问控制(限制IP登录)

限制其他用户登录统计信息,只有本机可以。

allow IP 代表允许访问的IP地址

deny IP/掩码  代表禁止访问的地址(段)

0.0.0.0/0代表禁止所有IP访问

Linux操作篇之LNMP--实验(三)

 

四、虚拟主机

server {
        listen       80;
        server_name www.test1.com;
        root    html/test1;
        index   test1.php;
        location ~ \.php$ {
            root           html/test1;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  test1.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
    }
server {
        listen       80;
        server_name  www.test2.com;
        root    html/test2;
        index   test2.php;
        location ~ \.php$ {
            root           html/test2;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  test2.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
    }

Linux操作篇之LNMP--实验(三)

 新建测试网页
修改hosts文件,添加域名解析,就可以进行访问了

Linux操作篇之LNMP--实验(三)

五、反向代理

填写要代理的服务器地址

 location / {
            proxy_pass http://192.168.171.133:80;
        }

Linux操作篇之LNMP--实验(三)

测试结果正确

 Linux操作篇之LNMP--实验(三)

 Linux操作篇之LNMP--实验(三)

六、反向代理(负载均衡)

设三台服务器,两个安装apache,作为后端服务器;一台安装nginx,为反向代理服务器。设置域名为www.test.com,测试一apache服务器测试页面test1;测试二apache服务器测试页面test2。(正常情况下是一样的。这里为了可以看清负载均衡,所以设置不一样,方便区分)

建立后端资源池,backends 是资源池名称,下面是后端(apache)服务器的IP和服务端口。(此段代码在server标签之前)

upstream backends {
        server 192.168.171.133:80;
        server 192.168.171.134:80;
}

添加反向代理,代理的地址就是上面填写的资源池名称;下面是重写请求头部,保证所有网站都可以访问成功。
        location / {
            proxy_pass http://backends;
            proxy_set_header Host $host;
        }

Linux操作篇之LNMP--实验(三)

 测试结果正确

Linux操作篇之LNMP--实验(三)

 默认情况下是按照时间顺序依次轮流分配到后端服务器。可以自己设置比例。

Linux操作篇之LNMP--实验(三)

 这样访问一次test1,访问两次test2。

 Linux操作篇之LNMP--实验(三)

七、https

主配置文件

由上往下:后端服务器池

加载ssl.test文件

虚拟主机监听443端口,访问https://www.test.com。

虚拟主机监听80端口,访问http://www.test.com时,重定向到https://www.test.com

Nginx报The plain HTTP request was sent to HTTPS port,是因为每一次用户请求试图通过HTTP访问你的网站,这个请求被重定向到HTTPS。于是Nginx预计使用SSL交互,但原来的请求(通过端口80接收)是普通的HTTP请求,所以需要将ssl.test文件中的ssl  on改为off,在443后面填写ssl。

upstream backends {
        server 192.168.171.133:80;
        server 192.168.171.134:80;
}
        include ssl.test;
server {
        listen       443 ssl;
        server_name www.test.com;
        root    html;
        index   test.php;
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  test.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
         location / {
            proxy_pass http://backends;
            proxy_set_header Host $host;
        }
    }

server {
        listen       80;
        server_name www.test.com;
        root    html;
        index   test.php;
        rewrite ^(.*)$ https://www.test.com permanent;
}

ssl.test文件:

ssl     off;
ssl_certificate /usr/local/nginx/conf/ssl/test.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/test.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA128+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+2DES:!MD5";

上一篇:Mac 系统php多版本共存


下一篇:再看c语言之getchar/putchar