请求nginx中的location配置问题 1C

server{
listen 84;
server_name _;
root /data/www/myweb/ts;
access_log /data/nginx_log/access.log access;

location ~ ^/(.*).ts$ {
    add_header Cache-Flag hit;
    try_files /$uri @tsvideo;
    try_files /$uri @tsvideo_new;
}

location @tsvideo {
    add_header Cache-Flag miss;
    proxy_store on;
    proxy_temp_path /data/www/myweb/ts;
    proxy_store_access user:rw group:rw all:rw;
    proxy_set_header Host v1.abc.com
    proxy_pass http://v1.abc.com
}

location @tsvideo_new {
    add_header Cache-Flag miss;
    proxy_store on;
    proxy_temp_path /data/www/myweb/ts;
    proxy_store_access user:rw group:rw all:rw;
    proxy_set_header Host v12.abc.com
    proxy_pass http://v12.abc.com
}

}

请问下如何修改成当访问v1.abc.com,指向的是@tsvideo,访问v12.abc.com指向的是
@tsvide_new

1个回答

server {
listen 80;
server_name v1.abc.com;

    location @tsvideo {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass   http://localhost:8180;
    }
}

    server {
    listen       80;
    server_name v12.abc.com;

    location @tsvideo_new {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass   http://localhost:8180;
    }
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
<已解决>nginx配置问题 急急急
大家好 最近买了个域名,租了一台服务器(centos,yum安装 )但再nginx的配置上出了问题 这是我的/etc/nginx/nginx.conf ``` user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; events { worker_connections 1024; } http { 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 /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } } ``` 我把虚拟主机的配置放在了/etc/nginx/conf.d/目录下了 文件名:liangzda.com.conf 配置如下: ``` server { listen 80; server_name www.liangzda.com; location /{ proxy_pass http://localhost:8080; } } ``` 我安装了tomcat,监听8080端口 打算把访问www.liangzda.com的请求转发给tomcat 一顿配置之后,重启nginx时,提示出错,查看日志文件如下: [emerg] "server" directive is not allowed here in /etc/nginx/conf.d/liangzda.com.conf:1 请问应该怎么办? 最后自己发现是自己在conf.d 和 default.conf里面重复放了配置文件 所以出错,我把两个配置文件都删除了,然后自己建了一个文件夹 vhost 然后把配置文件添加到里面 ,再在nginx.conf里面添加include vhost/*.conf 就好了
nginx服务器配置中如何使用绝对路径
请问nginx.conf配置文件中如何使用绝对路径.我想把静态文件请求使用nginx拦截不转交给tomcat处理,但是改了半天nginx只在他的文件夹下读取静态文件,请问如何让nginx到另一个磁盘下读取文件? 以下是我的配置文件: location ~ ^/upload/image/ { root E:\Workspace\fitness\WebRoot\upload\image\; expires 10d; } 谢谢各位!
nginx怎样配置欢迎页即首页到index.html静态文件,其它带后缀的请求都到tomcat里呢?
用nginx配置了反向代理到tomcat,静态图片访问本地一个目录里。 location / { proxy_connect_timeout 30; proxy_send_timeout 30; proxy_read_timeout 30; proxy_pass http://neiwang; } #静态文件访问 location ~ ^/(upload|static)/ { root /data/www; expires 2d; } 现在因为tomcat应用里首页进入比较慢,所以将首页生成了html的静态文件, 可是怎么配置nginx,使得直接访问域名时nginx转到这个html文件上, 其它带后缀的请求还继续到tomcat里呢?求助好心人解答,谢谢!
关于一个nginx_lua在解析request请求数据出错的问题
背景:客户端返回响应信息,以HTTP POST的方式传给后台,后台进行记录响应日志作为他用,同时客户端不关心http请求结果,后端使用nginx作为HTTP服务器,结合lua获取post请求的requestBody数据(body中是一个json串),并将数据记录在nginx的access日志里,目前最高峰并发大约5W,三台ng,其实对于ng来说压力并不大。 首先上nginx部分配置代码,请过目: nginx access日志格式配置: log_format lua_log '$cur_time - $reqBody'; nginx server及location配置: set $reqBody ""; set $cur_time ""; location log/print { lua_need_request_body on; default_type 'text/json'; content_by_lua ' local method = ngx.req.get_method() ngx.var.cur_time =os.date("%Y-%m-%d %H:%M:%S") if method == "POST" then local requestBody = ngx.unescape_uri(ngx.var.request_body) requestBody = string.gsub(reqBody2, " ", "") requestBody = string.gsub(reqBody2,"\\n" ,"") ngx.var.reqBody = requestBody else ngx.var.reqBody = "{\"common\":{},\"params\":{}}" end ngx.print("0")'; access_log logs/click.log lua_log; } 以上就是完整的配置,其他均采用nginx的默认配置 ,在接收post请求时打印 时间和requestbody部分内容,其他请求方式时打印时间和固定的字符串。 问题: 现在大多数请求可以正常获取并记录数据到access日志里,: 2016-10-26 00:00:01 - {"common":{"unix":"1477411201306.446","uid":651375093,"mcc":"460","app_version":"10060100","width":640,"net":"wifi","device":"iPhone6,2"},"params":{"stat_value":1,"net":"wifi","tabType":0,"city_id":1848,"ad_index":304,"price":"0","stat_type":1}} **但是,在日志里存在一部分脏数据,只有一个横线"-", 这个横线应该是我在log_format里设置的间隔符号,然后cur_time和reqBody都没有值,就好像是并没有进入到我的lua代码块,在测试环境也不能复现,百思不得其解,再次求大神指教!!!!**
nginx请求proxy_pass后配置404错误界面
listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; fastcgi_intercept_errors on; proxy_intercept_errors on; root html; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr; index index.html index.htm; #access_log logs/webroot.log; #proxy_intercept_errors on; proxy_pass http://tomcat_server/webroot/; } 当请求资源不存在后出现404并未返回Nginx目录下的自定义的404.html,而是去被转发的站点webroot下面找404界面了, 因为有多个应用程序部署在不同的服务器然后由Nginx进行转发,我现在想把所有的错误界面都放在Nginx目录下统一处理,在出现404,500之类的错误后由Nginx直接返回Nginx目录下预先自定义好的界面
nginx跨域请求失败,proxy_poss后面的url不起作用
nginx跨域请求失败,proxy_poss后面的url不起作用 介绍如下所述, nginx.conf主要配置如下: server { listen 9096; server_name spark1; location / { root /opt/nginx/pckydm; #存放的是首页 index index.html index.htm; } location /pckydm/ { proxy_pass http://192.168.43.93:9095/; #这是后台接口部署的地址 } } 前后端分离开发与部署,能够访问首页,从首页发送请求访问后台接口 数据的url: http://spark1:9096/pckydm/login, 结果spark1:9096没有被替换为192.168.43.93:9095,为什么? 按理来说已经匹配的pckydm,url应该被改写为http://192.168.43.93:9095/login, 而仍然是 http://spark1:9096/pckydm/login 各位大佬知道是什么原因吗?大家有什么解决办法吗?望各位大佬不吝赐教。 小白我先在此跪谢
nginx反向代理的cors如何配置
restful api的tomcat在ngxin后面,ngxin实现https转http、静态资源、以及cors。之前的nginx配置是: location /myapi/ { proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Access-Control-Allow-Origin *; proxy_pass http://localhost:8080; proxy_redirect http:// https://; client_max_body_size 100M; } 不论是网页还是app都能成功使用。备注,后台spring mvc使用了@CrossOrigin。 最近客户端换了webview引擎,强制cors。之前的cors配置不起作用了。网上搜了很多相关内容,有的说要用add_header,有的说要用proxy_set_header,有的说要设置access-control-allow-methods、access-control-allow-headers,有的说要单独处理OPTIONS请求......都试过了。没一个真正成功的。 要么报响应中没有origin,要么报prefilght失败,要么报access-control-allow-origin不能多于一个值(所以我把spring mvc里的@CrossOrigin也去掉了)。如果客户端和nginx都在同一台机器时,反复刷新,有时候又能获得后台tomcat响应,但不是每次访问都能获得正确响应;如果不在同一台机器,那索性就没成功过了。
nginx重复发送请求到服务器
在测试环境进行nginx配置时,为防止超时,全部把超时参数配置为10分钟。但是在拉取数据时还是到60S后就报错,提示“数据正在下载中,请稍后再试“,表明已在缓存中。 目前怀疑是nginx重复发送请求(或者请求超时之后,nginx把请求转发给另一台服务器)所致,因为跳过nginx服务器拉取数据是正常的。 配置如下: 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 log/main-access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 600; lingering_timeout 600; send_timeout 600; gzip on; gzip_min_length 1k; gzip_buffers 8 32k; gzip_comp_level 6; gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml; client_max_body_size 8m; client_body_buffer_size 256k; client_header_timeout 600; client_body_timeout 600; proxy_next_upstream off; proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; proxy_buffer_size 128k; proxy_buffers 8 256k; proxy_busy_buffers_size 256k; proxy_temp_file_write_size 256k; upstream web1 { server ip:port; } upstream web2 { server ip:port; } server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://web1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; index index.html index.jsp login.jsp index.htm; #root html; #index index.html index.htm; } location /admin { proxy_pass http://web2; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; index index.html index.jsp login.jsp index.htm; } ... } ... } 请教一下,如果避免nginx重复请求,该怎么设置? 或者nginx转发请求给另一台服务器,又该怎么设置? 如果问题不是出在这里,那么该怎么分析并解决这个问题? nginx接触不久,很多配置还都不熟悉,恳请对nginx了解的大神能不吝指教,拜谢。
如何解决nginx无法成功转发请求到tomcat9.0.14上?
后端框架springboot2.1.2,不经过转发,postman直接发送请求到tomcat上,可以成功返回response,说明后端部署是没问题的。经过nginx转发,错误日志里显示连接超时,tomcat上也没有日志,说明根本没连上。但是看了nginx的日志,转发的URL是对的。 还有一个很奇怪的点是,用springboot的IDE(STS3.9.6)使用内置的tomcat测试的时候,当时是可以转发成功的。。。。映射的一模一样的URL。实在搞不懂问题出在哪 nginx相关配置(公司内网的东西,手打了部分): upstream TESTGETTOKEN { server 109.32.13.12:8080; } server { listen 0.0.0.0:80; server_name nginx-test.com; server_name_in_redirect off; location /Test/Product/GetToken { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; client_max_body_size 10m; proxy_pass http://TESTGETTOKEN/Iden/Test/GetToken/; } 后端URL: http://109.32.13.12:8080/Iden/Test/GetToken/ , postman测试能连通 nginx error.log日志 upstream timed out (110: Connection timed out) while connecting to upsteam, client :109.32.13.12, server:nginx-test.com,request: " POST /Test/Product/GetToken HTTP/1.1", upstream: "http://109.32.13.12:8080/Iden/Test/GetToken/", host: "109.32.13.80"
POST文件上传请求,Nginx报405错误
以下是nginx日志: 175.171.184.77 - - [15/Jul/2017:14:19:35 +0800] "POST /newsedit/upload HTTP/1.1" 405 0 "http://www.xxx.com/newsedit/create" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3128.0 Safari/537.36" 以下是分析过程: 1、代码在本地win环境(未使用nginx)运行没有异常,上传功能正常; 2、部署到linux服务器上之后,使用了nginx,上传功能报405错误; 3、在同一个linux服务器上部署的另一套应用也有文件上传功能,可以正常使用; 4、故分析是nginx的配置问题; 以下是同一个linux服务器上两套应用的nginx配置: 1、上传功能异常: ``` server { listen 80; server_name xxx.com xxx.net yyy.com yyy.net; access_log logs/portal.access.log; location / { root html; index index.html index.htm; proxy_pass http://www.xxx.com:8300; } location /portal { root html; index index.html index.htm; proxy_pass http://www.xxx.com:8300; } location /privacy.html { root html; proxy_pass http://asset.xxx.com:9001/privacy.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } ``` 2、上传功能正常: ``` server { listen 80; server_name m.xxx.com m.xxx.net m.yyy.com m.yyy.net; access_log logs/maintenance.access.log; location / { root html; index index.html index.htm; proxy_pass http://m.xxx.com:9300; proxy_redirect default; } location ^~ /eplus/ws/server { proxy_pass http://m.xxx.com:9300; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } ```
django websocket 聊天功能 用nginx代理 访问失败
django 项目 用dwebsocket 实现简单的聊天功能 本地调试已经成功 发布到服务器用nginx做代理, 链接失败 firefox 报错信息: ``` Firefox 无法建立到 ws://xxxxxx/ 服务器的连接。 ``` chrome 报错信息: ``` WebSocket connection to 'ws://xxxxxxx/' failed: Error during WebSocket handshake: Unexpected response code: 400 ``` nginx 配置如下: ``` server { server_name xxxxxxxxxxxxx; listen 80; location /static { root /var/fixpdq; } location /media { root /var/fixpdq; } location / { proxy_pass http://127.0.0.1:8100; proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Connection "upgrade"; } } ``` django view 代码如下(多余代码省略了) ``` @require_websocket def chat(request): if request.is_websocket(): print('握手成功') .... ``` 本地调试用127.0.0.1 访问是没问题的, 但在本机用局域网ip访问, 就不通, 发布到服务器, 用nginx做代理, 也是不通, 确定的是前端请求已经到达后台代码了. 我想可能是nginx配置的问题 或者是请求到达服务器nginx之前已然就不是socket请求了(因为本机用局域网ip访问也不通), 但是试过很多方法了, 在view 里request.is_websocket() 这句代码是false, nginx转发后居然不是socket请求了, 那肯定就是nginx的配置问题了, 不应该是django 的问题, 求大神帮帮忙!!!
nginx的rewrite指令中break flag疑问
nginx 配置 ```nginx server { listen 8080 default_server ; root /opt/website/write ; rewrite_log on ; location /location1/ { rewrite /location1/(.*) /test/$1 last ; return 200 "location1\r\n" ; } location /location2/ { rewrite /location2/(.*) /test/$1 break ; return 200 "location2\r\n" ; } location /test/ { return 200 "test\r\n" ; } location / { return 200 "null\r\n" ; } } ``` * 创建目录和index.html \# mkdir -p /opt/website/write/{location1,location2,test} \# ls /opt/website/write/|awk '{print $1".index" > "/opt/website/write/"$1"/index.html"}' * 测试: [root@centos-81 ~]# curl -s 192.168.1.81:8080/location2/ test [root@centos-81 ~]# curl -s 192.168.1.81:8080/location2/index.html test.index ## 疑问: * 对第一个请求结果有疑问,照着官方文档描述,break 不会跳出location层级,应该直接寻找 test/目录下的index.html,理论上返回的是 test.index。不知道是啥原因返回了 test * 在第二个请求中也证明了是寻找 /test/目录下的文件,而不是跳出location。
Nginx配置完成后访问登陆界面不能显示css,图片等
配置nginx请求转发,配置完成后将请求转发到部署了tomcat的服务器上可以正常显示,如图 ![图片说明](https://img-ask.csdn.net/upload/201601/07/1452149342_206322.png) 但是将请求转到带有登录界面的网站就无法正常显示,如下图,第一张图原是网站登录页,第二张是请求转发后的显示的图: ![图片说明](https://img-ask.csdn.net/upload/201601/07/1452149357_701068.png) ![图片说明](https://img-ask.csdn.net/upload/201601/07/1452149379_612976.png) 换服务器网站地址以及端口后仍然不行,以下是截图:![图片说明](https://img-ask.csdn.net/upload/201601/07/1452149395_233388.png) 而且无法登陆,不通过nginx访问是可以登陆的。 以下是配置文件 server { listen 80; server_name 188.185.1.191; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://188.185.1.189:8080/; } location ~\.(jpg|jpeg|gif|css|png|ico|html)?$ { access_log off; expires 30d; } location ~\.(jpg|png|jpeg|bmp|gif|swf|css)$ { access_log off; expires 30d; } }
怎么配置Nginx实现跨域和支持PUT DELETE请求?
跨域请求会先发一个OPTIONS再发PUT请求。。遇到405报错 按网上的方法加了下面的配置到location里 ``` add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers Keep-Alive,User-Agent,If-Modified-Since,Cache-Control,Content-Type,Access-Control-Allow-Headers,Authorization,X-Requested-With,token; add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS; if ($request_method = 'OPTIONS') { return 204; } ``` OPTIONS不报405了,但是PUT报了405错。。接着又按网上查到的加了一个配置 ``` error_page 405 =200 /; ``` PUT请求虽然不报错,但是PHP里获取到的REQUEST_METHOD变成GET。。 因为要实现RESTful风格的API。。所以这样也不行 救命怎么办。。
nginx代理 转发请求提示400错误
nginx作代理,相同的配置可以将请求转发到weblogic的7001端口,但是转发至8080端口报400错误;下面是配置文件和日志文件;即http://188.185.1.191:7001/是可以正常访问,但是http://188.185.1.191:8080无法正常访问,http://188.185.1.189:8080是可以正常访问;nginx安装在188.185.1.191服务器上; =========================配置文件========================= server { listen 7001; server_name localhost; location / { #allow 36.0.16.106; #deny all; proxy_redirect off; proxy_set_header Host $host:server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; proxy_pass http://188.185.1.189:7001/; } access_log logs/7002access.log; } server { listen 8080; server_name localhost; location / { proxy_redirect off; proxy_set_header Host $host:server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #proxy_buffering off; proxy_pass http://188.185.1.189:8080/; } access_log logs/8080access.log; } =======================日志文件============================​ 188.185.4.82 - - [02/Mar/2016:17:45:43 +0800] "\x03" 400 172 "-" "-" 188.185.4.82 - - [02/Mar/2016:19:11:06 +0800] "GET /index.jsp HTTP/1.1" 400 5 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER" 188.185.4.82 - - [02/Mar/2016:19:11:09 +0800] "GET /favicon.ico HTTP/1.1" 400 5 "http://188.185.1.191:8080/index.jsp" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER" 188.185.4.82 - - [02/Mar/2016:19:11:19 +0800] "GET /index.jsp HTTP/1.1" 400 5 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER" 188.185.4.82 - - [02/Mar/2016:19:11:20 +0800] "GET /favicon.ico HTTP/1.1" 400 5 "http://188.185.1.191:8080/index.jsp" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER"
nginx+tomcat集群下的压力测试
我现在在单机下尝试模拟nginx+tomcat集群的配置,开了3台虚拟机,1台作nginx服务器另外两台作tomcat服务器。 tomcat下的也设置了maxThreads和timeOut的值。 nginx配的是将所有请求全部转发给后端的两台tomcat。 最后再装了nginx的虚拟机上用ab进行压力测试,在 -n 10000 -c 1500的时候 去测试192.168.171.134:18082没有问题,而测用127.0.0.1测nginx的时候则报错了。 apr_socket_recv: Connection timed out (110) 这个错误去查了说是修改sysctl.conf的参数,关于内核的优化我也去改过了,不过没用。按理说如果是这个问题的话,测192.168.171.134的时候同样是1500并发也应该报错的,但只有测nginx的时候才会报错,而且如果不用nginx的proxy_pass,单单测nginx下的html页面也不会报错。 还有比较奇怪的是,为什么配了nginx做负载均衡后无论用ab还是webbench测试得到的结果都是加上nginx后更慢呢而且还容易fail,我用的是tomcat的主页index.jsp作的测试页面 那么是不是我nginx哪里配的不对呢,我一时想不明白,有人能帮助我吗? nginx.conf user nobody; worker_processes 2; worker_rlimit_nofile 204800; events { use epoll; worker_connections 204800; } http { include mime.types; default_type application/octet-stream; fastcgi_intercept_errors on; charset utf-8; server_names_hash_bucket_size 128; client_header_buffer_size 4k; large_client_header_buffers 4 32k; client_max_body_size 300m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; client_body_buffer_size 512k; proxy_connect_timeout 5; proxy_read_timeout 60; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; upstream abc { server 192.168.171.4:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.171.134:18082 weight=1 max_fails=2 fail_timeout=30s; } server { listen 80; server_name localhost; large_client_header_buffers 4 16k; client_max_body_size 300m; client_body_buffer_size 128k; proxy_connect_timeout 6000; proxy_read_timeout 6000; proxy_send_timeout 6000; proxy_buffer_size 64k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; location / { proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header; proxy_pass http://abc; } } }
nginx的 limit_req_zone问题
http { .... limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; ... } server { ... location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { ... expires 7d; } location / { limit_req zone=one ; root html; index index.html index.jsp; ... } } 这是配置文件,可是1秒发了第二个请求就显示503(总共发了好几个,不过非js.css.jpg等请求只有两个(是不同的请求)),我在limit_req zone=one 后面加上burst=1就可以了,我看了nginx的文档的意思,rate=10r/s;应该就是允许一秒10个,超过10个才跟burst有关,为什么rate=10r/s没起作用 更多 0
请教一个nginx诡异错误!
nginx只做了简单的proxy_pass转发,把一个请求过来的域名转到另外一个地址。今天用户反馈nginx突然无响应,之前一直正常。立马测试一下网站是否正常打开,发现无法打开网站。然后查看了nginx的错误日志,报了大量以下错误: 2017/04/06 13:42:45 [error] 15751#0: *14427045 upstream timed out (110: Connection timed out) while connecting to upstream, client: 114.242.248.127, server: _, request: "GET /O6A04B2EE6A2F8 HTTP/1.1", upstream: "http://127.218.137.219:80/O6A04B2EE6A2F8", host: "ac01.cn" upstream都被指向到了一个估计的IP地址。重启nginx回复正常。 请问各位大牛: 1. 报错日志里面的upstream是什么?proxy_pass请求的域名地址? 2. 会不会被黑了?upstream里面的ip地址并不是转发配置的ip地址。直接访问proxy_pass转发的ip地址是可以正常访问的,排除了后端无法访问导致的请求超时。 nginx转发配置: location / { proxy_pass http://ac02.cn; }
用openresty(nginx+lua)框架开发的项目实现接入统一认证功能,发请求拿token报xxxxx.com.cn could not be resolved (110: Operation timed out)
用openresty(nginx+lua)框架开发的项目实现接入统一认证功能(oauth2),发请求拿access-token时报xxxxx.com.cn could not be resolved (110: Operation timed out),同样的代码在centos,ubuntu虚拟机上测试时能成功运行并返回正确结果,把代码部署到centos服务器上就不行了 nginx部分配置如下 ``` resolver 114.114.114.114 8.8.8.8 8.8.4.4; include mime.types; server { listen 80; lua_ssl_verify_depth 10; lua_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt; set $resp_body ""; set $arg_accessToken ""; lua_need_request_body on; include location_aies.conf; } ``` oauth部分配置如下(在虚拟机中ip用localhost代替) ``` oauth_callback_url = 'http://10.xx.1xx.xx:80/oauth/callback' ``` 获得code后去拿access_token的代码如下 ``` local function request_access_token(code) --ngx.log(ngx.ERR, 'Requesting access token with code ' .. code) local httpc = http.new() httpc:set_timeout(7000) local payload = { client_id=client_id, grant_type="authorization_code", client_secret=client_secret, code=code } local params = { headers = { ["Content-Type"] = "application/x-www-form-urlencoded", }, method="POST",body=ngx.encode_args(payload) } local url=access_token_uri local res, err = httpc:request_uri(url, params) if err then **ngx.log(ngx.ERR, "Got error during access token request: " .. err)** ngx.header['Content-type'] = 'text/html' ngx.status = ngx.HTTP_FORBIDDEN ngx.say("Got error during access token request: " .. err) return ngx.exit(ngx.HTTP_FORBIDDEN) else ``` 就是这这段代码报错的,返回err,err信息为:Got error during access token request:xxxx.com.cn could not be resolved (110: Operation timed out) 我花了好久的时间都没解决,麻烦各路大神指点一下,谢谢了
动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
防劝退!数据结构和算法难理解?可视化动画带你轻松透彻理解!
大家好,我是 Rocky0429,一个连数据结构和算法都不会的蒟蒻… 学过数据结构和算法的都知道这玩意儿不好学,没学过的经常听到这样的说法还没学就觉得难,其实难吗?真难! 难在哪呢?当年我还是个小蒟蒻,初学数据结构和算法的时候,在忍着枯燥看完定义原理,之后想实现的时候,觉得它们的过程真的是七拐八绕,及其难受。 在简单的链表、栈和队列这些我还能靠着在草稿上写写画画理解过程,但是到了数论、图...
【搞定 Java 并发面试】面试最常问的 Java 并发基础常见面试题总结!
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star!【Java学习 面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。欢迎 Star!)。 另外推荐一篇原创:终极推荐!可能是最适合你的Java学习路线 方法 网站 书籍推荐! Java 并发基础常见面试题总结 1. 什么是线程和进程? 1.1. 何为进程? 进程是程...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
shell脚本:备份数据库、代码上线
备份MySQL数据库 场景: 一台MySQL服务器,跑着5个数据库,在没有做主从的情况下,需要对这5个库进行备份 需求: 1)每天备份一次,需要备份所有的库 2)把备份数据存放到/data/backup/下 3)备份文件名称格式示例:dbname-2019-11-23.sql 4)需要对1天以前的所有sql文件压缩,格式为gzip 5)本地数据保留1周 6)需要把备份的数据同步到远程备份中心,假如...
iOS Bug 太多,苹果终于坐不住了!
开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢? 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。不过一直以来,开源的 Android 吸引了无数的手机厂商涌入其中,为其生态带来了百花齐放的盛景,但和神秘且闭源的 iOS 系统相比,不少网友...
神经⽹络可以计算任何函数的可视化证明
《Neural Networks and Deep Learning》读书笔记第四篇本章其实和前面章节的关联性不大,所以大可将本章作为小短文来阅读,当然基本的深度学习基础还是要有的。主要介绍了神经⽹络拥有的⼀种普遍性,比如说不管目标函数是怎样的,神经网络总是能够对任何可能的输入,其值(或者说近似值)是网络的输出,哪怕是多输入和多输出也是如此,我们大可直接得出一个结论:不论我们想要计算什么样的函数,...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
为什么你学不过动态规划?告别动态规划,谈谈我的经验
动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看 0-1 背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验 对于动态规划,春招秋招时好多题都会用到动态...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢,一直是 Eclipse 的忠实粉丝,差不多十年的老用户了。很早就接触到了 IDEA...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
为什么要推荐大家学习字节码?
配套视频: 为什么推荐大家学习Java字节码 https://www.bilibili.com/video/av77600176/ 一、背景 本文主要探讨:为什么要学习 JVM 字节码? 可能很多人会觉得没必要,因为平时开发用不到,而且不学这个也没耽误学习。 但是这里分享一点感悟,即人总是根据自己已经掌握的知识和技能来解决问题的。 这里有个悖论,有时候你觉得有些技术没用恰恰是...
互联网公司的裁员,能玩出多少种花样?
裁员,也是一门学问,可谓博大精深!以下,是互联网公司的裁员的多种方法:-正文开始-135岁+不予续签的理由:千禧一代网感更强。95后不予通过试用期的理由:已婚已育员工更有责任心。2通知接下来要过苦日子,让一部分不肯同甘共苦的员工自己走人,以“兄弟”和“非兄弟”来区别员工。3强制996。员工如果平衡不了工作和家庭,可在离婚或离职里二选一。4不布置任何工作,但下班前必须提交千字工作日报。5不给活干+...
【超详细分析】关于三次握手与四次挥手面试官想考我们什么?
在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章,今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较被面试官给问到的,我觉得如果你能把我下面列举的一些点都记住、理解,我想就差不多了。 三次握手 当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候,我想很多人会这样回答: 首先很多人会先讲下握...
新程序员七宗罪
当我发表这篇文章《为什么每个工程师都应该开始考虑开发中的分析和编程技能呢?》时,我从未想到它会对读者产生如此积极的影响。那些想要开始探索编程和数据科学领域的人向我寻求建议;还有一些人问我下一篇文章的发布日期;还有许多人询问如何顺利过渡到这个职业。我非常鼓励大家继续分享我在这个旅程的经验,学习,成功和失败,以帮助尽可能多的人过渡到一个充满无数好处和机会的职业生涯。亲爱的读者,谢谢你。 -罗伯特。 ...
活到老,学到老,程序员也该如此
全文共2763字,预计学习时长8分钟 图片来源:Pixabay 此前,“网传阿里巴巴要求尽快实现P8全员35周岁以内”的消息闹得沸沸扬扬。虽然很快被阿里辟谣,但苍蝇不叮无缝的蛋,无蜜不招彩蝶蜂。消息从何而来?真相究竟怎样?我们无从而知。我们只知道一个事实:不知从何时开始,程序猿也被划在了“吃青春饭”行业之列。 饱受“996ICU”摧残后,好不容易“头秃了变强了”,即将步入为“高...
Vue快速实现通用表单验证
本文开篇第一句话,想引用鲁迅先生《祝福》里的一句话,那便是:“我真傻,真的,我单单知道后端整天都是CRUD,我没想到前端整天都是Form表单”。这句话要从哪里说起呢?大概要从最近半个月的“全栈工程师”说起。项目上需要做一个城市配载的功能,顾名思义,就是通过框选和拖拽的方式在地图上完成配载。博主选择了前后端分离的方式,在这个过程中发现:首先,只要有依赖jQuery的组件,譬如Kendoui,即使使用...
2019年Spring Boot面试都问了什么?快看看这22道面试题!
Spring Boot 面试题 1、什么是 Spring Boot? 2、Spring Boot 有哪些优点? 3、什么是 JavaConfig? 4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性? 7、如何在自定义端口上运行 Sprin...
【图解】记一次手撕算法面试:字节跳动的面试官把我四连击了
字节跳动这家公司,应该是所有秋招的公司中,对算法最重视的一个了,每次面试基本都会让你手撕算法,今天这篇文章就记录下当时被问到的几个算法题,并且每个算法题我都详细着给出了最优解,下面再现当时的面试场景。看完一定让你有所收获 一、小牛试刀:有效括号 大部分情况下,面试官都会问一个不怎么难的问题,不过你千万别太开心,因为这道题往往可以拓展出更多有难度的问题,或者一道题看起来很简单,但是给出最优解,确实很...
关于裁员几点看法及建议
最近网易裁员事件引起广泛关注,昨天网易针对此事,也发了声明,到底谁对谁错,孰是孰非?我们作为吃瓜观众实在是知之甚少,所以不敢妄下定论。身处软件开发这个行业,近一两年来,对...
面试官:关于Java性能优化,你有什么技巧
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 J...
相关热词 c# 时间比天数 c# oracle查询 c# 主动推送 事件 c# java 属性 c# 控制台 窗体 c# 静态类存值 c#矢量作图 c#窗体调用外部程式 c# enum是否合法 c# 如何卸载引用
立即提问