国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于EC2,配置一個(gè)全棧服務(wù)實(shí)例(nginx + tomcat + mysql)

dingda / 1352人閱讀

摘要:領(lǐng)了一個(gè)服務(wù)器,開啟了一個(gè)偽全棧的運(yùn)維之路,各種服務(wù)線上部署。然后配置安全組,然后啟動(dòng)實(shí)例。安裝與配置基礎(chǔ)組件安裝與配置登錄進(jìn)服務(wù)后,就可以開啟一段服務(wù)器配置之旅了。

最近世道動(dòng)蕩,在前往高級(jí)的路上走出了車到山前必有路,睜眼一看是絕路的感覺。所以就索性瞎折騰一下。領(lǐng)了一個(gè)服務(wù)器,開啟了一個(gè)偽全棧的運(yùn)維之路,各種服務(wù)線上部署。

服務(wù)器申請(qǐng)與實(shí)例連接接

騰訊免費(fèi)七天,阿里要錢,山里娃就在亞馬遜AWS申請(qǐng)了一個(gè)可免費(fèi)使用一年的EC2云服務(wù)器,申請(qǐng)鏈接,步驟很簡(jiǎn)單,跟著提示一步一步整就是,唯一要提醒的就是,需要準(zhǔn)備一張信用卡,一張能支持外匯($)結(jié)算的最好。
申請(qǐng)到資格后,選擇你的云服務(wù),選擇對(duì)應(yīng)的區(qū)域,你需要給服務(wù)實(shí)例選擇一個(gè)操作系統(tǒng),linux,windows常用的都可選(注意觀察,我們只選免費(fèi)的,很重要,很重要, 很重要)。然后配置安全組,bla,bla,....,然后啟動(dòng)實(shí)例。保存好你的密鑰,然后打開ssh終端連接實(shí)例。操作步驟可以打開管理面板,選擇實(shí)例-》選擇實(shí)例-》連接-》根據(jù)面板提示連接。

安裝與配置 基礎(chǔ)組件安裝與配置

登錄進(jìn)服務(wù)后,就可以開啟一段服務(wù)器配置之旅了。如果你和我一樣,對(duì)Linux常用的命令行還不熟悉,你可能需要這樣一份手冊(cè):Linux常用命令大全。我選擇的鏡像是Ubuntu,如果你和我選擇的一樣,那么下面的命令你可以直接用,如果是redhat或者centos,有些命令,你需要自己去探索。先把一些常用的工具安裝上:

    sudo apt-get install unzip // 解壓工具
    sudo apt-get install git   // git工具
    sudo apt-get install wget // 下載工具  
    sudo apt-get install nginx // 下載nginx   
node服務(wù)安裝與配置

node安裝是一個(gè)相對(duì)簡(jiǎn)單的過程,你可以直接查看官網(wǎng),然后按照提示一步一步進(jìn)行。非常重要的一步就,你需要建立你命令的軟鏈接。在這里我列出自己的操作步驟:
-下載:sudo wget https://nodejs.org/download/r...

建一個(gè)文件夾:sudo mkdir -p /usr/local/lib/nodejs

解壓到上面新建文件夾:sudo tar -xJvf node-v8.16.0-linux-x64.tar.xz -C /usr/local/lib/nodejs

建立node可執(zhí)行命令鏈接:sudo ln -snf /usr/local/lib/nodejs/node-v8.16.0-linux-x64/bin/node /usr/bin/node

重復(fù)上述步驟,建立npm可執(zhí)行鏈接

測(cè)試有效性:node -v // node-v8.16.0

jdk的安裝與配置

centos可參考鏈接,同時(shí)也適用于ubuntu,現(xiàn)在使用wget下載jdk有點(diǎn)麻煩(需要鑒權(quán)),所以我是本地下載,然后scp上傳上去的,以下是我的操作:

上傳:scp -i "big.pem" jdk-8u211-linux-x64.tar.gz ubuntu@ec2-13-114-140-94.ap-northeast-1.compute.amazonaws.com:/home

解壓并重命名為tomcat:tar xzf jdk-8u211-linux-x64.tar.gz

建立鏈接java,javac,jar:sudo ln -snf /home/tomcat/bin/java(你解壓后的目錄) /usr/bin/java, 其他兩個(gè)照做

測(cè)試: java -version

tomcat服務(wù)的安裝與配置

下載 wget http://mirrors.tuna.tsinghua....

解壓

進(jìn)入到bin目錄,然后執(zhí)行 ./startup.sh

實(shí)例ip查看服務(wù)運(yùn)行情況(前提是在安全策略允許了8080端口的連接)

數(shù)據(jù)庫的安裝與配置

mysql的安裝復(fù)雜一點(diǎn),折騰了自己大量時(shí)間,在redhat8上沒有安裝成功mysql5,也迫使我把鏡像換成了ubuntu,曲折的路就不多說了,直接說順利的。如果直接使用apt-get install mysql安裝,默認(rèn)是安裝mysql8,所以在開啟安裝前,需要借助mysql-apt-config增加一段配置,具體安裝步驟,請(qǐng)查考前人栽下的樹:Ubuntu 16.04安裝MySQL:通過APT方式安裝。
安裝好之后,開啟mysql,并登錄

開啟:sudo service mysql start

查看端口:sudo netstat -anp | grep mysql

登錄:sudo mysql -u root -p

顯示數(shù)據(jù)庫:show databases

至此,本地鏈接已經(jīng)ok,但是mysql遠(yuǎn)程鏈接數(shù)據(jù)庫仍然報(bào)無發(fā)連接。原因很多,這里提及兩個(gè)我遇到的。

實(shí)例安全策略:實(shí)例安全策略默認(rèn)只開啟了22端口,如果你像我一樣,你還需要開啟3306端口(和mysql相關(guān)),80端口,443端口

mysql自己的安全策略,默認(rèn)只對(duì)127.0.0.1開啟,即本地開啟

第一種很簡(jiǎn)單,去EC2面板上修改你正在用的安全策略,加入3306端口,并啟用。
第二種稍微麻煩一點(diǎn),你需要如下操作:

打開mysql配置文件vim /etc/mysql/mysql.conf.d/mysqld.cnf,字段如下圖所示

將bind-address = 127.0.0.1注銷

登錄mysql,并執(zhí)行g(shù)rant all privileges on . to "root"@"%" identified by "yourpassword";在有些版本上,不能直接這樣操作root用戶,所以,你需要新建一個(gè)用戶,然后對(duì)這個(gè)用戶執(zhí)行g(shù)rant all privileges操作

flush privileges;?

重啟mysql,或則你的實(shí)例

關(guān)于sql批量導(dǎo)入

導(dǎo)出:mysqldump -u root -p -d targetDatabaseName > targetFileName.sql, 根據(jù)提示,輸入密碼,導(dǎo)出ok,當(dāng)前文件價(jià)應(yīng)該就存在一個(gè)targetFileName.sql,里面包含了表數(shù)據(jù)與結(jié)構(gòu);

遠(yuǎn)程導(dǎo)入mysqldump -h 132.72.192.432 -P 3306 -u root -p targetDatabaseName < targetFileName.sql(導(dǎo)入之前你得已經(jīng)創(chuàng)建了targetDatabaseName庫)

上面的遠(yuǎn)程操作不一定好使,下面的這種操作,成功率更高。ssh遠(yuǎn)程登錄,然后mysql登錄,創(chuàng)建你的targetDatabase庫,然后use targetDatabase,采用source命令:source /targetFile/targetFileName.sql;回車,即可導(dǎo)入成功,在這些操作之前,你需要將你本地的sql文件通過scp傳送到遠(yuǎn)端服務(wù)器;

nginx配置與域名的解析

安裝nginx,無非就想解決靜態(tài)資源訪問,反向代理,gzip,負(fù)載均衡問題,由于我這是初級(jí)使用,沒有涉及到負(fù)載均衡的情形。

運(yùn)行

前面已經(jīng)安裝了nginx,看是否安裝成功,可使用命令運(yùn)行:

   sudo systemctl start nginx.service
   // 其他常用命令
   sudo systemctl stop nginx.service
?? sudo systemctl reload nginx.service
?? sudo systemctl status nginx.service

然后通過ip訪問80端口,如果順利可以看到,但是一般都是不順利,顯示403。

解決nginx權(quán)限不足造成的訪問問題

可參考連接:nginx權(quán)限不足造成的訪問問題,我遇到的是第四項(xiàng),即SELinux。

開啟靜態(tài)資源服務(wù)

我要代理的靜態(tài)資源是一個(gè)react框架打包的網(wǎng)站,話不多說,直接列出我的配置:

    server {
        listen       80;
        listen       [::]:80;
        server_name  h5.closertb.site;
        index index.html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        location / {
            root   /home/static;
            autoindex on;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    } 
服務(wù)的代理

我的后端服務(wù)是基于tomcat,端口為8080。

   server {
        listen       80;
        listen       [::]:80;
        server_name  server.closertb.site;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            proxy_pass       http://127.0.0.1:8080;
            proxy_set_header Host      $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }  

門戶網(wǎng)站是一個(gè)基于nextJs的ssr渲染,所以需要代理一個(gè)node服務(wù),這個(gè)服務(wù)運(yùn)行在8500端口

    server {
        listen       80;
        listen       [::]:80;
        server_name  client.closertb.site;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            proxy_pass       http://127.0.0.1:8500;
            proxy_set_header Host      $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

關(guān)于nginx代理的一些常識(shí),從上面三段配置,我們可以看到,我們都是對(duì)80端口進(jìn)行了代理,但可以設(shè)置不同類別,指向不同資源,區(qū)分點(diǎn)就在于server_name,通過此來決定返回代理的內(nèi)容。代理上面也列出了兩種,靜態(tài)資源的代理(root)和服務(wù)的代理(proxy_pass)。
為什么都要用80端口?

首先,對(duì)于一個(gè)成熟的網(wǎng)站,他的域名一般是不帶端口號(hào)的;

另外,對(duì)于一個(gè)服務(wù)器,對(duì)外開放的端口越多,被攻擊的可能性更高;

最后,在域名解析時(shí),是無法將一個(gè)域名解析到一個(gè)帶端口的ip地址上的,至少阿里云是這樣的

開啟gzip

為什么要開啟gzip?因?yàn)殡m然前端框架的不斷侵蝕和資源的豐富,雖然網(wǎng)絡(luò)更快了,打包壓縮策略也用了,但100K以上的資源加載確實(shí)很慢,所以我們還得借助gzip來加快資源的獲取。話不多說,上圖自己感受:
開啟gzip前

開啟gzip后


看完上面兩幅圖,你就會(huì)覺得這是肉眼可見的差別,提速增效太明顯了

        # Gzip Settings

        gzip on;
        gzip_disable "msie6";
        gzip_min_length 10k;
        gzip_vary on;
        # gzip_proxied any;
        gzip_comp_level 3;
        gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
啟動(dòng)服務(wù)

啟動(dòng)mysql,上面已經(jīng)說過了;

上傳前端構(gòu)建包,并解壓靜態(tài)資源;

上傳jar包,運(yùn)行 java -jar target-version.jar,啟動(dòng)后端服務(wù);

git download,然后npm i,npm run prod運(yùn)行node服務(wù);

至此,一個(gè)純前端服務(wù),純后端服務(wù),SSR渲染服務(wù)就啟動(dòng)完成,訪問相應(yīng)的域名即可查看。

一些雜七雜八的冷門命令整理

其實(shí),這整篇都是一些個(gè)人雜七雜八的知識(shí)整理,做個(gè)筆記,方便以后翻閱。但下面的碎片知識(shí),才是真的雜,包括一些不常用的命令

修改文件權(quán)限命令chmod (-R) xxx targetpath, eg: chmod -R 777 /home 將home目錄及其子目錄的屬性修改為可讀,可寫,可執(zhí)行;

查看文件夾下子文件夾及文件信息ls -l;相比與ls,-l就顯得特別有用,可查看文件的讀寫權(quán)限,如果建立了ln鏈接的,可查看鏈接信息;

查看運(yùn)行端口對(duì)應(yīng)的pid;netstat -tunlp |grep prot;eg: netstat -tunlp |grep 8080

查看相應(yīng)應(yīng)用運(yùn)行的服務(wù)列表:ps -ax | grep applicationName;eg: ps -ax | grep node

查看和遠(yuǎn)程鏈接網(wǎng)絡(luò)狀態(tài),相當(dāng)于ping,telnet ip/domain port;telnet www.baidu.com 80

暫時(shí)就列出這么多吧,公司快要掛了,是時(shí)候開始準(zhǔn)備面試了,F(xiàn)ighting。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/40492.html

相關(guān)文章

  • 「真?全棧之路」Web前端開發(fā)的后端指南

    前言 在若干次前的一場(chǎng)面試,面試官看我做過python爬蟲/后端 的工作,順帶問了我些后端相關(guān)的問題:你覺得什么是后端? 送命題。當(dāng)時(shí)腦瓦特了,答曰:邏輯處理和數(shù)據(jù)增刪改查。。。 showImg(https://user-gold-cdn.xitu.io/2019/4/24/16a4ed4fc8c18078); 當(dāng)場(chǎng)被懟得體無完膚,羞愧難當(dāng)。事后再反思這問題,結(jié)合資料總結(jié)了一下。發(fā)現(xiàn)自己學(xué)過的Re...

    chuyao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<