前言
- nginx官方文档: https://nginx.org/en/docs/
- openresty官方文档: https://github.com/openresty/lua-nginx-module
一、配置
1. 配置实例
1.1. 80端口转443
server {
listen 80 default_server;
listen [::]:80 default_server;
rewrite ^ https://$http_host$request_uri? permanent;
}
1.2. 请求url代理到另一个地址
- proxy_pass会自动将get参数和post参数带到代理的地址去,不需要加上
$query_string
location /test {
# 代理地址如果不带后面地址,将会请求 http://127.0.0.1:1234/test
proxy_pass http://127.0.0.1:1234;
# 代理地址如果带后面地址,将会请求 http://127.0.0.1:1234/aaa
proxy_pass http://127.0.0.1:1234/aaa;
}
# 假设请求的地址为 http://x.x.x.x/test/bbb
location /test/ {
# 代理地址如果不带后面地址,将会请求 http://127.0.0.1:1234/test/bbb
proxy_pass http://127.0.0.1:1234;
# 代理地址如果带后面地址,将会请求 http://127.0.0.1:1234/aaabbb
# 由于location加了/,proxy_pass会删除/test/,剩下bbb拼接到后面url
proxy_pass http://127.0.0.1:1234/aaa;
# 代理地址如果带后面地址,将会请求 http://127.0.0.1:1234/aaa/bbb
proxy_pass http://127.0.0.1:1234/aaa/;
}
1.3. 支持websocket
map $http_upgrade $connection_upgrade {
default keep-alive; #默认为keep-alive 可以支持 一般http请求
'websocket' upgrade; #如果为websocket 则为 upgrade 可升级的。
}
...
server {
listen 8002;
listen [::]:8002;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8000;