/////////////////////////////写在前头//////////////////////////////////////////
Nginx 服务器中文文档:
http://www.nginx.cn/doc

Nginx 变量:
http://blog.sina.com.cn/s/blog_594c47d00101dfyh.html

nginx.conf 配置详解:
http://www.ha97.com/5194.html

nginx rewrite 参数和例子
http://blog.c1gstudio.com/archives/434

/////////////////////////////////目录//////////////////////////////////////////
1.用户认证
2.静态文件不记录日志
3.伪静态
4.防盗链
5.日志
6.访问控制
7.代理

/////////////////////////////////////////////////////////////////////////////////
用户认证:
准备工作:
yum install httpd
htpasswd -c /usr/local/nginx/conf/.htpasswd username
if it the first time to use the tool htpasswd , please use -c

配置参考如下:
server {
listen 80;
server_name yourdomain.com;
index index.html index.htm index.php;
root /yourpath;
location ~ .*admin\.php$ {
auth_basic "aminglinux auth";
auth_basic_user_file /usr/local/nginx/conf/.htpasswd;
#真正起作用的是上面两句,实质上是通过密钥认证
...
}
}

/////////////////////////////////////////////////////////////////////////////////
静态文件不记录日志:
配置参考如下:
location ~ ^.*\.(gif|jpg|jpeg|png|bmp|swf|zip|pdf|bz2|flv|doc|xls|gz|rar)$ {
expires 10d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 12h;
access_log off;
}

/////////////////////////////////////////////////////////////////////////////////
伪静态:
模板如下:
rewrite ^([^\.*])/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.*])/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.*])/thread-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^\.*])/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2page=$3 last;
rewrite ^([^\.*])/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;

Nginx的Rewrite设置及示例
http://ask.apelearn.com/question/239

nginx $document_uri 参数使用
http://ask.apelearn.com/question/993

nginx的301与302如何配置
http://www.lishiming.net/thread-4840-1-1.html

/////////////////////////////////////////////////////////////////////////////////
防盗链:
配置参考如下:
location ~* ^.+\.(gif|jpg|jpeg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpg|bmp|xls)${
valid_referers none blocked server_names *.taobao.com *.baidu.com *.google.com *.google.cn *.soso.com;
if($invalid_referer){
return 403;
}
}

/////////////////////////////////////////////////////////////////////////////////
配置访问日志:
编写日志切割脚本:
vi /usr/local/sbin/logrotate.sh //加入
#!/bin/bash
datedir=`date -d "-1 day"+%Y%m%d`
/bin/mkdir /home/logs/$datadir > /dev/null 2>&1
/bin/mv /home/logs/discuz.log /home/logs/discuz_$datedir.log
/etc/init.d/nginx reload >/dev/null 2> /dev/null
#reload之后就生成了一个新的discuz.log

server{
access_log /home/logs/discuz.log combined_realip
}

日志格式

log_format main '$remote_addr -$remote_user [$time_local]$request'
'"$status" $body_bytes_sent "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for"';

log_format main1 '$proxy_add_x_forwarded_for -$remote_user[$time_local]'
'"$request" $status $body_bytes_sent'
'"$http_referer" "$http_user_agent"'; //此日志格式为,ip不仅记录代理的ip,还记录远程客户端真实ip

错误日志error_log日志级别

error_log 级别分为 debug, info, notice, warn, error, crit 默认为crit,该级别在日志名后面定义格式如下
error_log /your/path/error.log crit;
crit记录的日志最少,而debug记录的日志最多,如果你的nginx遇到一些问题,比如502比较频繁出现,但是看默认的error_log没有看到有意义的信息,那么就可以调一下错误日志级别,当你调成error级别时,错误日志记录的内容会更加丰富

/////////////////////////////////////////////////////////////////////////////////
配置访问控制:
根据目录来限制php解析:
location ~ .*(diy|template|attachments|forumdata|attachment|image)/.*\.php${
deny all;
#这个类似Apache的php_engine off
}

使用user_agent控制客户端访问
location / {
if($http_user_agent ~ 'bingbot/2.0|MJ12bot/v1.4.2|Spider/3.0|YoudaoBot|Tomato|Gecko/20100315'){
return 403;
}
}

/////////////////////////////////////////////////////////////////////////////////
配置Proxy:
server {
listen 80;
server_name www.w1.discuz.com;
index index.html index.htm index.php;
root /data/www;
location ~ \.php$ {
proxy_pass http://192.168.75.132:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

【拓展】
根据访问的目录来区分后端的web
http://www.lishiming.net/thread-920-1-1.html
针对请求的uri来代理
http://www.lishiming.net/thread-1049-1-1.html

Nginx虚拟主机配置模板的更多相关文章

  1. nginx虚拟主机配置

    nginx虚拟主机配置   虚拟主机的概念虚拟主机,就是把一台物理服务器划分成多个"虚拟"的服务器,每一个虚拟主机都可以有独立的域名和独立的目录nginx虚拟主机的配置nginx的 ...

  2. Nginx高性能服务器安装、配置、运维 (5) —— Nginx虚拟主机配置

    六.Nginx虚拟主机配置 建立基于域名的虚拟主机: (1)建立基于域名的虚拟主机配置文件(以abc.com为例): (2)更改虚拟主机配置文件: 更改配置如下(更改部分即可): server { l ...

  3. Nginx教程(二) Nginx虚拟主机配置

    Nginx教程(二) Nginx虚拟主机配置 1 虚拟主机管理 1.1 Nginx管理虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主 ...

  4. Nginx网络架构实战学习笔记(一):Nginx简介、安装、信号控制、nginx虚拟主机配置、日志管理、location 语法、Rewrite语法详解

    文章目录 nginx简介 nginx安装 nginx信号控制 nginx虚拟主机配置 日志管理 location 语法 精准匹配的一般匹配 正则匹配 总结 Rewrite语法详解 nginx简介 Ng ...

  5. Nginx教程(二) Nginx虚拟主机配置 (转)

    Nginx教程(二) Nginx虚拟主机配置 1 虚拟主机管理 1.1 Nginx管理虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主 ...

  6. Nginx虚拟主机配置(20200202)

    一台机器上跑多个站点,即多个域名 curl -xIP:port 域名    用来指定访问的域名在哪个IP的哪个端口上 Nginx默认虚拟主机 不管什么域名解析到该服务器,都会访问到默认虚拟主机 ngi ...

  7. Nginx虚拟主机配置教程

    说明:配置之前先把域名解析到服务器IP地址上 站点1:bbs.osyunwei.com  程序所在目录/data/osyunwei/bbs 站点2:sns.osyunwei.com  程序所在目录/d ...

  8. nginx虚拟主机配置实践

    1.配置基于域名的虚拟主机 [root@web01 html]# egrep -v "#|^$" /application/nginx/conf/nginx.conf.defaul ...

  9. Nginx虚拟主机配置--配置Nginx的主配置文件

    单台Nginx WEB服务器同时会配置N个网站,也可称之为配置N个虚拟域名的主机,即多个域名对应同一个80端 口. 每个虚拟主机可以是一个独立网站.可以具有独立域名,同一台物理机上面的虚拟主机相互之间 ...

随机推荐

  1. java.lang.ClassFormatError: Truncated class file

    之前跑的很好的程序,因为我本地IDE出了问题的原因,倒是编译的错误的class文件,结果点击的时候报这样的错误,后来重新clean了工程,重新打包解压启动,问题依旧. 解决办法: 把tomcat的wo ...

  2. mixin 在传参中可以出现 参数 在类内部可以定义 作用域

    mixin 在传参中可以出现 参数  在类内部可以定义

  3. JavaScript中对事件简单的理解

    事件(event) 1.什么是JavaScript事件? 事件是文档或浏览器中发生的特定交互瞬间. 2.事件流 事件流描述的是从页面中接受事件的顺序,包含IE提出的事件冒泡流与Netscape提出的事 ...

  4. JavaScript遍历IP段内所有IP

    思路:将两个IP转换为数字进行比较,小的那个慢慢加一,直到变成大的那个IP所转换的数字,将这其中的数字再转换为IP地址即为IP段内所有的IP. //IP转数字 function ip2int(ip) ...

  5. VCL控件组件大都应该重载TWinControl的虚函数WndProc来进行处理窗口消息的工作

    TWinControl的构造函数中会调用MakeObjectInstance并且传递MainWndProc作为窗口消息处理函数,而MainWndProc则会调用虚函数WndProc来处理窗口消息.留个 ...

  6. win7安装laravel

    使用Packagist 镜像 建立一个composer.json文件,内容如下: { "name": "laravel/laravel", "desc ...

  7. Js用户引导插件bootstrap-tour

    1.demo直接贴上来了,有什么不懂的,直接去官网上看,地址:http://bootstraptour.com/. 2.这个bootstrap-tour插件的版本是v0.12.0,复制下来代码,引入库 ...

  8. 【云图】怎样制作全国KTV查询系统?

    摘要:本文以[唱吧]531麦霸音乐节为案例,具体解读了怎样导入自有数据到高德云图,并进行检索和展示.最后,调起高德mobile地图来进行路线规划和周边查询. 本案例能够应用在微信开发平台,支付宝公众服 ...

  9. 我的第二个Python小程序

    输出0-100之间的偶数: # Author: fansik # Description: Output an even number between 0 and 100 # method one n ...

  10. Putty常用属性设置

    1. 使用 UTF-8避免显示乱码 2.调整 Lines of scrollback,能够回看更多的控制台输出log 3.调整颜色和字体使得看上去更舒服 4.解决数字键盘无法输入数字的问题 效果图: