2018.9.20笔记

Nginx默认虚拟主机

1去掉 usr/local/nginx/conf/nginx.conf 中 的内容 2Server 3{ 4..... 5} 6 7vim /usr/local/nginx/conf/nginx.conf //增加 8include vhost/*.conf; //注意;号别漏, 在conf目录下加个vhost目录 9 10mkdir /usr/local/nginx/conf/vhost 11cd !$ 12vim default.conf //加入如下内容 13 14server 15{ 16 listen 80 default_server; // 有这个标记的就是默认虚拟主机 17 server_name 120.com; 18 index index.html index.htm index.php; 19 root /data/wwwroot/default; 20} 21 22 23mkdir -p /data/wwwroot/default/ 24echo "This is a default site." >/data/wwwroot/default/index.html 25/usr/local/nginx/sbin/nginx -t 26/usr/local/nginx/sbin/nginx -s reload 27curl localhost 28curl -x127.0.0.1:80 120.com

 Nginx用户认证

vim /usr/local/nginx/conf/vhost/test.com.conf//写入如下内容

1server 2{ 3 listen 80; 4 server_name test.com; 5 index index.html index.htm index.php; 6 root /data/wwwroot/test.com; 7 8 location / 9 { 10 auth_basic "Auth"; 11 auth_basic_user_file /usr/local/nginx/conf/htpasswd; 12 } 13} 14 15 16yum install -y httpd 17htpasswd -c /usr/local/nginx/conf/htpasswd aming -c 创建 -m md5加密, 第二次用不用 -c创建了 18 19mkdir /data/wwwroot/test.com 20echo "test.com">/data/wwwroot/test.com/index.html 21curl -x127.0.0.1:80 test.com -I //状态码为401说明需要验证 22curl -uaming:passwd -x127.0.0.1:80 test.com -I 访问状态码变为200 passwd改为自己的aming的密码 23 24-t && -s reload //测试配置并重新加载 25 26编辑windows的hosts文件,然后在浏览器中访问test.com会有输入用户、密码的弹窗 27 28针对目录的用户认证 29location /admin/ 30 { 31 auth_basic "Auth"; 32 auth_basic_user_file /usr/local/nginx/conf/htpasswd; 33} 34 35mkdir /data/wwwroot/test.com/admin 36echo "admin in test.com">/data/wwwroot/test.com/admin/index.html 37-t && -s reload //测试配置并重新加载 38 39针对单个文件 40location ~ admin.php // ~(.*)admin.php$ 更全面匹配 包含 admin php结尾的文件

Nginx域名重定向

更改test.com.conf

1server 2{ 3 listen 80; 4 server_name test.com test1.com test2.com; 5 index index.html index.htm index.php; 6 root /data/wwwroot/test.com; 7 if ($host != 'test.com' ) { 8 rewrite ^/(.*)$ http://test.com/$1 permanent; 9 } 10} 11 12permanent 301的意思, 想改成302用 redirect 13 14server_name后面支持写多个域名,这里要和httpd的做一个对比 15permanent为永久重定向,状态码为301,如果写redirect则为302 16 17测试 18curl -x127.0.0.1:80 test1.com/1.php -i

 Nginx访问日志

日志格式 vim /usr/local/nginx/conf/nginx.conf //搜索log_format

combined_realip 为 日志定义的名字, 可自己更改。

除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加

access_log /tmp/1.log combined_realip;

这里的combined_realip就是在nginx.conf中定义的日志格式名字, 如果不写会使用默认的日志格式(比较简单)

-t && -s reload curl -x127.0.0.1:80 test.com -I cat /tmp/1.log

 Nginx日志切割

自定义shell 脚本

vim /usr/local/sbin/nginx_log_rotate.sh//写入如下内容

1#! /bin/bash 2## 假设nginx的日志存放路径为/data/logs/ 3d=`date -d "-1 day" +%Y%m%d` 4logdir="/data/logs" 5nginx_pid="/usr/local/nginx/logs/nginx.pid" //pid位置要正确 6cd $logdir 7for log in `ls *.log` 8do 9 mv $log $log-$d 10done 11 12/bin/kill -HUP `cat $nginx_pid` //等效于 /usr/local/nginx/sbin/nginx -s reload 13 14sh -x /usr/local/sbin/nginx_log_rotate.sh // x选项可看到脚本执行过程

静态文件不记录日志和过期时间

配置如下 红色的\代表脱意 | 表示或者 expires 过期时间

1location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ 2{ 3 expires 7d; 4 access_log off; 5} 6 7location ~ .*\.(js|css)$ 8 { 9 expires 12h; 10 access_log off; 11 } 12 13-t && -s reload 14curl -x127.0.0.1:80 -I www.test.com/images/123.png 15tail -f /tmp/1.log

Nginx防盗链 

1location ~* ^.+\.(ico|gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ 2{ 3 expires 7d; 4 valid_referers none blocked server_names *.test.com ; //先定义一个白名单 5 if ($invalid_referer) { 6 return 403; //也可以写成 deny all 7 } 8 access_log off; 9}

Nginx访问控制

需求:访问/admin/目录的请求,只允许某几个IP访问,配置如下:

1location /admin/ 2{ 3 allow 192.168.192.134; 4 allow 127.0.0.1; 5 deny all; 6}

nginx并没有顺序一说, 但一旦匹配一条规则, 后面将不再匹配

Nginx解析php相关配置

1vim /data/wwwroot/test.com/1.php //增加如下内容, 并打开网页测试, 并不能做php解析 2<?php 3phpinfo(); 4?>

配置如下: //让nginx能解析php

1location ~ \.php$ 2 { 3 4 # include语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中 5 include fastcgi_params; 6 # fastcgi_pass 用来指定php-fpm监听的地址或者socket, 可以是本机或者其它 7 fastcgi_pass unix:/tmp/php-fcgi.sock; //写错会报错502错误 , 检查/usr/local/php-fpm/etc/php-fpm.conf 里listen定义的是什么,可改为监听ip和端口 8 fastcgi_index index.php; 9 # 脚本文件请求的路径 10 fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name; //路径要写对, 红色指的是配置文件里的root部分 11 }

 Nginx代理

1cd /usr/local/nginx/conf/vhost 2vim proxy.conf //加入如下内容 3server 4{ 5 listen 80; 6 server_name ask.apelearn.com; //定义用户访问的域名 7 location / 8 { 9 proxy_pass http://121.201.9.155/; //告诉nginx真正的ip在这里(web服务器ip) 10 proxy_set_header Host $host; //$host 等于 上面的 server_name 11 proxy_set_header X-Real-IP $remote_addr; 12 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 13 } 14}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

nginx 启动、停止、关闭

使用3A服务器搭建的centos系统安装nginx教程在我的往期博客中1,nginx指定配置文件/usr/local/nginx/sbin/nginxc/usr/local/nginx/conf/nginx.conf1c参数指定了要加载的nginx配置文件路径1,从容停止Nginx:killQUIT主进程号2,快速停止Nginx:kil

Nginx配置https

一、开启nginx的ssl模块1.未安装过nginx,编译安装配置参数如下:./configure\prefix/usr/local/nginx\withpcre\withhttp\_ssl\_modulessl模块\withhttp\_stub\_status\_module\wit

LNMP架构之虚拟主机配置、用户认证及域名重定向

本文索引:配置nginx虚拟主机nginx用户认证针对目录针对文件域名重定向配置nginx虚拟主机修改nginx主配置文件root@localhostnginx1.12.2vim/usr/local/nginx/conf/ngi