激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - HipChat上傳文件報未知錯誤的原因分析及解決方案

HipChat上傳文件報未知錯誤的原因分析及解決方案

2019-11-08 14:41mrr Nginx

HipChat的功能類似于Campfire、Sazneo等在線協同工具,并且和Yammer以及Salesforce的Chatter等企業社交平臺有一定相似之處。你可以為單個項目或者小組搭建自有的聊天室,也可以很方便的發起一對一聊天

HipChat的功能類似于Campfire、Sazneo等在線協同工具,并且和Yammer以及Salesforce的Chatter等企業社交平臺有一定相似之處。你可以為單個項目或者小組搭建自有的聊天室,也可以很方便的發起一對一聊天。這套 IM 系統還整合了團隊文件管理和分享,拖拽就能完成保存操作。

前言

HipChat是Atlassian公司的一款團隊協作即時通訊工具,服務端為Linux(官方給的服務端就是一個虛擬機),在Windows、Linux、Android、IOS、Mac等平臺都有客戶端軟件,還可以直接在PC的Web上直接聊天,對于團隊協作交流需求整理的比較到位,最主要的是HipChat可以和Confluence對接討論主題(不是有Confluence的需求個人覺得不如其他一些團隊通訊軟件)。

前些天接下了配置HipChat服務端的任務,但是使用了幾天后發現,聊天時發送超過10M的文件就會報錯:

HipChat上傳文件報未知錯誤的原因分析及解決方案

嗯,而且給了個明顯是廢話的報錯提示:在上傳文件的時候出錯了。

而官方文檔上寫的限制是50M。所以這里肯定是有問題的。

這里先給出最終解決方法:

1.登錄linux,使用下面命令取得root權限

 

復制代碼代碼如下:

sudo /bin/dont-blame-hipchat 

 

2.編輯配置文件:

 

復制代碼代碼如下:

vi /etc/nginx/includes/web-site 

 

3.在大概120行的位置找到如下代碼片段,添加并修改client_max_body_size 1024m;(原來是10M)

 

復制代碼代碼如下:

# Coral requests
location /v2 {
# Allow larger requests for import
location ~ /v2/import/(.*) {
client_max_body_size 1024m;
rewrite ^/v2/(.*)$ /$1 break;
proxy_pass http://coral_servers;
}
# all other Coral calls
client_max_body_size 1024m;
rewrite ^/v2/(.*)$ /$1 break;
proxy_pass http://coral_servers;

 

4.執行重載參數文件命令:

 

復制代碼代碼如下:

/opt/nginx-1.4.2/sbin/nginx -s reload 

 

如果修改完成后還不行可以試著修改該文件內其他client_max_body_size參數。

如果不行那么可能是官方版本變動導致某些文件位置變動,可以參考我后面解決問題的過程。

下面說明下我解決問題的思路。

1.確定Web服務器類型

上傳文件的問題是在Windows桌面版本的Hipchat上發現的,不過因為與瀏覽器訪問的效果一致,我猜測后面一定是一個Web服務器,于是乎打開瀏覽器試著在聊天界面發送文件,果然是同樣的報錯,不過不同的是,我可以用現代瀏覽器的調試工具查看下請求的報錯內容,于是看到:

HipChat上傳文件報未知錯誤的原因分析及解決方案

點進去看到:

HipChat上傳文件報未知錯誤的原因分析及解決方案

看到了nginx,沒接觸過nginx,不過現在網絡資料一大把,很容易就可以找到其相關資料。

(注:我這里使用的是Chrome的開發者工具)

2.查找并修改配置文件

網上很容易可以搜到nginx是代理,其配置文件中的client_max_body_size字段表明了最大上傳大小。故現在登錄服務器

1.登錄linux,使用下面命令取得root權限

 

復制代碼代碼如下:

sudo /bin/dont-blame-hipchat 

 

2.用命令查找nginx的配置文件:

 

復制代碼代碼如下:

find / -name 'nginx.conf' 

 

結果如下:

 

復制代碼代碼如下:

/opt/atlassian/hipchat/dependencies/source/nginx-1.4.2/conf/nginx.conf
/hipchat-scm/web/application/vendor/Elastica/test/nginx/nginx.conf
/etc/nginx/conf.d/nginx.conf
/etc/nginx/nginx.conf
/usr/local/src/nginx-1.4.2/conf/nginx.conf 

 

3.編輯配置文件

 

復制代碼代碼如下:

vi /etc/nginx/nginx.conf 

 

改動后如下:

 

復制代碼代碼如下:

user www-data;
worker_processes 4;
daemon off;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 2048;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format custom '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_x_forwarded_for" $http_x_forwarded_proto';
access_log /var/log/nginx/access.log custom;
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
client_max_body_size 1024m;
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
proxy_buffers 8 16k;
proxy_buffer_size 16k;
server_names_hash_bucket_size 64;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

 

4.執行重載參數文件命令:

 

復制代碼代碼如下:

/opt/nginx-1.4.2/sbin/nginx -s reload 

 

發現并沒有解決問題,重啟Linux虛擬機,仍然沒有解決問題,且重啟后發現該配置文件里client_max_body_size又被改回10m了。于是后來又從怎么樣重啟后使得該配置文件不重置參數著手,實際證明這條思路是錯誤的。

該配置文件最下面有兩個include語句,/etc/nginx/conf.d/目錄為空,于是進入/etc/nginx/sites-enabled目錄。發現里面有個鏈接文件

 

復制代碼 代碼如下:

root@hipchat:/etc/nginx/sites-enabled# cd /etc/nginx/sites-enabled/
root@hipchat:/etc/nginx/sites-enabled# ls -l
total 0
lrwxrwxrwx 1 root root 34 Sep 17 01:19 000-web -> /etc/nginx/sites-available/000-web 

 

于是查看文件/etc/nginx/sites-available/000-web。發現底部又是一個包含文件:

... ...

 

復制代碼代碼如下:

server {
listen 80 default_server;
more_clear_input_headers 'X-HIPCHAT-GROUP';
more_clear_input_headers 'X-HIPCHAT-USER';
add_header Strict-Transport-Security "max-age=31536000";
more_clear_input_headers 'X-HIPCHAT-REQUEST';
more_set_input_headers 'X-HIPCHAT-REQUEST: public';
include includes/web-site;

 

于是再找includes/web-site:

 

復制代碼 代碼如下:

root@hipchat:/etc/nginx/sites-enabled# find / -name 'web-site' 
/etc/nginx/includes/web-site 

 

5.打開該web-site文件,查找其中的client_max_body_size,最終發現120行附件location /v2中增加client_max_body_size配置項有效。

 

復制代碼代碼如下:

# Coral requests
location /v2 {
# Allow larger requests for import
location ~ /v2/import/(.*) {
client_max_body_size 1024m;
rewrite ^/v2/(.*)$ /$1 break;
proxy_pass http://coral_servers;
}
# all other Coral calls
client_max_body_size 1024m;
rewrite ^/v2/(.*)$ /$1 break;
proxy_pass http://coral_servers;

 

6.改完保存后,執行以下命令重新載入配置文件。

 

復制代碼代碼如下:

/opt/nginx-1.4.2/sbin/nginx -s reload 

 

(注:nginx路徑可能會有變動,如無法執行請查找其他nginx目錄)。

3.總結

這樣改過以后,Hipchat即可以上傳50M以上文件了,當然50M也不大,但是這是官方限制,估計只有向官方反饋或者付費才能解決這個問題。

其實在使用Hipchat的時候我有點搞不清楚Hipchat在Atlassian公司的地位,因為有許多問題。除了這次遇到的,還有自帶的Windows、Linux、Mac、IOS、Android等平臺的客戶端版本都比較老,Windows端的無法發圖和文件,Android直接就連不上,最終是直接從官網下載最新的客戶端包才解決問題,其他平臺沒有試過。(Android版本需要到Google Play商店安裝)。

Hipchat算是一個小眾軟件,所以估計也沒什么人會遇到這問題。本文除了記錄該問題外,算是提供一種解決問題的思路。遇到這種網絡連接類的問題,且服務端和客戶端都不能看源代碼的,就可以類似這樣解決。即使服務器不是HTTP服務器,也可以使用wireshark這類工具來查找問題。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美成人综合视频 | 曰韩毛片| 91 在线视频观看 | 久久羞羞 | 在线观看中文字幕av | 亚洲一区二区免费 | 成人午夜视屏 | 欧美另类在线视频 | 红杏网站永久免费视频入口 | 欧美黄色看| 国产精品高潮视频 | 亚洲国产精品久久久久婷婷老年 | 在线成人免费视频 | 国产精品久久久久久久娇妻 | 久久精品一区二区三区四区五区 | 在线成人精品视频 | 久久精品毛片 | 毛片在线免费 | 免费看污视频在线观看 | 午夜色视频在线观看 | 色播视频在线播放 | 一级一级一级一级毛片 | 欧美成人久久 | 久久免费观看一级毛片 | 日产精品一区二区三区在线观看 | 欧美日韩中文字幕在线视频 | 国产精品欧美日韩一区二区 | 午夜精品老牛av一区二区三区 | 石原莉奈日韩一区二区三区 | 久久久一区二区精品 | 看免费一级毛片 | 亚洲国产成人久久一区www妖精 | 欧美激情天堂 | 免费高潮在线国 | 久久精品免费国产 | 羞羞的动漫在线观看 | 黄色网址免费在线 | 欧美精品在线免费观看 | 欧美亚洲一区二区三区四区 | 免费香蕉成视频成人网 | 艹男人的日日夜夜 |