openresty - nginx - 配置

local function local_print(str)  
    local dbg = io.open("conf/lua/logs/output.txt", "a+")
    local str = str or ""
    if dbg then
        dbg:write(str..'\n')
        dbg:close()
    end
end

local template = require("resty.template")
local redis = require("resty.redis")
local mysql = require("resty.mysql")



local context = {
    title = "测试",
    name = "张三",
    description = "<script>alert(1);</script>",
    script = "alert(1)",
    age = 20,
    hobby = {"电影", "音乐", "阅读"},
    -- score = {"语文" = 90, "数学" = 80, "英语" = 70},
    score2 = {
      {name = "语文", score = 901},
      {name = "数学", score = 810},
      {name = "英语", score = 710},
    },
    file = 'xiaowu'
  }
  


-- 关闭redis链接
local function close_redes( red )
    if not red then
      return
    end
    local ok, err = red:close()
    if not ok then
        local_print("close redis error:" .. err)
    end
end


-- 创建实例
local red = redis:new()
-- 设置超时(毫秒)
red:set_timeout(2000)
-- 建立连接
local ip = "192.168.10.10"
local port = 7000
local ok, err = red:connect(ip, port)
    if not ok then
        return
    end
-- 没有密码不需要写
-- local res, err = red:auth("")
-- if not res then
--     local_print("connect to redis error : " .. err)
--     return
-- end

-- 调用api进行操作
res, err = red:set("msg", "hello world")
if not res then
    local_print("set msg error : " .. err)
end

local resp, err = red:get("msg")
if not resp then
    local_print("get msg erro:" .. err)
else
    context.title = resp
end


close_redes(red)

---------------------------------------------------------------------------------------
local function close_db( db )
    if not db then
      return
    end
    db:close()
  end
  
  
  -- 创建实例
  local db, err = mysql:new()
  if not db then
    local_print("new  mysql error:" .. err)
    return
  end
  -- 设置超时时间(毫秒)
  db:set_timeout(5000)
  
  local props = {
    host = "192.168.10.5",
    port = 3306,
    database = "union",
    user = "rshy",
    password = "123456"
  }
  
  local res, err, errno, sqlstate = db:connect(props)
  
  if not res then
    local_print("connect to mysql error : " .. err, " , errno : " .. errno, " , sqlstate : " .. sqlstate)
    return close_db(db)
  else
    local select_sql = "select teacherid from teacher limit 2"
    res, err, errno, sqlstate = db:query(select_sql)
    if not res then
        local_print("select error : " .. err, " , errno : " .. errno, " , sqlstate : " .. sqlstate)
        return close_db(db)
    else
        for k, v in pairs(res) do
            local_print(k .. v.teacherid)
        end
    end

  end
---------------------------------------------------------------------------------------


template.render("t1.html", context)

  

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

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

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        # luatext
        location /luatest {
			access_log  logs/luatest.access.log  main;
            default_type text/html;
			# 即缓存lua代码,即每次lua代码变更必须reload nginx才生效,
			# 如果在开发阶段可以通过lua_code_cache off;关闭缓存,
			# 这样调试时每次修改lua代码不需要reload nginx;但是正式环境一定记得开启缓存
			lua_code_cache on;
            # content_by_lua_block  {
            #     ngx.say("<p>hello, world ...... </p>")
            # }
            # content_by_lua_file conf/lua/test1.lua;
			
			
			header_filter_by_lua_block {
				ngx.header.content_length = nil
			}
			
			body_filter_by_lua_file  conf/lua/test1.lua;
			
        }
		
		
		location /luatemplatetest {
			#first match ngx location(首先匹配位置) html下的templates
			set $template_location "/templates";  
			#then match root read file(其次匹配位置)
			set $template_root "C:/openresty/openresty-1.15.8.3-win64/templates";

			access_log  logs/luatemplatetest.access.log  main;
            default_type text/html;
			# 即缓存lua代码,即每次lua代码变更必须reload nginx才生效,
			# 如果在开发阶段可以通过lua_code_cache off;关闭缓存,
			# 这样调试时每次修改lua代码不需要reload nginx;但是正式环境一定记得开启缓存
			lua_code_cache on;
            # content_by_lua_block  {
            #     ngx.say("<p>hello, world ...... </p>")
            # }
            content_by_lua_file conf/lua/test2.lua;
			# 与html同级的目录
			# root templates;
			
			
        }
		
		
		# 分发Django服务
		location /admin {
			access_log  logs/admin.access.log  main;
            proxy_pass  http://127.0.0.1:8000;
        }
		
		# 创建一个新的目录
		location /xiaowu {
			access_log  logs/xiaowu.access.log  main;
            root   html;
            index  index.html index.htm;
        }
		
		location /mytest {
			access_log  logs/mytest.access.log  main;
            root   html;
            index  index.html index.htm;
        }
		

        location / {
            root   html;
			access_log  logs/host.access.log  main;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
	
	
	server {
		listen	443 ssl;
		server_name  bdsapp.peixun86.com;
		# ssl on;
		ssl_certificate	 ssl/3739731_bdsapp.peixun86.com.pem;
		ssl_certificate_key	 ssl/3739731_bdsapp.peixun86.com.key;	

	
		location / {
		    access_log  logs/access_liu.log  main;
			root   html;
			index  index.html index.htm;
		}
		
		location /union {
		access_log  logs/access_union.log  main;
			proxy_pass   http://test.nadiyi.cn;
		}
		
		location /merchant {
		access_log  logs/access_merchant.log  main;
			proxy_pass   http://test.nadiyi.cn;
		}
		
	}

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

  

猜你喜欢

转载自www.cnblogs.com/xiao-xue-di/p/12983571.html