Nginx简单配置

  • Nginx默认虚拟主机(在nginx中;为结束一段配置)

  • vim /usr/local/nginx/conf/nginx.conf (增加)

  • lnclude vhost/*.conf

  • mkdir /usr/local/nginx/conf/vhost

  • cd !$; vim default.conf (加入以下内容)

  • Server
    
  • {
    
  •     listen 80 default_server; (有这个标记的就是默认虚拟主机)
    
  •     server_name aaa.com;
    
  •     index index.html index.htm index.php;
    
  •     root /data/wwwroot/default;
    
  • } 
    
  • mkdir -p /data/wwwroot/default/

  • echo “This is a default site.” >/data/wwwroot/default/index.html

  • /usr/local/nginx/sbin/nginx -t (检测)

  • /usr/local/nginx/sbin/nginx -s reload (重新加载)

  • curl localhost (测试)

  • curl -x127.0.0.1:80 123.com (指定域名)

  • Nginx用户认证

  • Vim /usr/local/nginx/conf/vhost/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;
    
  •   }
    
  • }
    
  • yum install -y httpd

  • htpasswd -c(生成,会覆盖掉原来的文件) /usr/local/nginx/conf/htpasswd aming

  • /usr/local/nginx/sbin/nginx -t

  • /usr/local/nginx/sbin/nginx -s reload

  • (测试配置并重新加载)

  • curl -x127.0.0.1:80 test.com

  • curl -uuser:password -x127.0.0.1:80 test.com

  • mkdir /data/wwwroot/test.com

  • echo “test.com” > /data/wwwroot/test.com/index.html

  • curl -uuser:password -x127.0.0.1:80 test.com

  • 单目录认证可以直接在以上配置文件中将location /admin/(可以是任意单目录,或~ admin。Html(为认证匹配任意文件))即可。

  • Nginx域名重定向

  • 更改test.com.conf

  • server
    
  • {
    
  •   listen 80;
    
  •   server_name test.com test1.com test2.com;
    
  •   index index.html index.htm index.php;
    
  •   root /data/wwwroot/test.com;
    
  •  if ($host !=’test.com’) {
    
  • Rewrite ^/(.*)$ http://test.com/$1 permanent;
    
  • }
    
  • }
    
  • server_name(后面支持写多个域名,这里要和httpd的做一个对比)

  • permanent为永久重定向,状态码为301,如果写redirect则文302。

  • /usr/local/nginx/sbin/nginx -t

  • /usr/local/nginx/sbin/nginx -s reload

  • curl -x127.0.0.1:80 test1.com/index.html -I(测试test1.com域名重定向是否能成功访问test.com)

  • Nginx访问日志

  • Vim /usr/local/nginx/conf/nginx.conf (搜索log_format,log_format是用来定义日志格式的)

  • $remote_addr(客户端IP(公网IP))

  • $http_x_forwarded_for(代理服务器的IP)

  • $time_local(服务器本地时间)

  • $host(f访问主机名(域名))

  • $request_uri(访问的url地址)

  • $status(状态码)

  • $http_referer(referer)

  • $http_user_agent(user_agent)

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

  • access_log /tmp/1.log/ combined_realip (这里的combined——realIP就是在nginx.com中定义的日志格式名字)

  • /usr/local/nginx/sbin/nginx -t

  • /usr/local/nginx/sbin/nginx -s reload

  • curl -x127.0.0.1:80 test.com -I

  • cat /tmp/1.log

  • Nginx日志切割(nginx本身不自带日志切割工具)

  • 自定义shell脚本

  • Vim /usr/local/sbin/nginx_log_rotate.sh(写入如下)

  • #! /bin/bash
    
  • ##假设nginx的日志存放路径为/tmp/
    
  • d=’data -d “-1 day” +%Y%m%d’       
    
  • #(在不明白变量意义时可以直接在命令行运行一下)
    
  • logdir=”/tmp/”
    
  • nginx_pid=”/usr/local/nginx/logs/nginx.pid”
    
  • cd $logdir
    
  • for log in ‘ls *.log’
    
  • do
    
  •   mv $log $log-$d
    
  • done
    
  • /bin/kill -HUP ‘cat $nginx_pid’
    
  • find /tmp/ -name *.log-* -type f -mtime +30 |xargs rm
    
  • #(此为删除以.log为中间名的30天以前的日志)
    
  • 任务计划

  • crontab -e

  • 0 0 * * * /bin/bash/ /usr/local/sbin/nginx_log_rotate.sh (每天凌晨零点执行一次以上脚本)

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

  • 配置如下

  • vim /tmp/test.com.conf

  • server
    
  • {
    
  • location ~ .\.(gif|jpg|jpeg|png|bmp|swf)$
    
  • {
    
  •      expires     7d;
    
  •      access_log  off;
    
  •  }
    
  • location ~.*\.(js|css)$
    
  •  {
    
  •      expires    12h;
    
  •      access_log  off;
    
  •  }
    
  • access_log /tmp/test.com.log user;

  • /usr/local/nginx/sbin/nginx -t

  • /usr/local/nginx/sbin/nginx -s reload

  • curl -x127.0.0.1:80 test.com.conf

  • Nginx防盗链

  • vim /tmp/test.com.conf

  • 配置如下

  • Location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$
    
  •  {
    
  •      expores 7d;
    
  •      valid_referers none blocked server_names *.test.com;
    
  •      if($invalid_referer){
    
  •      retum 403;
    
  •      }
    
  •      access_log off;
    
  •  }
    
  • /usr/local/nginx/sbin/nginx -t

  • /usr/local/nginx/sbin/nginx -s reload

  • curl -x127.0.0.1:80 -I test.com/1.gif

  • curl -e “http://www.baidu.com/1.txt” -x127.0.0.1:80 -I test.com/1.gif (测试)

  • curl -e “http://www.test.com/1.txt” -x127.0.0.1:80 -I test.com/1.gif (测试)

  • Nginx访问控制

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

  • Location /admin/
    
  • {
    
  •     Allow 192.168.xxx.xxx;
    
  •     Allow 127.0.0.1;
    
  •     Deny all;
    
  • }
    
  • mkdir /data/wwwroot/test.com/admin/

  • echo “test,test” >/data/wwwroot/test.com/admin/1.html

  • /usr/local/nginx/sbin/nginx -t

  • /usr/local/nginx/sbin/nginx -s reload

  • curl -x127.0.0.1:80 test.com/admin/1.html -I

  • curl -x192.168.xxx.xxx:80 test.com/admin/1.html -I

  • cat /tmp/test.com.log (查看日志)

  • 可以匹配正则

  • location ~.*(uoload|image)/.*\.php$         (禁止PHP)
    
  •  {
    
  •     Deny all;
    
  •  }
    
  • 根据user_agent限制

  •     If($http_user_agent ~* ‘Spider/3.0|YoudaoBot|Tomato’)
    
  •  {
    
  •     Return 403;
    
  •  }
    
  • Deny all和return 403效果一样。

  • Nginx解析php相关配置

  • 配置如下

  • location ~ \.php$
    
  • {
    
  •   Include fastcgi_params;
    
  •   Fastcgi_pass unix:/tmp/php-fcgi.sock;      
    
  • ##(如出现502,先要确认nginx里的地址和php里的listen是否对应)

  •   Fastcgi-index index.php;
    
  •   Fastcgi-param SCRIPT_FILENAME/data/wwwroot/test.com$fastcgi_script_name;
    
  • }
    
  • /usr/local/nginx/sbin/nginx -t

  • /usr/local/nginx/sbin/nginx -s reload

  • Curl -x127.0.0.1:80 test.com

  • fastcgi_pass(用来指定php-fpm监听的地址或者socket)

  • Nginx代理

  • 用户<===>代理服务器<===>WEB服务器

  • Cd /usr/local/nginx/conf/vhost

  • Vim proxy.conf(加入以下内容)

  • Server
    
  • {
    
  • listen 80;
    
  • server_name ask.apelearn.com
    
  • location /
    
  •  {
    
  •   proxy_pass   http://121.201.9.155/;
    
  •   proxy_set_header Host  $host;
    
  •   proxy_set_header X-Real-IP   $remote_addr;
    
  •   proxy_set _header X-Forwarded-For $proxy_add_x_forwarded_for;
    
  •  }
    
  • }
    
  • /usr/local/nginx/sbin/nginx -t

  • /usr/local/nginx/sbin/nginx -s resload

  • curl -x127.0.0.1:80 ask.apelearn.com/robots.txt

转载于:https://my.oschina.net/u/4095969/blog/3050583

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值