这几天听了架构配需后,周末研究了Nginx,发现它能给我们项目带来很多帮助
虚拟主机
1. 记录访问日志,错误日志 可区分浏览器,IP,状态码等
2.重定向404,500的页面
3.根据域名(server_name),IP,转向不同的目录
4.自动索引autoindex,可列出当前目录下的文件
5.deny,allow设置访问权限
6.根据location的设置,将png等资源定向到一个目录,实现动静分离
地址重写
1.根据不同的浏览器重写地址
if ($http_user_agent ~ MSIE){
rewrite ^(.*)$ /msie/$1 break;
}
2.文件,目录不存在时重写
3.根据访问地址,区分跳转到内网和外网里
4.图片防盗链
5.实现域名跳转
缓存设置:
设置资源缓存时间,比如图片资源设置缓存n天
设置限速,可以分别设置xxM前的速度和后的速度
反向代理&负载均衡
ubuntu12.04练习nginx:
1.搭建web服务器
sudo apt-get install nginx
sudo service nginx start
总配置文件:/etc/nginx/nginx.conf
2.修改监听非80端口
sudo vi /etc/nginx/sites-enabled/default
加上端口listen 8020;
sudo service nginx restart
3.虚拟主机设置
sudo vi /etc/nginx/conf.d/aa.conf
log_format demo.neoease.com '$remote_addr - $remote_user [$time_local] $request'
'$status $body_bytes_sent $http_referer '
'$http_user_agent $http_x_forwarded_for';
server {
listen 80;
server_name aa;
index index.html index.htm index.php;
root /usr/share/nginx/aa;
#log_format demo.neoease.com '$remote_addr - $remote_user [$time_local] $request'
#'$status $body_bytes_sent $http_referer '
#'$http_user_agent $http_x_forwarded_for';
access_log /var/log/nginx/aa.log demo.neoease.com;
}
4.查看访问日志
tail -f /var/log/nginx/aa.log
5.重定向404,500
sudo vi /etc/nginx/sites-enabled/default
启用 error_page 404 /404.html;
禁用 try_files $uri $uri/ /index.html;
sudo vi /usr/share/nginx/www/404.html
sudo service nginx restart
6.地址重写
if ($http_user_agent ~ MSIE) {
rewrite ^(.*)$ /nginx-ie/$1 break;
}
7.反向代理&负载均衡
upstream mylocalsite {
server 10.0.2.137:8088;
server 10.0.2.137:8089;
}
location / {
proxy_pass http://mylocalsite;
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr; ;#防止ajax安全请求问题
#proxy_set_header REMOTE-HOST $remote_addr; ;#防止ajax安全请求问题
}
8.源码安装
虚拟主机
1. 记录访问日志,错误日志 可区分浏览器,IP,状态码等
2.重定向404,500的页面
3.根据域名(server_name),IP,转向不同的目录
4.自动索引autoindex,可列出当前目录下的文件
5.deny,allow设置访问权限
6.根据location的设置,将png等资源定向到一个目录,实现动静分离
地址重写
1.根据不同的浏览器重写地址
if ($http_user_agent ~ MSIE){
rewrite ^(.*)$ /msie/$1 break;
}
2.文件,目录不存在时重写
3.根据访问地址,区分跳转到内网和外网里
4.图片防盗链
5.实现域名跳转
缓存设置:
设置资源缓存时间,比如图片资源设置缓存n天
设置限速,可以分别设置xxM前的速度和后的速度
反向代理&负载均衡
ubuntu12.04练习nginx:
1.搭建web服务器
sudo apt-get install nginx
sudo service nginx start
总配置文件:/etc/nginx/nginx.conf
2.修改监听非80端口
sudo vi /etc/nginx/sites-enabled/default
加上端口listen 8020;
sudo service nginx restart
3.虚拟主机设置
sudo vi /etc/nginx/conf.d/aa.conf
log_format demo.neoease.com '$remote_addr - $remote_user [$time_local] $request'
'$status $body_bytes_sent $http_referer '
'$http_user_agent $http_x_forwarded_for';
server {
listen 80;
server_name aa;
index index.html index.htm index.php;
root /usr/share/nginx/aa;
#log_format demo.neoease.com '$remote_addr - $remote_user [$time_local] $request'
#'$status $body_bytes_sent $http_referer '
#'$http_user_agent $http_x_forwarded_for';
access_log /var/log/nginx/aa.log demo.neoease.com;
}
4.查看访问日志
tail -f /var/log/nginx/aa.log
5.重定向404,500
sudo vi /etc/nginx/sites-enabled/default
启用 error_page 404 /404.html;
禁用 try_files $uri $uri/ /index.html;
sudo vi /usr/share/nginx/www/404.html
sudo service nginx restart
6.地址重写
if ($http_user_agent ~ MSIE) {
rewrite ^(.*)$ /nginx-ie/$1 break;
}
7.反向代理&负载均衡
upstream mylocalsite {
server 10.0.2.137:8088;
server 10.0.2.137:8089;
}
location / {
proxy_pass http://mylocalsite;
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr; ;#防止ajax安全请求问题
#proxy_set_header REMOTE-HOST $remote_addr; ;#防止ajax安全请求问题
}
8.源码安装