nginx下配置服务端代理Tengine例子

tengine是建立在nginx上的开源软件,添加了一大堆feature,并且你可以使用自定义的内存管理,不管是作为前端代理,还是前端缓存,效果都是萌萌哒的。
nginx和tengine略有差异,请查看官方Wiki、Tengine。

## 根据自己情况选择用户

user  nobody;

## 建议设置机器CPU核心数目

worker_processes  1;

## 之前配置机器的时候设置过的打开数目

worker_rlimit_nofile51200;

 

## 记录错误日志

error_log  logs/error.log;

## pid文件

pid        logs/nginx.pid;

 

## 设置最大连接数和使用epoll提高效率

events{

    worker_connections  1024;

    useepoll;

}

 

http{

    include       mime.types;

    default_type  application/octet-stream;

    ## 打底配置日志

    access_log  logs/access.log;

    ## 基础限流

    limit_req_zone$binary_remote_addr zone=one:10mrate=1r/s;

    limit_req_log_level error;

    ## 允许使用sendfile

    sendfile        on;

    ## 配合sendfile

    tcp_nopush     on;

    ## 关闭基础信息

    server_info off;

    ## 根据自己的站点设置

    keepalive_timeout  50;

    ## 开启gzip,这里如果不考虑IE6也没关系的话,不需要根据UA关闭GZIP

    gzip  on;

    gzip_proxied any;

    gzip_clear_etag on;

    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/javascript;

    ## 加载站点配置

    include vhosts/*;

}

和apache一样,简单阻止一些访问,根据自己的情况添加和修改。

# robots.txt 不进行记录

location=/robots.txt{access_log off;log_not_found off;}

# favicon.ico 不进行记录

location=/favicon.ico{access_log off;log_not_found off;}

# 隐藏文件 不进行记录且禁止访问

location~/\.{access_log off;log_not_found off;deny all;}

# 不存在的备份文件 不进行记录且禁止访问

location~*"bbs\.zip"{access_log off;log_not_found off;deny all;}

location~*"wwwroot\.zip"{access_log off;log_not_found off;deny all;}

location~*".*\.asp$|.*\.aspx$|.*\.jsp$|.*\.mdb|.*\.log"{access_log off;log_not_found off;deny all;}

location~*"ckeditor/" target="_blank">fckeditor|ckfinder|~root"{access_log off;log_not_found off;deny all;}

 

# ~结尾文件不进行记录且禁止访问

location~~${access_log off;log_not_found off;deny all;}

# 设置常用文件缓存为30天

location~.*\.(gif|jpg|jpeg|png|bmp|swf|js|css)${expires30d;}

 

##

# 阻止注入的一些设置

##

location~*"union.*select.*\(|union.*all.*select.*|concat.*\(" { deny  all; }

 

##

# 阻止常规利用的一些设置

##

location ~* "proc/self/environ" { deny  all; }

 

##

# 阻止垃圾评论的一些设置

##

if ($http_user_agent ~ "\b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo|erections|hoodia|huronriveracres|impotence|levitra|libido|ambien|blue\spill|cialis|cocaine|ejaculation|erectile|lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b"){return404;}

 

##

# 阻止UA的一些设置

##

set$block_user_agents0;

# 拒绝无UA访问

if($http_user_agent~"^$"){set$block_user_agents1;}

# 根据自己情况拒绝wget以及curl

if($http_user_agent~"Wget|wget|curl|libwww-perl|httplib|WordPress|wordpress|PycURL|POE::Component::Client|InetURL|Microsoft URL Control"){set$block_user_agents1;}

if($http_user_agent~"WebCopier|Offline Explorer|Sphider|mail"){set$block_user_agents1;}

if($http_user_agent~"Opera/9\.0 \(Windows NT5\.1;U;en\)|Opera/6\.01 \(Windows ME;U\) \[en\]"){set$block_user_agents1;}

if($http_user_agent~"Mozilla/3\.0"){set$block_user_agents1;}

if($http_user_agent~"DotBot|YandexBot|Superfeedr"){set$block_user_agents1;}

if($block_user_agents=1){return404;}

对于默认IP的访问的处理
 

##

# 默认IP地址

##

server{

    listen       80default;

    server_name  _;

 

    location/{

        # 允许哪些

        if(自己的条件){

            return200;

        }

        # 禁止直接访问IP地址

        return444;

    }

}

简单配置访问规则,配合hhvm之类的fast-cgi的程序使用,省略配置目录反代等。
这里apache和nginx有个细节差异,apache rewrite -L是强制转向,nginx如果要实现隐性301必须使用代理模式。

## soulteary.com www.111cn.net

server{

    listen80;

    server_name soulteary.com www.111cn.net;

    ## 如果做了数据分离,可以去掉。

    ## client_max_body_size 10m;

 

    access_log/yourpath/www.111cn.net/logs/access.log;

    error_log/yourpath/www.111cn.net/logs/error.log;

 

    server_name_in_redirect off;

    include nginx-security.conf;

 

    root/yourpath/www.111cn.net/public;

    index index.php index.html index.htm;

 

    location~/\.(gif|jpg|png|css|js|ico|swf|svg)${

        expires max;

    }

 

    location/{

        try_files$uri$uri//index.php?q=$uri&$args;

    }

 

    location~\.(hh|php)${

        fastcgi_keep_conn on;

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME$document_root$fastcgi_script_name;

        include        fastcgi_params;

    }

}

使用nginx作为node前端转发时的设定。
当然,如果你的node直接跑在最前端,那么请适当修改,对于IP地址直接取remoteAddress,不要相信转发。

upstreamghost_soulteary_upstream{

        server127.0.0.1:2378;

        keepalive64;

}

 

server{

    listen80;

    server_name www.soulteary.im soulteary.im;

    if_modified_since before;

 

    server_name_in_redirect off;

    include nginx-node-security.conf;

 

    location/{

        proxy_cache_valid20030m;

        proxy_cache_valid4041m;

        proxy_pass http://ghost_soulteary_upstream;

        proxy_ignore_headersX-Accel-Expires Expires Cache-Control;

        proxy_ignore_headers Set-Cookie;

        proxy_hide_header Set-Cookie;

        proxy_hide_headerX-powered-by;

        proxy_set_headerX-Real-IP$remote_addr;

        proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;

        proxy_set_header Host$http_host;

        expires10m;

    }

}

如果你只是需要一个简单的静态站点的话,可以使用如下配置:

## www.111cn.net

server{

    listen80;

    server_name www.111cn.net;

 

    access_log/yourpath/www.111cn.net/logs/access.log;

    error_log/yourpath/www.111cn.net/logs/error.log;

 

    server_name_in_redirect off;

    include nginx-security.conf;

 

    valid_referers none blocked server_names *.soulteary.com soulteary.com;

    if($invalid_referer){

        rewrite^/"http://www.baidu.com/s?wd=妈妈说不要盗链"last;

        return404;

    }

 

    root/yourpath/www.111cn.net/public;

    index index.html;

}

接下来写写network/redis/hhvm/ghost的设置吧。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索站点
, net
, 前端
, 文件
配置
tengine nginx 对比、nginx tengine、tengine和nginx的区别、tengine nginx哪个好、tengine和nginx哪个好,以便于您获取更多的相关知识。

时间: 2024-11-05 21:37:21

nginx下配置服务端代理Tengine例子的相关文章

如何使用PHP服务端代理抓取网页内容

最近公司暂时断开外网,只开放公司自己所有的站点允许访问,说实在的,做WEB开发的断网,真是让人哭笑不得...... 由于需要查找资料,只好简单写了一个PHP的服务端代理页面来用一下! 简单框架页面: 以下为引用的内容: <style type="text/css"> *{margin:0;padding:0;} html,body{overflow:hidden;} td{padding:0;vertical-align:top;} </style> <t

nginx下配置 iis和tomcat问题

问题描述 nginx下配置 iis和tomcat问题 问题是这样的,我在本地已经配置好了,本地可以通过localhost 和localhost/weixin (自己设置的),分别访问iis和tomcat.但是,放到服务器上之后就不行了,在服务器上本机可以访问,和自己电脑上一样没问题,但是,通过设置的ip或者域名(我有自己的域名和ip),外机访问不了.如果把本配置去掉,还有原来的iis80访问原网站,没问题. 解决方案 那就看看你的nginx的log,是不是域名等方式的时候,路径处理有没有正确的p

Win2003下cwRsyncServer服务端与cwRsync客户端数据同步实例教程_服务器其它

说明: cwRsyncServer服务端   IP:192.168.21.128 cwRsync客户端   IP:192.168.21.129 实现目的: 把服务端D:\data目录中的数据通过任务计划定期同步到客户端D:\data目录中 附件: cwRsyncServer下载地址与cwRsync下载地址:http://s.jb51.net 具体操作: 一.在服务端安装cwRsyncServer 解压cwRsyncServer_4.0.3_Installer.zip,双击cwRsyncServe

nginx下配置https ssl的例子

首先确保机器上安装了openssl和openssl-devel #yum install openssl #yum install openssl-devel 然后就是自己颁发证书给自己 #cd /usr/local/nginx/conf #openssl genrsa -des3 -out server.key 1024 #openssl req -new -key server.key -out server.csr #openssl rsa -in server.key -out serv

Windows服务器配置服务端代理Apache的例子

先发本地Apache配置示例: 主配置文件因人而异,如果需要重写,勿忘开启: LoadModule rewrite_module modules/mod_rewrite.so 不建议内容都写在主目录中,请使用子文件引入:   # Virtual hosts Include etc/extra/httpd-vhosts.conf # Various default settings Include etc/extra/httpd-default.conf 默认打底配置,超时时间如果是下载机,请适当

Nginx下配置301重定向的正确方法例子_nginx

之前给nginx做301重定向的时候经常会这样写: 复制代码 代码如下: server {     listen       80;     server_name  www.jb51.net jb51.net;     if ($http_host = www.jb51.net) {         rewrite  (.*)  http://jb51.net$1;     }     ... } 实际标准的写法应该是 复制代码 代码如下: server {     listen      

Nginx下配置pathinfo及ThinkPHP的URL Rewrite模式支持_nginx

打开Nginx的配置文件 /usr/local/nginx/conf/nginx.conf 一般是在这个路径,根据你的安装路径可能有所变化.如果你配置了vhost,而且只需要你这一个vhost支持pathinfo的话,可以直接打开你的vhost的配置文件.找到类似如下代码(不同版本的nginx可能稍有不同,但是相差不会很远): 复制代码 代码如下:     location ~ .*.(php|php5)?$         {                 #原有代码         } 修

Ubuntu14编译安装Nginx同时配置Google反向代理 + SSL 证书

在看这篇文章之前,首先你得准备一台墙外的服务器或 VPS,本文默认用 root 用户,并操作在系统的 /root 目录下,为了安全考虑,请自行更换目录. 一.编译安装 Nginx 1.首先更新下系统 sudo apt-get update && sudo apt-get upgrade 2.安装的 Nginx 需要的包以及 Git sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev libssl-dev build-essential

Nginx 下配置SSL证书的方法_Linux

1.Nginx 配置 ssl 模块 默认 Nginx 是没有 ssl 模块的,而我的 VPS 默认装的是 Nginx 0.7.63 ,顺带把 Nginx 升级到 0.7.64 并且 配置 ssl 模块方法如下: 下载 Nginx 0.7.64 版本,解压 进入解压目录: 复制代码 代码如下: wget http://sysoev.ru/nginx/nginx-0.7.64.tar.gz tar zxvf nginx-0.7.64.tar.gz cd nginx-0.7.64 如果要更改heade