server {
# 监听端口9000
# default_server将此server设为默认server
listen 9000 default_server;
# 匹配域名
server_name www.xxx.com;
# 匹配url前缀为xxx
location /xxx {
# /xxx在html下,即访问url为/xxx/a.jpg会访问路径为html/xxx/a.jpg的文件
root html;
}
location /websocket {
# 转发到http://127.0.0.1:9001/websocket
proxy_pass http://127.0.0.1:9001/websocket;
# 以下三行设置websocket头部
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# 正则匹配,location后面的~*代表不区分大小写的正则匹配
# 只有~和~*可以正则匹配,~代表区分大小写的正则匹配
location ~* /aaa/[a-z0-9_]+/bbb/.* {
# 重写url 比如/aaa/abcd/bbb/1.jpg,将被重写为/aaa/abcd/1.jpg
rewrite /aaa/([a-z0-9_]+)/bbb/(.*) /aaa/$1/$2;
}
location /aaa/bbb{
# /aaa/bbb的别名是html/aaa,则访问url为/aaa/bbb/1.jpg会访问路径html/aaa/1.jpg
alias html/aaa;
# 以下7行为静态资源压缩配置
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
# 此处为支持的类型
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";
# 资源请求在30s内不需要询问服务器,可直接使用缓存
expires 30s
}
location /proxy_path {
proxy_pass http://127.0.0.1:8080/project;
# 当proxy_pass改变了url路径时,需重新设置proxy_cookie_path,将project的cookie输出到proxy_path上
proxy_cookie_path /project /proxy_path;
}
# 修改url参数
location /updateParam {
# 假如结尾存在参数a,则把a的值改为1
if ( $args ~ "^(.*)(a=.*)$") {
set $args $1a=1;
}
proxy_pass http://localhost:8080/updateParam;
}
}
nginx配置笔记
最新推荐文章于 2022-04-20 15:13:52 发布