/////////////////////////////写在前头//////////////////////////////////////////
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. Xmind 8 update 4 破解教程(破解补丁+破解步骤+下载地址)

    一.原始教程 原教程很详细,直接参考: http://www.voidcn.com/article/p-yyybmcqq-bnz.html 若无法访问请点击:http://df1551e3.wiz03 ...

  2. Xamarin.Forms学习之XAML命名空间

    大家好,我又悄咪咪的来了,在上一篇的Xamarin文章中简单介绍了Xamarin的安装过程,妈蛋没想到很多小朋友很感激我,让他们成功的安装了Xamarin,然后......成功的显示了经典的两个单词( ...

  3. the core of Git is a simple key-value data store The objects directory stores all the content for your database

    w https://git-scm.com/book/en/v1/Git-Internals-Plumbing-and-Porcelain Git is a content-addressable f ...

  4. <2013 08 26> 雅思听力相关

    近两日开始接触雅思题型,初步做了6套剑桥雅思题的听力部分,完成情况还可以,这里做个总结. 1.听力总共约40左右道题目,30min左右完成,结束后有十分钟把答案写到答题卷上.所有听力材料都只播放一遍! ...

  5. 和openjdk在一起的第一天-第一次接触有些生疏,就先熟悉一下吧

    暂时搞到了openjdk7,就将就着看吧,(为什么csdn全部都是收费啊,llllj),但是还是决定先读这个openjdk7 还有,不知道怎么的就想试试markdown,也不知道好用不 hello w ...

  6. Yii2 使用 Beanstalk 队列系统

    参考网址: Beanstalk:https://github.com/kr/beanstalkd Beanstalk console:https://github.com/ptrofimov/bean ...

  7. Kattis - abc 【水】

    题意 给出三个数,然后给出一个顺序,有ABC三个字母构成, A是最大的数字 B是中间的数字 C是最小的数字 根据 ABC的顺序 给出 数字的顺序 思路 先排序一下,然后用 MAP 双向标记一下 AC代 ...

  8. Zuul

    一.zuul是什么 zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架. ...

  9. linux systemctl 指令 —— 阮一峰

    Systemd 指令 原文链接如果有效,请点击原文链接查看.原文:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.ht ...

  10. public,protected,privat区别

    关于从基类继承来的方法和属性的保护: --class Pig:public Animal {...} C++不仅允许你对在类里定义的方法和属性实施访问控制,还允许你控制子类可以访问基类里的哪些方法和属 ...