Nginx虚拟主机配置模板
/////////////////////////////写在前头//////////////////////////////////////////
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虚拟主机配置模板的更多相关文章
- nginx虚拟主机配置
nginx虚拟主机配置 虚拟主机的概念虚拟主机,就是把一台物理服务器划分成多个"虚拟"的服务器,每一个虚拟主机都可以有独立的域名和独立的目录nginx虚拟主机的配置nginx的 ...
- Nginx高性能服务器安装、配置、运维 (5) —— Nginx虚拟主机配置
六.Nginx虚拟主机配置 建立基于域名的虚拟主机: (1)建立基于域名的虚拟主机配置文件(以abc.com为例): (2)更改虚拟主机配置文件: 更改配置如下(更改部分即可): server { l ...
- Nginx教程(二) Nginx虚拟主机配置
Nginx教程(二) Nginx虚拟主机配置 1 虚拟主机管理 1.1 Nginx管理虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主 ...
- Nginx网络架构实战学习笔记(一):Nginx简介、安装、信号控制、nginx虚拟主机配置、日志管理、location 语法、Rewrite语法详解
文章目录 nginx简介 nginx安装 nginx信号控制 nginx虚拟主机配置 日志管理 location 语法 精准匹配的一般匹配 正则匹配 总结 Rewrite语法详解 nginx简介 Ng ...
- Nginx教程(二) Nginx虚拟主机配置 (转)
Nginx教程(二) Nginx虚拟主机配置 1 虚拟主机管理 1.1 Nginx管理虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主 ...
- Nginx虚拟主机配置(20200202)
一台机器上跑多个站点,即多个域名 curl -xIP:port 域名 用来指定访问的域名在哪个IP的哪个端口上 Nginx默认虚拟主机 不管什么域名解析到该服务器,都会访问到默认虚拟主机 ngi ...
- Nginx虚拟主机配置教程
说明:配置之前先把域名解析到服务器IP地址上 站点1:bbs.osyunwei.com 程序所在目录/data/osyunwei/bbs 站点2:sns.osyunwei.com 程序所在目录/d ...
- nginx虚拟主机配置实践
1.配置基于域名的虚拟主机 [root@web01 html]# egrep -v "#|^$" /application/nginx/conf/nginx.conf.defaul ...
- Nginx虚拟主机配置--配置Nginx的主配置文件
单台Nginx WEB服务器同时会配置N个网站,也可称之为配置N个虚拟域名的主机,即多个域名对应同一个80端 口. 每个虚拟主机可以是一个独立网站.可以具有独立域名,同一台物理机上面的虚拟主机相互之间 ...
随机推荐
- 巨蟒python全栈开发linux之centos6
1.nginx复习 .nginx是什么 nginx是支持反向代理,负载均衡,且可以实现web服务器的软件 在129服务器中查看,我们使用的是淘宝提供的tengine,也是一种nginx服务器 我们下载 ...
- iOS KVO详解
一.KVO 是什么? KVO 是 Objective-C 对观察者设计模式的一种实现.[另外一种是:通知机制(notification),详情参考:iOS 趣谈设计模式——通知]: KVO 提供一种机 ...
- 使用GUID作为数据表主键的好处(转)
http://blog.itpub.net/3875/viewspace-789520/ 分类: 数据库开发技术 使用GUID作为数据表主键的好处 [@more@] 使用GUID作为数据表主键的好处 ...
- 0x08 MySQL 超详细-索引原理&慢查询优化【转-多图】(重点)
Content From——Egon's Blog http://www.cnblogs.com/linhaifeng/articles/7274563.html#top 0x01 介绍 为何要有索引 ...
- android自定义控件(四)坐标系
1.局部坐标系(Local Coordinate) 所谓本地坐标系,就是坐标系以物体的中心为坐标原点,物体旋转.平移等操作都是围绕局部坐标系进行的.这时当物体模型进行旋转.平移等操作时, 局部坐标系也 ...
- (2)linux未使用eth0,未使用IPV4导致无法连接
首先ifconfig查看网络IP 看,我这里默认启用了2个网卡,一个是eth0,另一个是lo(基于loopback方式) 1.如果有eth0则做:界面修改 (1)输入命令setup,选择network ...
- npm报错npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\Administrator\AppData\Roaming\npm-cache\_logs\2018-03-15T01_48_14_769Z-debug.log
全局更新 npm npm i npm -g 就ok了
- Android的代码都得自己一个个敲一遍吗?
近期在Android学习中,碰到一个头疼的问题.众所周知Android是一个开发源码的平台,网上有非常多网友分享的关于各种样例的demo,比方扫描二维码,瀑布流等,对于前人已有的成果,我们 ...
- Android Studio的快捷键
Android Studio可以在setting的keymaps设置快捷键,但最好使用该默认的快捷键. 生成TAG: logt 控制台打印带参的log:logm 代码提示:ctrl + alt + s ...
- python基础23 -----进程和线程
一.进程 1.什么是进程? 1.1 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成. 1.2 程序是指进程需要完成那些功能以及如何完成. 1.3 数据集 ...