在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/ Linux問(wèn)答
安淺陌 回答

兩種辦法
ctrl+backspace;
如果有 bash 就用 /bin/bash

孤客 回答

1、利用progress-stream獲取上傳進(jìn)度

如果只是想在服務(wù)端獲取上傳進(jìn)度,可以試下如下代碼。注意,這個(gè)模塊跟express、multer并不是強(qiáng)綁定關(guān)系,可以獨(dú)立使用。

var fs = require('fs');
var express = require('express');
var multer  = require('multer');
var progressStream = require('progress-stream');

var app = express();
var upload = multer({ dest: 'upload/' });

app.post('/upload', function (req, res, next) {
    // 創(chuàng)建progress stream的實(shí)例
    var progress = progressStream({length: '0'}); // 注意這里 length 設(shè)置為 '0'
    req.pipe(progress);
    progress.headers = req.headers;
    
    // 獲取上傳文件的真實(shí)長(zhǎng)度(針對(duì) multipart)
    progress.on('length', function nowIKnowMyLength (actualLength) {
        console.log('actualLength: %s', actualLength);
        progress.setLength(actualLength);
    });

    // 獲取上傳進(jìn)度
    progress.on('progress', function (obj) {        
        console.log('progress: %s', obj.percentage);
    });

    // 實(shí)際上傳文件
    upload.single('logo')(progress, res, next);
});

app.post('/upload', function (req, res, next) {
    res.send({ret_code: '0'});
});

app.get('/form', function(req, res, next){
    var form = fs.readFileSync('./form.html', {encoding: 'utf8'});
    res.send(form);
});

app.listen(3000);

2、獲取上傳文件的真實(shí)大小

multipart類(lèi)型,需要監(jiān)聽(tīng)length來(lái)獲取文件真實(shí)大小。(官方文檔里是通過(guò)conviction事件,其實(shí)是有問(wèn)題的)

    // 獲取上傳文件的真實(shí)長(zhǎng)度(針對(duì) multipart)
    progress.on('length', function nowIKnowMyLength (actualLength) {
        console.log('actualLength: %s', actualLength);
        progress.setLength(actualLength);
    });

3、關(guān)于progress-stream獲取真實(shí)文件大小的bug?

針對(duì)multipart文件上傳,progress-stream 實(shí)例子初始化時(shí),參數(shù)length需要傳遞非數(shù)值類(lèi)型,不然你獲取到的進(jìn)度要一直是0,最后就直接跳到100。

至于為什么會(huì)這樣,應(yīng)該是 progress-steram 模塊的bug,看下模塊的源碼。當(dāng)length是number類(lèi)型時(shí),代碼直接跳過(guò),因此你length一直被認(rèn)為是0。

    tr.on('pipe', function(stream) {
        if (typeof length === 'number') return;
        // Support http module
        if (stream.readable && !stream.writable && stream.headers) {
            return onlength(parseInt(stream.headers['content-length'] || 0));
        }

        // Support streams with a length property
        if (typeof stream.length === 'number') {
            return onlength(stream.length);
        }

        // Support request module
        stream.on('response', function(res) {
            if (!res || !res.headers) return;
            if (res.headers['content-encoding'] === 'gzip') return;
            if (res.headers['content-length']) {
                return onlength(parseInt(res.headers['content-length']));
            }
        });
    });

參考鏈接

https://github.com/expressjs/...
https://github.com/freeall/pr...

玄鳥(niǎo) 回答

已找到答案, 方法如下

server {
    listen       80;
    server_name  localhost;
    
    location /a/ { #a目錄的404設(shè)置
        error_page 404 /err1.html;
    }
    
    location /b/ { #b目錄的404設(shè)置
        error_page 404 /err2.html;
    }
    
}
礙你眼 回答

不需要寫(xiě).htaccess,甚至這個(gè)文件都不建議啟用。

你需要看的其實(shí)就是apache的批量虛擬主機(jī),這個(gè)在方案官方文檔就有: https://httpd.apache.org/docs...

荒城 回答

如果只是想做到一個(gè)工作線(xiàn)程+n個(gè)io線(xiàn)程的話(huà),不管是阻塞還是非阻塞都是可以做到的。

青裙 回答

先試試這個(gè)

location ^~ /appdoc {
  root /web/web1/appdoc/
  try_files xxx xxx xxx
}
淚染裳 回答

git只會(huì)追蹤你項(xiàng)目目錄下的文件,也就是.git文件夾所在的文件和子文件夾
你應(yīng)該是想要在把項(xiàng)目的依賴(lài)也讓git追蹤,可以看看這個(gè)glide
大多依賴(lài)管理都是git追蹤依賴(lài)信息,然后再去repo里面拉取的,不會(huì)直接追蹤依賴(lài)的所有文件

空白格 回答

cron 了解一下,至于業(yè)務(wù)需求就自己封裝咯

蝶戀花 回答

設(shè)置的 IP 必須是本機(jī)的,你可以通過(guò)下面的命令查到本機(jī)的所有 IP

ip address
尐潴豬 回答

數(shù)據(jù)存儲(chǔ)路徑修改需要重新初始化數(shù)據(jù)庫(kù)的,你確定你修改成功了?

爆扎 回答

連接慢的主要原因是DNS解析導(dǎo)致
一、測(cè)試查找具體原因:
1、使用ssh -v host進(jìn)行debug

ssh -v 192.168.100.10

然后就會(huì)輸出一大堆debug,通過(guò)debug信息就可以看到連接到什么地方被耽擱了
比如會(huì)顯示如下信息:
[html] view plain copy
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
No credentials cache found

2、檢測(cè)連接時(shí)間

time ssh root@192.168.100.10 exit

二、解決方法(建議一個(gè)個(gè)設(shè)置,因?yàn)槊總€(gè)人連接慢的原因都不一樣):

注意:修改之后記得重啟sshd服務(wù)

service sshd restart

1、關(guān)閉DNS反向解析
在linux中,默認(rèn)就是開(kāi)啟了SSH的反向DNS解析,這個(gè)會(huì)消耗大量時(shí)間,因此需要關(guān)閉。

vi /etc/ssh/sshd_config

UseDNS=no

在配置文件中,雖然UseDNS yes是被注釋的,但默認(rèn)開(kāi)關(guān)就是yes

2、關(guān)閉SERVER上的GSS認(rèn)證
在authentication gssapi-with-mic有很大的可能出現(xiàn)問(wèn)題,因此關(guān)閉GSS認(rèn)證可以提高ssh連接速度。

vi /etc/ssh/sshd_config

GSSAPIAuthentication no

3、修改server上nsswitch.conf文件

vi /etc/nsswitch.conf

找到
hosts: files dns
改為
hosts:files

hosts: files dns這一行含義是對(duì)于訪(fǎng)問(wèn)的主機(jī)進(jìn)行域名解析的順序,是先訪(fǎng)問(wèn)file,也就是/etc/hosts文件,如果hosts中沒(méi)有記錄域名,則訪(fǎng)問(wèn)dns,進(jìn)行域名解析,如果dns也無(wú)法訪(fǎng)問(wèn),就會(huì)等待訪(fǎng)問(wèn)超時(shí)后返回,因此等待時(shí)間比較長(zhǎng)。
注意:如果SERVER需要通過(guò)域名訪(fǎng)問(wèn)其他服務(wù)器,則需要保留此行。

4、修改SERVER上resolv.conf文件
4.1、刪除/etc/resolv.conf中所有不使用的IP。
4.2、把nameserver全部刪除,問(wèn)題也能解決,但是服務(wù)器就無(wú)法上網(wǎng)了。
4.3、如果SERVER曾經(jīng)配置過(guò)雙網(wǎng)卡,則在該文件中會(huì)有一行目前不使用的IP地址,刪除該行即可。

5、修改SERVER上hosts文件
在SERVER上/etc/hosts文件中把客戶(hù)端的IP和HOSTNAME加入

6、打開(kāi)SERVER上的IgnoreRhosts參數(shù)
IgnoreRhosts參數(shù)可以忽略以前登錄過(guò)主機(jī)的記錄,設(shè)置為yes后可以極大的提高連接速度

vi /etc/ssh/sshd_config

IgnoreRhosts yes

7、修改客戶(hù)端的hosts文件
將目標(biāo)SERVER的IP和域名加上去,使得本機(jī)的DNS服務(wù)能解析目標(biāo)地址。

vi /etc/hosts

192.168.100.11 doiido.com

注:hosts文件格式為'目標(biāo)SERVER_IP 目標(biāo)SERVER_NAME'。但是使用這個(gè)方法有一個(gè)弊端,如果需要給每臺(tái)SERVER都添加一個(gè)域名解析。

8、修改客戶(hù)端配置文件ssh_conf(注意,不是sshd_conf)

vi /etc/ssh/ssh_conf

找到
GSSAPIAuthentication yes
改為
GSSAPIAuthentication no

落殤 回答

1、根據(jù)你的截圖,流量高峰也就400多KB,所以1M帶寬就夠你用了,1M等于1024KB

2、經(jīng)??催@個(gè)趨勢(shì)圖,根據(jù)具體情況去調(diào)整帶寬

青檸 回答

開(kāi)發(fā)的擴(kuò)展模塊不知道,但是PHP和git交互的庫(kù)有幾個(gè)
Git.php
Gitter

希望你能給整成 PHP的擴(kuò)展庫(kù)

菊外人 回答

如果是系統(tǒng)安裝,可以直接用服務(wù)管理腳本進(jìn)行管理,
如ubuntu下/etc/init.d/tomcat8
使用命令

$ sudo service tomcat8 restart

腳本內(nèi)容如下:

 stop)
log_daemon_msg "Stopping $DESC" "$NAME"

set +e
if [ -f "$CATALINA_PID" ]; then 
start-stop-daemon --stop --pidfile "$CATALINA_PID" \
--user "$TOMCAT8_USER" \
--retry=TERM/20/KILL/5 >/dev/null
if [ $? -eq 1 ]; then
log_progress_msg "$DESC is not running but pid file exists, cleaning up"
elif [ $? -eq 3 ]; then
PID="`cat $CATALINA_PID`"
log_failure_msg "Failed to stop $NAME (pid $PID)"
exit 1
fi
rm -f "$CATALINA_PID"
rm -rf "$JVM_TMP"
else
log_progress_msg "(not running)"
fi
log_end_msg 0
set -e
;;

基本的思路是先用start-stop-daemon發(fā)停止信號(hào)給tomcat進(jìn)程, 如果進(jìn)程不能順利結(jié)束,再用kill殺掉. 這里TERM/20/KILL/5意思是先發(fā)送TERM信號(hào)20秒沒(méi)有結(jié)束接著發(fā)送KILL信號(hào),超時(shí)時(shí)間為5秒.
如果你自己管理,也可以參考上面腳本來(lái)完成.

懷中人 回答
后端不是一樣可以拿到數(shù)據(jù)嗎

是沒(méi)問(wèn)題啊,你跟后端商量好就行。

萌吟 回答
請(qǐng)問(wèn)怎么改造可以讓后臺(tái)POST時(shí)候收到收到參

network看你前端本來(lái)就沒(méi)問(wèn)題,而問(wèn)題就變成后端接收不到參數(shù),那么后端可以處理什么content-type呢?(這是接口定義的問(wèn)題,人家定義不接受form data你發(fā)過(guò)去有啥用)

一開(kāi)始以為你是發(fā)送請(qǐng)求的截圖,原來(lái)是后臺(tái)給的成功實(shí)例。。
當(dāng)然有問(wèn)題,application/x-www-form-urlencoded發(fā)送數(shù)據(jù)的格式是a=b&c=d,而你發(fā)的是json字符串,你可以用qs模塊轉(zhuǎn)一下。

      if (type == 'POST') {
        sendData = JSON.stringify(data);
      }

      requestObj.open(type, url, true);
      requestObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      requestObj.send(sendData);

然后以后有關(guān)Network的問(wèn)題,有什么不成功請(qǐng)截個(gè)圖發(fā)出來(lái)才能看到你到底發(fā)送了什么。