如何上传或同步文件至Nginx配置的静态资源服务器

如题,最近用nginx搭建了一个静态资源服务器,对于同步或上传文件至静态资源服务器,大家有啥好点子不?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
nginx静态资源无法完全加载的问题

我目前碰到的问题具体是这样的: 1. 若不开启静态资源压缩,则所有静态资源都无法加载。 2. 开启静态资源压缩后,部分静态资源可以访问,当某个超过40KB左右的JS文件无法访问时,其后续的静态资源都无法加载,各种浏览器试了都是同样的现象。 以上都是在Windows1809系统下,没有任何后端,纯前端静态。 nginx设置了MB级别的请求大小限制,绝对够KB级的静态资源访问用了,也设置了各种超时时长以及缓存,静态资源文件的访问权限也是有的,同时我查看了nginx本身的日志,所有请求的状态码都是200,并没有任何异常或报错,就浏览器那端报4XX或5XX。 此情况只出现在我本机上,局域网下其他机器访问我本机的nginx服务与资源都是完全正常的,而且我把同样的nginx配置和资源挪到其他机器跑起来然后自访问也是完全正常的,所以这个就很诡异了。 我个人怀疑可能是Windows防火墙、Defender杀毒软件、某一次系统更新,因为去年这些都是正常的,不太记得是哪一次系统升级或更新之后就出现这种情况了。 如果实在没办法了我只好重装系统来解决了 贴一下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 logs/access.log main; sendfile on; #on/off #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 300s 300s; fastcgi_connect_timeout 6000s; fastcgi_send_timeout 6000s; fastcgi_read_timeout 6000s; fastcgi_buffer_size 256k; fastcgi_buffers 8 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; # 压缩配置 gzip on; #开启gzip压缩功能,默认是关闭的。 gzip_static on; #开启gzip静态资源 gzip_min_length 1k; #允许压缩的页面最小字节数,默认是全部都压缩,最好不要小于1k,因为小于1k的可能越压越大。 gzip_buffers 16 128k; #设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k代表以16k为单位,安装原始数据大小以16k为单位的4倍申请内存。 gzip_http_version 1.1; #设置http协议版本,只对1.1版本进行压缩。 gzip_comp_level 9; #gzip压缩比/压缩级别,压缩级别 1-9,级别越高压缩率越大,当然压缩时间也就越长(传输快但比较消耗cpu)。 gzip_types text/plain text/xml text/css text/javascript application/xml application/json application/javascript application/x-javascript image/x-icon image/jpg image/jpeg image/gif image/png application/x-font-ttf application/font-woff application/font-woff2; #设置压缩文件类型,这里指定了text/html text html js css json xml image font。 gzip_disable "MSIE [1-6]\."; #IE1-6版本不支持gzip压缩 gzip_proxied any; gzip_vary off; #给http请求增加vary字段,不支持gzip的不进行压缩处理。 # 设置上传文件大小限制 client_max_body_size 50M; client_body_buffer_size 512K; client_header_buffer_size 10M; client_header_timeout 120s; client_body_timeout 120s; # http_proxy proxy_buffers 32 256k; #缓冲区,nginx针对单个连接缓存来自后端real-server的响应 proxy_buffer_size 256k; #设置代理服务器(nginx)从后端real-server读取并保存用户头信息的缓冲区大小,默认与proxy_buffers大小相同,其实可以将这个指令值设的小一点 proxy_busy_buffers_size 256k; #高负荷下缓冲大小(proxy_buffers*2) proxy_max_temp_file_size 1024M; #当proxy_buffers放不下后端服务器的响应内容时,会将一部分保存到硬盘的临时文件中,这个值用来设置最大临时文件大小,默认1024M,它与proxy_cache没有关系。大于这个值,将从upstream服务器传回。设置为0禁用。 proxy_temp_file_write_size 256k; #当缓存被代理的服务器响应到临时文件时,这个选项限制每次写临时文件的大小。 proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; upstream nacos-server { server 127.0.0.1:8848; #server 127.0.0.1:8841; #server 127.0.0.1:8842; #server 127.0.0.1:8843; } include ../servers/*.conf; } ``` --- 某一个次配置: ``` server { # 设置端口监听 listen 80; # 设置监听的域名(此处的域名为自定义配置,请在host文件中添加) server_name nacos.cn; # 统一字符编码 charset utf-8; # 资源根路径 root static; #access_log logs/host.access.log main; # 默认配置 #location / { # index login.html; #} # 端口转发配置 location /nacos/ { proxy_pass http://nacos-server/nacos/; add_header From nacos.cn; proxy_redirect default; proxy_set_header Host $host; proxy_set_header Server-Name $server_name; proxy_set_header Http-Host $http_host; proxy_set_header Cookie $http_cookie; proxy_set_header Referer $http_referer; proxy_set_header Nginx_Version $nginx_version; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-Port $remote_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Nginx-Proxy true; proxy_cookie_path / /; } # 异常处理 #error_page 404 /404.html; error_page 500 502 503 504 /50x.html; } ```

nginx代理静态文件的问题

如果使用nginx代理静态文件,是否一定要求nginx和静态文件处于同一台服务器 例如:192.138.132.100 nginx服务器 192.138.132.101 静态文件服务器 这样可以么?

nginx静态资源访问问题

阿里云tomcat下面有这些工程![图片说明](https://img-ask.csdn.net/upload/201806/19/1529377819_997489.png) 其中ROOT下是静态资源和页面,可以通过www.xxxx.com 直接访问,但是我加入了NGINX配置后,别的工程都能正常访问,ROOT下的css,js图片都无法访问了,请问是哪里出的问题呢?谢谢大神

nginx 配置动静态资源 为什么只加载静态资源路径,服务的静态资源不加载。如果两个都加载该怎么配置

upstream getway_pool_hh{ server 127.0.0.1:8068; } server { listen 80; server_name 112.124.202.74; access_log logs/1.log; error_log logs/12.error; location / { index index.html; } location ~ .*\.(jpg|gif|png|css|js|html|txt)$ { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; gzip on; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/css text/javascript image/jpeg image/gif image/png; root /usr/local/sss/resource; } location ~ .*\.(eot|svg|ttf|woff|otf)$ { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; gzip on; gzip_http_version 1.1; gzip_comp_level 2; gzip_types application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml; root /usr/local/sss/resource; } error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location /getway { 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_pass http://getway_pool_hh; } }

如何将图片上传的静态资源服务器?

使用java搭建了一个web后台 , 现在想用nginx 搭建一个静态资源服务器 。 但是问题来了 :用户是直接将图片上传到tomcat的 , 如何将图片同步到nginx比较好呢? 或者说能不能让用户直接将图片上传到nginx服务器 ?

nginx的静态和动态资源分开处理问题

利用nginx配置资源分开处理时,是通过配置location,设置相应的正则表达式以及对应的处理 规则。 比如 location ~* \.(gif|css){ root G:/test1/resource } 这里的问题是,gif在G:/test1/resource/image文件夹下,而css在G:/test1/resource/css文件夹下 。请问一下。。为什么我按照上面这样写,取不到对应的资源呢?难道不可以从父级目录访问到子目录么?如果不行的话,那要怎么写额。。。

nginx 反向代理 静态资源 url重写?

我的nginx配置非常简单 ``` server{ location /app/ { proxy_pass http://172.20.0.1:5555/; } } ``` 172.20.0.1 ,web前端: ``` <html> <body> <script src="../static/main.js"></script> <div>hello</div> </body> </html> ``` ------------------ nginx 能通过 ip/app/ 访问到 172.20.0.1 的页面, 但是,里面的js文件没有转发,浏览器实际的路径: ip/static/main.js 正确路径应该是:ip/app/static/main.js 我要怎么改nginx配置才能实现?

求大神:nginx配置全局静态资源,但是加载不到项目的js

1.nginx配置全局静态资源,但是加载不到项目的js了 ``` upstream getway_pool_hh{ server 127.0.0.1:8068; } ``` ``` server { listen 80; server_name 112.124.202.74; access_log logs/1.log; error_log logs/12.error; location / { index index.html; } location ~ .*\.(jpg|gif|png|css|js|html|txt)$ { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; gzip on; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/css text/javascript image/jpeg image/gif image/png; root /usr/local/sss/resource; } location ~ .*\.(eot|svg|ttf|woff|otf)$ { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; gzip on; gzip_http_version 1.1; gzip_comp_level 2; gzip_types application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml; root /usr/local/sss/resource; } error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location /getway { 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_pass http://getway_pool_hh; } } ``` ``` ```

nginx如何配置可以访问远程主机资源

nginx安装在192.168.64.100上 图片1.png在192.168.64.102主机的路径为/tmp/images/1.png 现在需要使用image.xyz.com/images/1.png访问1.png这张图片 nginx.conf文件配置: server { listen 80; server_name image.xyz.com; location / { } } 哪位大神教教我server里面应该怎么配置呢?192.168.64.102主机还需要进一步配置吗?拜托

Vertx怎么上传或下载文件到Nginx服务器

## # 请问一下Vertx怎么写文件上传下载文件,上传和下载的地址为服务器为Nginx服务器 这是Vertx的代码、程序开启时Vertx可以启动,但是不知道怎么上传文件,求补充前端代码怎么触发上传或下载 ````java package zyxhj.utils; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import io.vertx.core.AbstractVerticle; import io.vertx.core.http.HttpMethod; import io.vertx.core.http.HttpServer; import io.vertx.core.http.HttpServerRequest; import io.vertx.core.http.HttpServerResponse; import io.vertx.ext.web.Router; import io.vertx.ext.web.RoutingContext; import io.vertx.ext.web.handler.BodyHandler; import zyxhj.utils.api.BaseRC; import zyxhj.utils.api.Controller; public abstract class ZeroVerticle extends AbstractVerticle { private static Logger log = LoggerFactory.getLogger(ZeroVerticle.class); private static final String PATH_ASSET = "-assets"; protected Map<String, Controller> ctrlMap = new LinkedHashMap<>(); protected abstract void init() throws Exception; protected abstract String name(); protected abstract int port(); protected void initCtrl(Map<String, Controller> map, Controller ctrl) { map.put(ctrl.getNode(), ctrl); } public void start() { log.error("verticle<{}> started", name()); try { init(); HttpServer httpServer = vertx.createHttpServer(); Set<String> allowHeaders = new HashSet<>(); allowHeaders.add("x-requested-with"); allowHeaders.add("Access-Control-Allow-Origin"); allowHeaders.add("origin"); allowHeaders.add("Content-Type"); allowHeaders.add("accept"); // REST 增删查改方法 Set<HttpMethod> allowMethods = new HashSet<>(); allowMethods.add(HttpMethod.GET); allowMethods.add(HttpMethod.POST); // 实例化一个路由器出来,用来路由不同的rest接口 Router router = Router.router(vertx); // 增加一个处理器,将请求的上下文信息,放到RoutingContext中 router.route().handler(BodyHandler.create()); router.route("/*").handler(this::handleHttpRequest); httpServer.requestHandler(router); httpServer.listen(port(), res -> { if (res.succeeded()) { System.out.println(StringUtils.join("Server is now listening! @", port())); } else { System.out.println("Fatal error: " + res.cause()); vertx.close(); // 严重错误,不应该继续运行,需要关闭vertx实例 System.exit(-1); // 自定义程序非正常退出码,这里定义255 } }); } catch (Exception e) { e.printStackTrace(); } } private void handleHttpRequest(RoutingContext context) { HttpServerRequest req = context.request(); HttpServerResponse resp = context.response(); resp.putHeader("Access-Control-Allow-Origin", "*");// 设置跨域,目前不限制。TODO,将来需要设定指定的来源 //文件上传特殊处理 if (req.uri().startsWith("/form")) { System.out.println("enter startWith"); req.setExpectMultipart(true); req.uploadHandler(upload -> { System.out.println("enter upload"); upload.exceptionHandler(cause -> { System.out.println("enter exceptionHandler"); req.response().setChunked(true).end("Upload failed"); }); upload.endHandler(v -> { System.out.println("enter endHandler"); req.response().setChunked(true).end("Successfully uploaded to " + upload.filename()); }); // FIXME - Potential security exploit! In a real // system you must check this filename // to make sure you're not saving to a place where // you don't want! // Or better still, just use Vert.x-Web which // controls the upload area. upload.streamToFileSystem(upload.filename()); }); } else { System.out.println(StringUtils.join(req.method(), " - ", req.path())); String reqPath = req.path(); String[] nodes = uri2Nodes(reqPath); if (null != nodes && nodes.length > 0) { // 可能因为nginx反向代理,在SERVER_NAME前加入多级子域名,需要过滤掉 // 去除nodes中,SERVER_NAME之前的部分 int startInd = 0; boolean flg = false; for (; startInd < nodes.length; startInd++) { if (nodes[startInd].equalsIgnoreCase(name())) { // 找到SERVER_NAME所在的index flg = true; break; } } if (flg) { // 匹配到SERVER_NAME if (startInd + 1 >= nodes.length) { // 只有SERVER_NAME节点,显示list resp.putHeader("content-type", "application/json;charset=UTF-8"); Controller.writeThings(resp, getCtrldocs()); } else if (startInd + 2 >= nodes.length) { // 只有controller节点,没有method节点,返回错误 resp.putHeader("content-type", "application/json;charset=UTF-8"); String node = nodes[startInd + 1]; Controller ctrl = ctrlMap.get(node); if (ctrl == null) { Controller.doResponseFailure(resp, BaseRC.SERVER_ERROR, StringUtils.join("missing controller ", node)); } else { Controller.writeThings(resp, ctrl.getJSCode()); } } else { String node = nodes[startInd + 1]; String method = nodes[startInd + 2]; Controller ctrl = ctrlMap.get(node); if (null != ctrl) { resp.putHeader("content-type", "application/json;charset=UTF-8"); try { ctrl.exec(method, context, req, resp); } catch (Exception e) { Controller.writeThings(resp, e.getMessage()); } } else { // 最好不设置content-type的header,否则文件处理可能出错 // 返回404错误 // 没有找到合适的ctrl,则可能是模版或静态资源文件 if (node.equalsIgnoreCase(PATH_ASSET)) { // goto template // -tmp 模版引擎处理 int ind = reqPath.indexOf(PATH_ASSET) + PATH_ASSET.length(); String temp = reqPath.substring(ind); String fileName = StringUtils.join("assets", temp); if (vertx.fileSystem().existsBlocking(fileName)) { // 处理静态文件 resp.sendFile(fileName); // 需要retrun,防止本函数写入终止符 return; } else { // 模版和静态文件都不存在 Controller.doResponseFailure(resp, BaseRC.SERVER_ERROR, StringUtils.join("missing file >", fileName)); } } else { Controller.doResponseFailure(resp, BaseRC.SERVER_ERROR, StringUtils.join("missing controller ", node)); } } } } } else { // 返回404错误 resp.putHeader("content-type", "application/json;charset=UTF-8"); Controller.doResponseFailure(resp, BaseRC.SERVER_ERROR, StringUtils.join("missing controller ", reqPath)); } } resp.end(); } /** * 斜杠 */ private static final char URI_SLASH = '/'; private static String[] uri2Nodes(String uri) { // 去前后空白 String tmp = StringUtils.trim(uri); // 去前后斜杠 if (tmp.length() > 0) { if (tmp.charAt(0) == URI_SLASH) { tmp = tmp.substring(1); } } if (tmp.length() > 0) { if (tmp.charAt(tmp.length() - 1) == URI_SLASH) { tmp = tmp.substring(0, tmp.length() - 1); } } // 根据斜杠拆分 if (tmp.length() > 0) { String[] nodes = StringUtils.split(tmp, URI_SLASH); return nodes; } else { return null; } } public Map<String, Controller> getCtrlList() { return ctrlMap; } public Controller getCtrlDetail(String name) { return ctrlMap.get(name); } private String getCtrldocs() { StringBuffer sb = new StringBuffer(); String ln = "\n"; String ln2 = "\n\n"; sb.append("\t\tSERVER <").append(name()).append(">").append(ln2); Iterator<Entry<String, Controller>> it = ctrlMap.entrySet().iterator(); while (it.hasNext()) { Entry<String, Controller> entry = it.next(); String key = entry.getKey(); Controller value = entry.getValue(); sb.append(">>>>> ").append(key).append(ln); value.getJSONDocs(sb); sb.append(ln).append( "\t------------------------------------------------------------------------------------------\t") .append(ln2); } return sb.toString(); } } ````

使用nginx作为文件服务器时,如何进行鉴权

由于系统使用到了文件上传和下载,为了方便起见,用户在查看文件时,返回有权限的文件路径,在用户查看或下载文件时,则由nginx处理,这个时候如果一旦难道文件路径,任何人都可以访问,如何在文件访问时进行有效的鉴权呢?

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做静态文件分离啥思路

大佬们,如果用nginx做静态文件分离啥思路,比如我把静态文件分离了,那么新上传的文件怎么去做同步等控制?

TP3.2框架伪静态Nginx配置错误?

手机端伪静态跳转规则:RewriteCond %{HTTP_HOST} ^(m|wap|waps|m2)(.|\n)+$[NC]RewriteCond %{REQUEST_URI} !^/templates/wap2/ RewriteRule ^(.*)$ /templates/wap2/$1 在Apache运行环境下是可以正常跳转手机端并显示正常,但 是在Nginx运行环境下,转换成 location ~ /templates/wap2/ {}location / { if ($http_host ~* "^(m|wap|waps|m2)(.|\n)+$"){ rewrite ^(.*)$ /templates/wap2/$1; }}用浏览器开发者模式下用UA方式访问绑定转的手机域名后,出现302错误,重定向次数过多。如果使用手机域名直接访问下,就会读取不到手机样式,全部错位(在Nginx环境下)但是在Apache环境下就很正常!

nginx服务器配置中如何使用绝对路径

请问nginx.conf配置文件中如何使用绝对路径.我想把静态文件请求使用nginx拦截不转交给tomcat处理,但是改了半天nginx只在他的文件夹下读取静态文件,请问如何让nginx到另一个磁盘下读取文件? 以下是我的配置文件: location ~ ^/upload/image/ { root E:\Workspace\fitness\WebRoot\upload\image\; expires 10d; } 谢谢各位!

nginx搭建的hls服务器上传的视频文件会自动删除?

我按照网上的资料https://www.jianshu.com/p/aa7f9e204a62 搭建了hls服务器,在测试时我在nginx配置的路径中上传了.m3u8格式的视频文件,但再一次播放后发现文件会自动删除。我的需求其实是在线观看视频,所以上传的视频文件不能被删除。哪位大神能指点一下小弟看看到底是哪里的问题

nginx做文件服务器,怎么设置可以防范别人拿到上传链接后频繁的上传文件到服务器,以托慢服务器的效率

就怕别人自己新写个页面,用脚本24小时不间断的攻击文件服务器。

web应用服务器与文件资源服务器分离

本人最近想把web应用与上传的文件资源分离,分成两类服务器:应用服务器与资源服 务器。应用服务器与资源服务器都有多台,通过nginx 做负载均衡,那么问题来了,如 何能保证上传到资源服务器的文件能比较及时、高效的被应用服务器访问到?不知道有木有做过这方面的,给点指导意见,谢谢

微信小程序上传文件到nginx服务器,php后台接收图片,但是找不到页面

![图片说明](https://img-ask.csdn.net/upload/201903/10/1552206459_319849.png)![图片说明](https://img-ask.csdn.net/upload/201903/10/1552206470_243993.png) 微信小程序上传文件到nginx服务器,php后台接收图片,明明可以request到,但是wx.uploadFile却找不到页面,哪位大佬知道什么情况,求告知

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Intellij IDEA 实用插件安利

1. 前言从2020 年 JVM 生态报告解读 可以看出Intellij IDEA 目前已经稳坐 Java IDE 头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。IDEA 的...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

魂迁光刻,梦绕芯片,中芯国际终获ASML大型光刻机

据羊城晚报报道,近日中芯国际从荷兰进口的一台大型光刻机,顺利通过深圳出口加工区场站两道闸口进入厂区,中芯国际发表公告称该光刻机并非此前盛传的EUV光刻机,主要用于企业复工复产后的生产线扩容。 我们知道EUV主要用于7nm及以下制程的芯片制造,光刻机作为集成电路制造中最关键的设备,对芯片制作工艺有着决定性的影响,被誉为“超精密制造技术皇冠上的明珠”,根据之前中芯国际的公报,目...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

百度工程师,获利10万,判刑3年!

所有一夜暴富的方法都写在刑法中,但总有人心存侥幸。这些年互联网犯罪高发,一些工程师高技术犯罪更是引发关注。这两天,一个百度运维工程师的案例传遍朋友圈。1...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《Oracle Java SE编程自学与面试指南》最佳学习路线图2020年最新版(进大厂必备)

正确选择比瞎努力更重要!

字节跳动面试官竟然问了我JDBC?

轻松等回家通知

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

实时更新:计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年6月份最新版)

内容导航: 1、TIOBE排行榜 2、总榜(2020年6月份) 3、本月前三名 3.1、C 3.2、Java 3.3、Python 4、学习路线图 5、参考地址 1、TIOBE排行榜 TIOBE排行榜是根据全世界互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据。

立即提问
相关内容推荐