糖果实验室杂货铺

Candy Lab

用Lapis工程创建Openresty正向代理服务

1 year ago 2

作者:糖果

正文:

利用Openresty服务创建一个正向代理服务器,最开始是想在Lapis创建的工程下直接创建,基本的配置如下面的代吗:

创建一个Lapis工程:

1
lapis new

然后在配置文件里加入,正向代理的配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
worker_processes ${{NUM_WORKERS}};
error_log stderr notice;
daemon off;
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;

  server {
    resolver 114.114.114.114;
    resolver_timeout 15s;

    listen ${{PORT}};
    lua_code_cache ${{CODE_CACHE}};

    location / {
        default_type text/html;
        proxy_pass $scheme://$host$request_uri;
        #proxy_pass http://$host$request_uri;
        proxy_set_header Host $http_host;

        proxy_buffers 256 8k;
        proxy_max_temp_file_size 0;

        proxy_connect_timeout 30;

        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 301 1h;
        proxy_cache_valid any 1m;

      content_by_lua '
        --require("lapis").serve("app")
      ';
    }
  }

启动Lapis代理,配置FF的代理选项。打开浏览器后发现,可以载入网站的图标,但是正文无法显示出来,返回结果被Lapis拦截了。

然后,我向群里的朋友 ,求了一份,nginx的正向代理的配置,然后用纯nginx的方式,启动正向代理,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
worker_processes 1;
error_log stderr notice;
daemon off;
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;
  server {
    resolver 114.114.114.114;
    resolver_timeout 15s;

    listen 0.0.0.0:8080;

    location / {
        default_type text/html;
        proxy_pass $scheme://$host$request_uri;
        #proxy_pass http://$host$request_uri;
        proxy_set_header Host $http_host;
        proxy_buffers 256 8k;
        proxy_max_temp_file_size 0;
        proxy_connect_timeout 30;
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 301 1h;
        proxy_cache_valid any 1m;
    }
  }
}

然后用传统的方式运行nginx

1
nginx -p `pwd` conf/nginx.conf

重新刷新浏览器,OK,结果出现。

后记:

其实,浏览器无返回结果的根原因,不是因为用了lapis起动工程,而是在lapis创建的nginx.conf中,定义了contentbylua,却没有做任何的返回处理,造成的返回了空白网页。

如果还想用lapis server的方式启动正向代理,就把下面的代码注释掉。

1
2
3
#content_by_lua '
      #  --require("lapis").serve("app")
      #';

糖果实验室

Openresty中文编程网
IKBC经典机械键盘
机械键盘领券优惠购买

Comments

There are 2 Comments to "用Lapis工程创建Openresty正向代理服务"

  • @王兵权

    这有一篇,但是前端口代码最好结合 openresty china的代码。

    http://lua.ren/topic/269/orc%E7%B4%A2%E5%BC%95%E9%A1%B5%E6%98%BE%E7%A4%BA%E7%9A%84lapis%E5%AE%9E%E7%8E%B0

    还有这篇,lapis不是直接用lua写的,而且是moonscript写的,moonc翻译成了lua
    https://www.moonscript.cn/page2/

    这是英文文档
    https://www.openresty.com.cn/quick_reference.html

  • 王兵权 says:
    12 months ago

    您好! 请教下我想使用openresty+lapis做动态web站点。不知道有没有文字参考下, 需要如何安装配置, 最好再结合个简单示例,谢谢!

Write a Comment