zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Nginx学习之一-第一个程序Hello World

学习程序Nginx 第一个 之一 Hello World
2023-09-27 14:29:31 时间

虚拟机Ubuntu中:

win7中chrome浏览器:

 

 

一、config文件编写 Nginx提供了一种简单的方式将第三方的模块编译到Nginx中。首先把源代码文件全部放到一个目录下,同时在该目录中编写一个文件用于通知Nginx如何编译本模块,这个文件名必须为config。 然后,在configure脚本执行时加入参数--add-module=PATH(新模块源代码以及config文件存放目录),就可以在执行政策编译安装流程时完成Nginx编译工作。 config文件格式 config文件其实是一个可执行的Shell脚本,如果只想开发一个HTTP模块,需要定义三个变量: (1)ngx_adon_name。 仅在configure执行时使用,一般设置为模块名称。 (2)HTTP_MODULES。 保存所有的HTTP模块名称。每个模块间由空格相连。在重新设置这个变量时,不要直接覆盖,因此要如下设置: "$HTTP_MODULES ngx_http_mytest_module" (3)NGX_ADDON_SRCS。 用于指定新模块的源代码,多个待编译的源代码之间可以用空格相连。 注意,在设置这个变量时可以使用$ngx_addon_dir变量,它等价于configure执行时--add-module=PATH的PATH参数。 因此本例中的config文件内容如下:
ngx_addon_name=ngx_http_mytest_module   HTTP_MODULES="$HTTP_MODULES ngx_http_mytest_module"   NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_mytest_module.c"  
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LMT_CONF|NGX_CONF_NOARGS,           ngx_http_mytest,           NGX_HTTP_LOC_CONF_OFFSET,           0,           NULL       },       ngx_null_command   //模块上下文   static ngx_http_module_t ngx_http_mytest_module_ctx = {       NULL,       NULL,       NULL,       NULL,       NULL,       NULL,       NULL,       NULL   //新模块定义   ngx_module_t ngx_http_mytest_module = {       NGX_MODULE_V1,        ngx_http_mytest_module_ctx,       ngx_http_mytest_commands,       NGX_HTTP_MODULE,       NULL,       NULL,       NULL,       NULL,       NULL,       NULL,       NULL,       NGX_MODULE_V1_PADDING   //配置项对应的回调函数   static char *    ngx_http_mytest(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)       ngx_http_core_loc_conf_t *clcf;       clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module);       clcf- handler = ngx_http_mytest_handler;       return NGX_CONF_OK;   //实际完成处理的回调函数   static ngx_int_t ngx_http_mytest_handler(ngx_http_request_t *r)       if (!(r- method   (NGX_HTTP_GET | NGX_HTTP_HEAD))) {           return NGX_HTTP_NOT_ALLOWED;       }       ngx_int_t rc = ngx_http_discard_request_body(r);       if (rc != NGX_OK) {           return rc;       }       ngx_str_t type = ngx_string("text/plain");       ngx_str_t response = ngx_string("Hello World");       r- headers_out.status = NGX_HTTP_OK;       r- headers_out.content_length_n = response.len;       r- headers_out.content_type = type;       rc = ngx_http_send_header(r);       if (rc == NGX_ERROR || rc   NGX_OK || r- header_only) {           return rc;       }       ngx_buf_t *b;       b = ngx_create_temp_buf(r- pool, response.len);       if (b == NULL) {           return NGX_HTTP_INTERNAL_SERVER_ERROR;       }       ngx_memcpy(b- pos, response.data, response.len);       b- last = b- pos + response.len;       b- last_buf = 1;       ngx_chain_t out;       out.buf = b;       out.next = NULL;       return ngx_http_output_filter(r,  out);  
./configure --prefix=/usr/local/nginx(指定安装部署后的根目录) --add-module=/home/nginx(新模块存放目录)   make   sudo make install  
Nginx代理浏览器可实时查看程序日志 我们经常需要在页面上实时查看nginx的日志输出,并且能在页面上显示,那么如何通过Nginx实现浏览器可实时查看访问日志呢?
7.3【微信小程序全栈开发课程】小程序上线--nginx安装、SSL证书安装 1、安装nginx nginx是一个强大的http服务器,作用是解析链接信息,告诉服务器客户端需要做什么 比如nginx收到了链接信息http://localhost:8000/hello/index.html,就告诉服务器客户端的要求–获取目录hello/index.html文件。服务器读取文件内容发送给浏览器
filebeat收集json格式的nginx程序日志(二) filebeat收集json格式的nginx日志 1.为什么要收集json格式的日志类型 由于nginx普通日志收集过来的日志内容都是存在一个字段中的值,我们想单独对日志中的某一项进行查询统计,比如我只想查看某个IP请求了我那些页面,一共访问了多少次,在普通的日志中是无法过滤的,不是很满意
Nginx反向代理web程序解决谷歌跨越问题配置详解 路由转发:源ip和目标ip都不会改变只改变mac地址,只能在私网使用 客户端10.0.0.1要访问web服务器172.16.1.7,也就是客户端直接通过路由去访问web服务器,首先请求的源ip是10.0.0.1目标ip是172.16.1.7,源mac是pc目标mac是web,当源ip到达路由器时查询路由表,在转发到web服务器。这时源ip和目标ip不会改变,但是源mac地址会换成路由器的mac地址,最终访问到web服务器,web服务器记录的访问ip依旧是客户端的源ip