騰訊云(CentOS)下的Web應用環(huán)境搭建(JDK+Tomcat+PostgreSQL+Nginx)

最近在幫別人做微信小程序瞻惋,需要一臺服務(wù)器做后端厦滤,正好騰訊云有優(yōu)惠,并且跟小程序都是一家子歼狼,所以選用了騰訊云服務(wù)器(CVM)

前言

微信小程序服務(wù)目標人群固定掏导,短期內(nèi)訪問量不是很大,預測瞬時最高并發(fā)量120左右羽峰,所以云服務(wù)器選擇了一款面向開發(fā)者的屘伺兀惠套餐,1核/2G內(nèi)存/1Mbps帶寬/50G存儲梅屉,操作系統(tǒng)CentOS7.6值纱。完成在線實驗任務(wù),可升級到4G內(nèi)存坯汤,完成Web業(yè)務(wù)驗證任務(wù)虐唠,可升級到2M帶寬。另外還有邀請好友免費續(xù)費活動惰聂,這個可能就比較難完成了疆偿。

小程序后端開發(fā)的是Java Web應用,在tomcat上運行搓幌,數(shù)據(jù)庫選用PostgreSQL翁脆,并安裝PostGIS插件用于地理位置計算。使用Nginx做代理鼻种,一是可以反向代理到tomcat反番,并且可配置負載均衡,二是可以直接代理靜態(tài)資源文件叉钥。

所以羅列了一下需要安裝及配置的內(nèi)容:
1罢缸、JDK
2、Tomcat
3投队、PostgreSQL
4枫疆、PostGIS
5、Nginx

另外敷鸦,微信小程序要求后端服務(wù)器必須通過htpps域名訪問息楔,并且必須ICP備案,所以域名申請和解析扒披,ssl證書的申請值依,ICP備案這些都是必須的。索性騰訊云這方面的服務(wù)比較到位碟案,去相應的頁面操作即可愿险,這里就不詳述了。(備案周期比較長价说,建議域名申請后立即做備案辆亏,因為備案的時候根本不關(guān)心你的網(wǎng)站做沒做好风秤,有什么內(nèi)容,而且備案時明確要求暫桶邕叮或關(guān)閉域名解析的)

如果本地電腦系統(tǒng)是Windows缤弦,建議使用WinSCP軟件連接云服務(wù)器,上傳/下載文件很方便彻磁。

下面主要闡述一下服務(wù)器環(huán)境的搭建步驟及方法甸鸟。

JDK的安裝

選用yum的方式安裝jdk比較簡單方便,不需要配置環(huán)境變量兵迅,至少本人親測沒問題,搭配tomcat啟動Web應用服務(wù)一切正常薪贫。

  • 查找jdk版本恍箭。
yum search java|grep jdk
  • 選擇適合的版本進行安裝(本例選擇1.8版)。
yum install -y java-1.8.0-openjdk
  • 驗證瞧省,出現(xiàn)下圖即算完成扯夭。
java -version
  • 如果想配置環(huán)境變量,建議把devel一起安裝鞍匾。
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
  • JDK默認安裝路徑/usr/lib/jvm交洗,安裝完成后該目錄下應該有如下圖所示的內(nèi)容。
  • 配置環(huán)境變量橡淑,在/etc/profile文件尾部添加如下代碼构拳。(如果不熟悉VI,比如我梁棠,建議使用WinSCP將profile文件下載到本地編輯后再上傳)
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64
PATH=$PATH:$JAVA_HOME/bin  
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
export JAVA_HOME  CLASSPATH  PATH 
  • 保存后執(zhí)行
source  /etc/profile

Tomcat的安裝

  • 添加用戶組置森。
groupadd tomcat
  • 添加一個用戶tomcat 并分配到組tomcat,設(shè)置其home目錄為/home/tomcat符糊,并且這個用戶為非登錄用戶凫海。
useradd -s /bin/nologin -g tomcat -d /home/tomcat tomcat
  • 進入https://tomcat.apache.org/download-90.cgi頁面,選擇Binary Distributions(二進制發(fā)行版)下的Core(核心)下的tar.gz的壓縮文件男娄,復制其下載地址行贪,用wget命令在CentOS終端下載。
wget -c http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.29/bin/apache-tomcat-9.0.29.tar.gz
  • 把下載的內(nèi)容解壓到 /home/tomcat 里模闲。
tar -zxvf apache-tomcat-9.0.29.tar.gz -C /home/tomcat --strip-components 1

-C 選項的作用是:指定需要解壓到的目錄建瘫。
--strip-components 1 提取下一級目錄。

  • 為 /home/tomcat/bin/catalina.sh 生成鏈接尸折。
ln -s /home/tomcat/bin/catalina.sh /etc/init.d/tomcat
  • 編輯 /etc/profile 將 /home/tomcat 目錄添加到環(huán)境變量中夯尽。
export CATALINA_HOME=/home/tomcat
  • 保存后執(zhí)行
source /etc/profile
  • 把目錄/home/tomcat/的own權(quán)限分配置給tomcat組的tomcat用戶。
chown -R tomcat:tomcat /home/tomcat/
  • 修改/home/tomcat/webapps/manager/META-INF/context.xml文件福稳,注釋掉其中的Valve標簽(非必須,如果想使用tomcat管理頁面需設(shè)置)晾咪。
  • 修改/home/tomcat/conf/tomcat-users.xml,增加如下配置(非必須贮配,如果想使用tomcat管理頁面需設(shè)置)谍倦。
  • 現(xiàn)在就可以通過/etc/init.d/tomcat 來啟動了,如下三種命令皆可泪勒,指定tomcat用戶來啟動昼蛀,防止tomcat刪除你整個硬盤里的東西(后一個-u參數(shù)一定要帶,不然java web應用程序啟動會報權(quán)限不足拒絕訪問的錯誤圆存,這是我遇到的一個很大的坑
sudo -u tomcat /home/tomcat/bin/catalina.sh start -u -security
sudo -u tomcat /etc/init.d/tomcat start -u -security
sudo -u tomcat service tomcat start -u security

這里有個坑叼旋,CentOS非root用戶不能啟動1024以內(nèi)的端口,所以如果tomcat使用80沦辙、443這樣的端口夫植,則必須用root用戶啟動tomcat,不能使用上述的tomcat用戶啟動油讯,否則80详民、443不會被監(jiān)聽到。
換而言之陌兑,使用80沈跨、443端口,則上述安裝過程中創(chuàng)建tomcat用戶組/用戶等的步驟都可以不做兔综。
可以使用下述命令查看操作系統(tǒng)當前各端口的監(jiān)聽狀態(tài)饿凛。

netstat -tunlp
  • 停止tomcat服務(wù)使用下面的命令
sh /home/tomcat/bin/shutdown.sh
  • 監(jiān)控日志命令(Ctrl+C退出,實時監(jiān)控可以用這個命令软驰,如果想看得更全還是下載下來更好)
tail -f /home/tomcat/logs/catalina.out
  • tomcat啟動后笤喳,可以通過下面的命令來查看tomcat監(jiān)聽的端口,一般是8009:與其它http集成可能用到的端口碌宴;8080:web訪問端口杀狡;8005:監(jiān)聽關(guān)閉tomcat的端口。
netstat -napt |grep java |grep LISTEN
  • ssl的配置

1贰镣、將證書下載后解壓縮呜象,把其中tomcat文件夾下的 www.domain.com.jks 文件上傳到 /home/tomcat 目錄下;
2碑隆、修改 /homt/tomcat/conf/server.xml 文件:

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />
    <Connector port="443" protocol="HTTP/1.1"
            maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
            clientAuth="false"
             keystoreFile="www.domain.com.jks"
             keystorePass="40te94si4u5f20x" />

2.1恭陡、80端口的redirectPort修改成443,
2.2上煤、新添加443端口的設(shè)置休玩,其中keystoreFile的內(nèi)容是上傳的那個jks文件的文件名,可以是絕對路徑也可以是相對路徑,相對路徑是相對于CATALINA_HOME的路徑拴疤,keystorePass的內(nèi)容是證書解壓縮后tomcat目錄里keystorePass.txt文件的內(nèi)容永部;
3、重啟tomcat即可呐矾。

  • Tomcat9簡單的安全設(shè)置

1苔埋、隱藏版本號
mkdir -p /home/tomcat/lib/org/apache/catalina/util
vi /home/tomcat/lib/org/apache/catalina/util/ServerInfo.properties 添加下面內(nèi)容
server.info=version
然后重啟tomcat就可以了
2、修改/home/tomcat/conf/server.xml 中<Server port="8005" shutdown="SHUTDOWN">這個配置中的port值及shutdown值蜒犯;port指定的是指定Tomcat監(jiān)聽shutdown命令端口组橄,shutdown指定終止Tomcat服務(wù)器運行時,發(fā)給Tomcat服務(wù)器的shutdown監(jiān)聽端口的字符串;為了安全起見罚随。不要使用默認值玉工;如修改成下面的內(nèi)容
<Server port="8303" shutdown="god_bless_me_have_no_longer_bug">
記住一定要在你沒有啟動tomcat的情況修改
3、在自己的web應該中盡量替換默認的404,403,500頁面
4淘菩、盡量在啟動腳本后加-security 增加安全管理遵班;如
/home/tomcat/bin/catalina.sh start -security
5、盡量不要用root用戶啟動tomcat(對于想用80瞄勾、443端口,則必須root啟動)

  • 關(guān)于tomcat正常啟動后弥激,網(wǎng)站無法訪問的排查辦法进陡。

1、確認域名解析是否正確微服;
2趾疚、安全組設(shè)置是否正確(要開放tomcat中設(shè)置的訪問監(jiān)聽端口)。
3以蕴、確認端口是否被監(jiān)聽(非root用戶啟動tomcat后糙麦,80、443等端口就不會被監(jiān)聽)丛肮;
4赡磅、確認網(wǎng)站是否完成ICP備案(不備案80、443端口無法訪問宝与,但用ip地址可以)焚廊。

重要的事情我只說一遍,上述第三和第四點是我遇到的最大的坑习劫。

  • tomcat項目部署的三種方式:

1咆瘟、直接把項目復制到Tomcat安裝目錄的webapps目錄中,這是最簡單的一種Tomcat項目部署的方法诽里,缺點是只能通過 http://www.domain.com/項目目錄名 訪問袒餐。
2、修改/home/tomcat/conf/server.xml,在<host>和</host>之間加入如下代碼

<Context docBase="newwebapp" path="/nwa" debug="0" reloadable="true" />

此時可以通過http://www.domain.com/nwa 訪問灸眼,docBase是項目路徑卧檐,可以是絕對路徑,也可以是相對于Host中的appBase設(shè)置的目錄的相對路徑幢炸;path是訪問路徑泄隔,如果想讓域名直接訪問該項目,則path設(shè)置成"/"即可宛徊。
3佛嬉、在 /home/tomcat/conf/Catalina/localhost 下新建一個nwa.xml文件(文件名即是訪問路徑,如果跟內(nèi)容中的path不一致闸天,tomcat還是會以文件名作為訪問路徑的暖呕,所以感覺Context里的path沒什么用),編輯內(nèi)容如下:

<Context path="/nwa" docBase="newwebapp" debug="0" privileged="true" />

第二和第三種方法比較靈活苞氮。第三種方式如果想設(shè)置成根目錄訪問湾揽,則xml文件名必須叫ROOT.xml。

  • 如果應用中有圖片/文件上傳功能笼吟,記得這幾個方面需要考慮到:

1库物、Tomcat 以 tomcat 用戶身份啟動時,保存上傳資源的目錄一定要對tomcat賦予足夠的操作權(quán)限贷帮。

chown -R tomcat:tomcat /home/webapps/

2戚揭、修改 Tomcat 安裝根目錄下的 /bin/catalina.sh 文件,將下面的代碼普片段中的 UMASK 的值 0027 改成 0022 撵枢,否則上傳成功后民晒,nginx 無法訪問(不用nginx直接代理該資源文件時這個可以不設(shè)置)。

# Set UMASK unless it has been overridden
if [ -z "$UMASK" ]; then
    UMASK="0027"
fi
umask $UMASK

3锄禽、nginx 默認允許客戶端請求數(shù)據(jù)大小是1M潜必,如果允許上傳文件大小大于該數(shù)值,記得修改 nginx 的改項配置沃但,否則請求在 nginx 這一層就會被攔下磁滚。

client_max_body_size 20M;

PostgreSQL

  • 上述步驟完成后坝疼,默認會創(chuàng)建一個名為postgres的linux登錄用戶搜贤,這里進行密碼修改。
passwd postgres
  • 編輯 /var/lib/pgsql/12/data/postgresql.conf 文件的遠程連接信息钝凶,讓所有計算機能訪問到該測試數(shù)據(jù)庫仪芒;去掉下圖的#唁影,修改localhost為*后保存(vi命令:wq)。
  • 同樣對 /var/lib/pgsql/12/data/pg_hba.conf 文件進行編輯掂名;追加下圖紅框內(nèi)的一行數(shù)據(jù)据沈,修改黃框的內(nèi)容后保存。
  • 重啟服務(wù):
systemctl restart postgresql-12
  • 用postgres賬號登錄centos服務(wù)器饺蔑,并修改數(shù)據(jù)庫用戶密碼(或者直接 su postgres 切換過去)
psql -U postgres
\password
  • 用客戶端連接測試即可锌介。

  • PostgreSQL相關(guān)的補充:

1、別忘記安全組中開放5432端口猾警,即便該數(shù)據(jù)庫緊供同臺服務(wù)器上的web應用以localhost方式訪問孔祸,也需要開放5432端口,原因未知(懶得發(fā)工單問騰訊技術(shù)人員了发皿,之前tomcat的問題已經(jīng)被折磨瘋了)崔慧。

  • 自動備份數(shù)據(jù)庫
    在 /usr/pgsql-12/bin 目錄下面創(chuàng)建 backup.sh 文件,內(nèi)容如下:
#!/bin/bash
cur_time=$(date +%Y%m%d_%H_%M_%S);
/usr/pgsql-12/bin/pg_dump -h 127.0.0.1 -p 5432 -U postgres -F c -b -v -f /home/dbbackup/dbase_backup_$cur_time.dmp yourdbname;

同時創(chuàng)建目錄 /home/dbbackup 作為備份文件存放路徑穴墅。
啟動cron服務(wù):

# 查看服務(wù)狀態(tài)
systemctl status crond
# 啟動
systemctl start crond
# 停止
systemctl stop crond
# 重啟
systemctl restart crond
# 重新加載
systemctl reload crond

開機自動啟動cron服務(wù)

systemctl start crond.service

進入編輯模式

crontab -e

添加執(zhí)行 backup.sh 任務(wù)

#每天2:30分執(zhí)行
30 2 * * * /usr/pgsql-12/bin/backup.sh

保存退出

:wq

查看定時任務(wù)列表

crontab -l

查看定時任務(wù)執(zhí)行日志

cat /var/log/cron

PostGIS

  • 因為需要在數(shù)據(jù)庫層面進行地理位置坐標之間的距離計算惶室,所以需要安裝PostgreSQL的一個相關(guān)的擴展PostGIS

  • 查找合適的版本。

yum search postgis|grep postgis
  • 因為之前安裝的PostgreSQL的版本是12玄货,所以選擇12版對應的最新版postgis皇钞,即postgis30_12.x86_64。
yum install postgis30_12.x86_64
  • 如果安裝過程中出現(xiàn)缺少依賴包的問題松捉,可以先執(zhí)行下面語句安裝依賴包夹界。
rpm -ivh ftp://bo.mirror.garr.it/1/slc/centos/7.6.1810/extras/x86_64/Packages/epel-release-7-6.noarch.rpm
  • 為始數(shù)據(jù)庫可用PostGIS,需在該數(shù)據(jù)庫上執(zhí)行下列語句惩坑,我是用pgAdmin連數(shù)據(jù)庫執(zhí)行的掉盅,這里有個坑也拜,該數(shù)據(jù)庫一定要有public這個shema以舒,因為要在public下創(chuàng)建一些表。
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;  # 這句不執(zhí)行對于我的業(yè)務(wù)來說沒影響慢哈,我只用距離計算這個功能蔓钟。
  • 測試,能正確返回數(shù)據(jù)表示成功能卵贱。
select ST_distance(ST_GeomFromText('POINT(121.2309 39.1823)', 4326)::geography, ST_GeomFromText('POINT(121.2319 39.1811)', 4326)::geography);

Nginx

  • 使用 yum 命令安裝 Nginx
yum install -y nginx
  • 設(shè)置 Nginx 開機啟動
systemctl enable nginx.service
  • 啟動Nginx
nginx

此時滥沫,訪問 http://主機ip地址 可以看到Nginx的默認頁。

  • 配置文件 /etc/nginx/nginx.conf 里定義了80端口的默認配置键俱,可以直接修改該文件兰绣,也可以在 /etc/nginx/conf.d 目錄下新建 *.conf 文件進行自定義配置。我選擇后一種方式编振,這樣感覺更清晰些缀辩。

  • 到 SSL 控制臺下載證書文件,將解壓縮后的 Nginx 文件夾下的兩個文件上傳至 /etc/nginx 目錄下,

  • 新建 ssl.conf 文件臀玄,編輯好后上傳至 /etc/nginx/conf.d 目錄瓢阴,配置示例如下:

upstream tomcatweb {
    server localhost:8443;
}

server {
    listen 80;
    server_name www.domain.com; # 改為綁定證書的域名
    rewrite ^(.*)$ https://${server_name}$1 permanent;
}

server {
    listen 443 ssl;
    server_name www.domain.com; # 改為綁定證書的域名
    ssl_certificate 1_www.domain.com_bundle.crt; # 改為自己申請得到的 crt 文件的名稱
    ssl_certificate_key 2_www.domain.com.key; # 改為自己申請得到的 key 文件的名稱
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    client_max_body_size 20M;

    location / {
        proxy_pass https://tomcatweb/yourapp/;
        proxy_cookie_path /yourapp/ /;
        proxy_set_header   Host    $host;
        proxy_set_header   X-Real-IP   $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /yourapp/ {
        proxy_pass https://tomcatweb/yourapp/;
        proxy_cookie_path /yourapp/ /;
        proxy_set_header   Host    $host;
        proxy_set_header   X-Real-IP   $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /resource/ {
        root /home/webapps/yourapp;
    }

    location /yourapp/resource/ {
        root /home/webapps;
    }
}

這個配置文件主要做了一下幾件事:
1、監(jiān)聽80端口健无,重定向到443端口荣恐;
2、監(jiān)聽443端口累贤,配置ssl證書叠穆,需要注意的是“ssl_certificate”和“ssl_certificate_key”這兩個設(shè)置,可以使用絕對路徑也可以使用相對路徑畦浓,若是相對路徑痹束,則是相對 /etc/nginx 目錄的路徑;
3讶请、/resource/ 下的文件都是靜態(tài)文件祷嘶,這里做了設(shè)置,nginx直接代理夺溢;
4论巍、上例中的靜態(tài)資源配置,如果訪問地址是 https://www.domain.com/resource/test.jpg 則nginx會按照配置找 /home/webapps/yourapp/resource/test.jpg 文件风响,注意這里是把root的值和location的值拼在一起嘉汰;
5、upstream 的配置状勤,將來如果是多Tomcat服務(wù)器的話鞋怀,直接在這里加新地址即可,可實現(xiàn)負載均衡持搜;
6密似、注意upstream配置的命名,如果帶下劃線葫盼,寫成tomcat_web残腌,跳轉(zhuǎn)到tomcat9時會報錯”java.lang.IllegalArgumentException: The character [_] is never valid in a domain",Tomcat7好像不會贫导,所以為了避免不必要的問題出現(xiàn)抛猫,這里就不要使用下劃線命名了;
7孩灯、proxy_pass 如果是設(shè)置到某個具體的應用下(比如上例)闺金,則最后一定要加“/”這個符號,不加會有問題峰档,至于為什么我沒調(diào)查败匹;
8匣距、像上例這樣反向代理到具體某個應用時,location /yourapp/ 這個一定要設(shè)置哎壳,不然應用內(nèi)不的相對路徑加載資源文件等會找不到(因為Nginx只設(shè)置跟路徑解析毅待,應用內(nèi)部相對路徑引用的文件地址會解析成www.domain.com/yourapp/yourapp/.)。

  • 修改配置完成后归榕,重啟 nginx 服務(wù)
nginx -s reload
  • 使用 https 協(xié)議訪問你的域名尸红, 如 https://www.domain.com 檢查是否成功,如果地址欄出現(xiàn)綠色帶安全字樣的鎖頭標志刹泄,說明 SSL 配置成功外里。

  • 補充一點,有一次重啟系統(tǒng)后特石,發(fā)現(xiàn)直接訪問 tomcat 正常盅蝗,但訪問 nginx 返回502錯誤,查看 nginx 錯誤日志文件姆蘸,發(fā)現(xiàn)報 connect() to [::1]:8080 failed (13: Permission denied) while connecting to upstream, client: 錯誤墩莫,解決方案是查看系統(tǒng) httpd 配置,

getsebool -a | grep httpd

設(shè)置httpd可以連接到網(wǎng)絡(luò)

setsebool httpd_can_network_connect on -P

寫在最后

整個安裝過程其實比較簡單逞敷,除了PostgreSQL耗時有點長狂秦,其它軟件安裝速度很快。
配置上則需要看具體需求了推捐,其實只使用Tomcat我覺得也完全可以裂问,但這次用Nginx+Tomcat,算是一種嘗試吧牛柒,主要考慮用Nginx實現(xiàn)動靜分離堪簿,至于負載均衡暫時還用不上。
另外Nginx+Tomcat的方式皮壁,我這次是兩邊都采用https協(xié)議椭更,其實也可以只Nginx實現(xiàn)https,而Tomcat仍舊使用http協(xié)議闪彼。

最后的最后甜孤,給新建網(wǎng)站的朋友一個建議协饲,一定要先申請域名做ICP備案畏腕,備案周期真的比較長,不要像我這樣萬事俱備苦等審核結(jié)果茉稠。

后期補充

運維過程中需求變更描馅,某個小程序頁面有使用WebSocket的應用場景,簡化開發(fā)及運維成本而线,選用Node.js構(gòu)建了WebSocket服務(wù)器铭污,接下來補充一下Node.js相關(guān)的環(huán)境搭建恋日。

Node.js

  • 添加 Node.js Yum 存儲庫
yum clean all && yum makecache fast
yum install -y gcc-c++ make
curl -sL https://rpm.nodesource.com/setup_12.x | sudo -E bash -
  • 安裝 Node.js (不進行上面的操作直接執(zhí)行安裝,只能安裝到6.x版本)
yum install nodejs -y
  • 安裝 npm 包管理器
yum install npm -y
  • 新建項目文件夾嘹狞,比如/home/webapps/yourapp
mkdir /home/webapps/yourapp
  • 進入新建的文件夾
cd /home/webapps/yourapp
  • 初始化環(huán)境岂膳,成功后會生成 package.json 文件
npm init -y
  • 因使用到了 ws 和 pg 兩個第三方組件,所以需要順次安裝
npm install ws --save
npm install pg --save
  • 將本地寫好的代碼文件上傳

  • 運行

node index.js
  • 后臺運行指令
/usr/bin/nohup /usr/bin/node /home/webapps/yourapp/index.js & >> /home/webapps/logs.txt
  • 終止后臺運行
    先查看一下node的進程號
ps -aux|grep node

或者根據(jù)端口號查詢

netstat -nap|grep 端口號

殺死進程

kill -9 進程號
  • Nginx配置的修改
    增加 upstream 的定義
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

upstream nodews {
    server localhost:3000;
}

增加location的定義

    location /ws/ {
        proxy_pass http://nodews/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
  • 安全起見磅网,可以不對外暴露websocket監(jiān)聽的3000端口
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谈截,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子涧偷,更是在濱河造成了極大的恐慌簸喂,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件燎潮,死亡現(xiàn)場離奇詭異喻鳄,居然都是意外死亡,警方通過查閱死者的電腦和手機确封,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門除呵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人爪喘,你說我怎么就攤上這事竿奏。” “怎么了腥放?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵泛啸,是天一觀的道長。 經(jīng)常有香客問我秃症,道長候址,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任种柑,我火速辦了婚禮岗仑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘聚请。我一直安慰自己荠雕,他們只是感情好,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布驶赏。 她就那樣靜靜地躺著炸卑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪煤傍。 梳的紋絲不亂的頭發(fā)上盖文,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音蚯姆,去河邊找鬼五续。 笑死洒敏,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的疙驾。 我是一名探鬼主播凶伙,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼它碎!你這毒婦竟也來了镊靴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤链韭,失蹤者是張志新(化名)和其女友劉穎偏竟,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體敞峭,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡踊谋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旋讹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片殖蚕。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖沉迹,靈堂內(nèi)的尸體忽然破棺而出睦疫,到底是詐尸還是另有隱情,我是刑警寧澤鞭呕,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布蛤育,位于F島的核電站,受9級特大地震影響葫松,放射性物質(zhì)發(fā)生泄漏瓦糕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一腋么、第九天 我趴在偏房一處隱蔽的房頂上張望咕娄。 院中可真熱鬧,春花似錦珊擂、人聲如沸圣勒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽圣贸。三九已至,卻和暖如春扳剿,著一層夾襖步出監(jiān)牢的瞬間旁趟,已是汗流浹背昼激。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工庇绽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锡搜,地道東北人。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓瞧掺,卻偏偏與公主長得像耕餐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子辟狈,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361