设为首页 收藏本站
查看: 3394|回复: 0

[经验分享] LNMP(2)Nginx默认虚拟主机、Nginx用户认证、Nginx域名重定向、Nginx访问日志、

[复制链接]

尚未签到

发表于 2018-11-12 12:51:16 | 显示全部楼层 |阅读模式
  Nginx默认虚拟主机
  Nginx和httpd都有虚拟主机,在httpd中第一个被加载的就是默认虚拟主机;但是在Nginx中它有一个配置用来标记默认虚拟主机(default_server),如果不做标记,那么第一个也是默认为虚拟主机。
  
  
  默认虚拟主机设置:
  1.需改配置文件/usr/local/nginx/conf/nginx.conf
  cd /usr/local/nginx/conf/
  vim nginx.conf
   DSC0000.jpg
  删除内容后,加上一行(在httpd{}里加)include vhost/*.conf;
  (include 其就是引入文件的命令一样。这里是引入当前目录(/conf/)的 vhost/*.conf这类文件)
   DSC0001.jpg
  在/usr/local/nginx/conf下创建vhost目录
  mkdir vhost
  cd vhost
  vim aaa.com.conf (编辑这个新文件,增加内容)
  
  server
  {
  listen 80 default_server;  // 有这个标记的就是默认虚拟主机
  server_name aaa.com;
  index index.html index.htm index.php; //定义索引
  root /data/wwwroot/default;  //指定我们访问网站路径
  }
DSC0002.jpg

  创建 default目录(因为我们/data/wwwroot/已经创建)
  (mkdir -p /data/wwwroot/default
  mkdir /data/wwwroot/default
  cd /data/wwwroot/default
  vim index.html  (在default目录定义index.html索引页)
   DSC0003.jpg
  (此时如果配置文件无误,这可以正常的include /usr/local/nginx/conf/vhost/aaa.com.conf 这个虚拟主机)
  修改完后检查一下nginx配置文件是否有错
  (1)检查配置文件有没有错
  /usr/local/nginx/sbin/nginx -t  
  (2)重新加载一下配置文件 (-s>
  /usr/local/nginx/sbin/nginx -s>
  (这两条命令类似apache中的 -t 和 grantful)
   DSC0004.jpg
   DSC0005.jpg
  
  Nginx用户认证
   DSC0006.jpg
  用户认证这部分内容写在虚拟主机里:
  
  步骤:
  1.新增一个test.com.com虚拟主机:
  cd /usr/local/nginx/conf/
  vim test.com.conf   (添加内容)
  server
  {
  listen 80;
  server_name test.com;
  index index.html index.htm index.php;
  root /data/wwwroot/test.com;
  location  /
  {
  auth_basic              "Auth";
  auth_basic_user_file   /usr/local/nginx/conf/htpasswd;  //密码文件路径
  }
  }
  
   DSC0007.jpg
  生成密码文件与(使用htpasswd工具)
  yum install -y httpd
  htpasswd -c /usr/local/nginx/conf/htpasswd cansheng
   DSC0008.jpg
   DSC0009.jpg
  
  测试:
  创建test.com这个虚拟主机的访问路径文件:
   DSC00010.jpg
   DSC00011.jpg
  curl -ucansheng:123456 -x127.0.0.1:80 test.com
   DSC00012.jpg
  (这里是对整个主机都用户认证的)
  
  针对一个目录做用户认证
  只需要在虚拟主机配置文件中 location 那行 把要用户认证的目录添加上就行
   DSC00013.jpg
  
  每次修改完后检查一下nginx配置文件是否有错
  (1)检查配置文件有没有错
  /usr/local/nginx/sbin/nginx -t  
  (2)重新加载一下配置文件 (-s>
  /usr/local/nginx/sbin/nginx -s>
  测试:
  创建目录:mkdir /data/wwwroot/test.com/admin
  写入内容:echo "test test.com/admin dir" > /data/wwwroot/test.com/admin/index.html
   DSC00014.jpg
   DSC00015.jpg
  
  针对一个访问的url做用户认证:
  修改配置文件:vim /usr/local/nginx/conf/vhost/test.com.conf
   DSC00016.jpg
  测试:不加用户名密码也是报401:
   DSC00017.jpg
  
  
  Nginx域名重定向
  
  
  1.编辑配置文件:
  vim /usr/local/nginx/conf/vhost/test.com.conf
   DSC00018.jpg
  
  每次修改完后检查一下nginx配置文件是否有错
  (1)检查配置文件有没有错
  /usr/local/nginx/sbin/nginx -t  
  (2)重新加载一下配置文件 (-s>
  /usr/local/nginx/sbin/nginx -s>
DSC00019.jpg

  测试:
   DSC00020.jpg
   DSC00021.jpg
  (如果我的虚拟主机中没有定义到该域名,则会跳转到默认虚拟主机)
  
  Nginx访问日志
   DSC00022.jpg
  1.打开住配置文件:vim /usr/local/nginx/conf/nginx.conf
  搜索 log_format
   DSC00023.jpg
   DSC00024.jpg
  
  
  
DSC00025.jpg

  2.编辑虚拟主机test.com配置文件:
  vim /usr/local/nginx/conf/nginx.conf/test.com.conf
   DSC00026.jpg
  
  每次修改完后检查一下nginx配置文件是否有错
  (1)检查配置文件有没有错
  /usr/local/nginx/sbin/nginx -t  
  (2)重新加载一下配置文件 (-s>
  /usr/local/nginx/sbin/nginx -s>
  
  测试:
   DSC00027.jpg
  查看一下日志文件内容:
   DSC00028.jpg
  
  
  Nginx日志切割
  nginx 日志简单,不像httpd还有自带切割工具。切割Nginx日志需借助系统的切割工具或者自定义脚本。
  自定义脚本做切割:
  1.创建一个脚本文件:
  vim /usr/local/sbin/nginx_logrotate.sh
  添加内容
  
  #! /bin/bash
  ## 假设nginx的日志存放路径为/data/logs/
  d=`date -d "-1 day" +%Y%m%d`   //表示昨天的日期,做切割一般都是对昨天的日志操作
  logdir="/tmp/"  //日志存放目录为/tmp/(因为之前定义在/tmp/)
  nginx_pid="/usr/local/nginx/logs/nginx.pid"    //有pid才能执行最后kill那个命令
  cd $logdir
  for log in `ls *.log`
  do
  mv $log $log-$d
  done
  /bin/kill -HUP `cat $nginx_pid` //相当于前面的命令执行完,日志改完名字后生成源来的日志文件名/tmp/test.com.log
DSC00029.jpg

  执行以下脚本
  sh -x /usr/local/sbin/nginx_logrotate.sh (-x 可以看到执行过程)
   DSC00030.jpg
  查看日志目录生产的文件:
  ls /tmp/
   DSC00031.jpg
  (当我们的日志文件够多时要即使处理,删除,减少对磁盘的占用
  命令:find /tmp/ -name *.log-* -type f -mtime +30 |xargs rm
  (查找到*.log-*的这些文件,把30天前的删除, xargs rm)
  )
  
  写完脚本后:如果想在我们设定的时间里定时执行,需要写个任务计划:
  命令:crontab -e
   DSC00032.jpg
  这样我们编写的脚本 /usr/local/sbin/nginx_logrotate.sh就会在每天凌晨执行。
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-634170-1-1.html 上篇帖子: Nginx安装加载ssl错误 下篇帖子: 十二周二课 Nginx安装、Nginx默认虚拟主机、Nginx用户认证、Nginx域名重定向
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表