操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    前 言

    小伙伴們大家好。

    在往期的文章里,我們已經分享過多期有關應用部署相關的主題,比如:前后端分離的項目、各種靜態博客框架、自建知識庫網站等等。

    聊到個人網站的建站,靜態網站的優勢很明顯,那就是速度快、成本低,但是缺點也很明顯,功能單一,有時候不太靈活。我們都知道,WordPress是一個應用廣泛的建站工具,但是今天我們不用這個,而是選用另外一個顏值更高的建站神器。

    因此本文將從0到1,部署一個更高顏值的公網動態個人網站,操作簡單,顏值高,5分鐘就可以搞定!

    不過在此之前,我們要先做幾個前置工作,準備一點小素材。

    公網服務器+公網IP

    個人使用的話,一般沒有人會去買那種真實的物理實體服務器?,F在比較普遍的選擇自然就是云主機了,而且一般來說還會附帶一個公網IP,所以使用起來非常方便。

    稍后我們會從購買云服務器開始,一步步進行展示。

    服務器連接與管理

    好,有了服務器之后,怎么去遠程管理?如何去操作服務器?怎樣進行文件交互呢?

    這時候就需要一些服務器的連接和管理軟件,常用的有兩種:

    第一個是SSH工具。

    簡單點理解,這就是一個終端工具,通過它,我們可以連到服務器上敲命令。

    如果是macOS平臺,像SecureCRT、Terminus、Tabby等工具都挺常用:

    而如果是Windows系統,常見的像MobaXterm、XShellFinalShell、Tabby等也都可以搞定。

    第二個工具就是SFTP工具。

    簡單點理解,通過它就可以方便地實現往服務器上傳或者下載文件。

    macOS平臺下的一個經典工具那就是Tansmit

    同理,如果是Windows系統的話,像MobaXterm、Tabby、FileZilla等軟件,同樣可以搞定一切。

    服務器常用編程環境+軟件設施安裝部署

    其實服務器和電腦一樣,拿到一個新服務器,也要在上面裝軟件、裝環境,比如常見像:Python環境、Java環境、Node環境、MySQL、Redis、Nginx、Maven等等,這些都是服務器上的基礎軟件環境和設施。

    提前裝好軟件,準備好環境,后面就可以隨用隨連,非常方便了!

    關于這部分呢,之前咱們這里就已經分享過一個PDF版本的《服務器編程環境安裝+軟件設施部署》手冊。

    這應該說是一個事無巨細的PDF文檔,把常見編程環境和基礎軟件設施的安裝過程給詳細地記錄下來了。這樣大家以后在裝環境的時候,就不用漫天去找各種博客、帖子參考了。

    如果需要該PDF文檔手冊的小伙伴,轉發本文后私信【612】三個數字即可無償獲取了

    準備網站源碼或安裝包

    最后一步,就是準備好網站的源碼,或者編譯打包好的jar包,在已經準備好環境的服務器上進行部署即可。

    聊到動態個人網站或者說博客,比較了一堆網站建站系統之后,發現Halo應該是其中顏值比較高的一個!并且還是開源的,代碼我都整理好的,需要的同學直接私信【halo】四個字母即可

    而且這么多年它一直在更新,并且部署超級簡單,文檔全面,看過源碼的小伙伴應該知道,它在源碼這塊也寫得非常易懂,對于初學者來說也算是一個學習和練手的好項目了。

    用它來進行個人建站,對外展示,還是非常不錯的。

    這地方我們提前將個人網站的「安裝包+主題包」先提前下載下來了。

    下文就將其部署起來,成為個站。

    購買公網服務器

    因為我自己已經有好幾臺云服務器了,但是都跑了不同的服務在上面,比如我自己的:

    • 自建的Tiny RSS訂閱服務
    • R2Coding知識庫網站
    • 自建的Git倉庫
    • 自建的Maven倉庫
    • ……

    等等,這些都跑在已有的服務器上面了。

    所以這次準備重新再買一臺云服務器用于演示,正好最近我又有兩個需要部署的小應用,所以這樣正好就趕上了。

    我們都知道,現在提供云服務器的廠商實在太多了:

    • 阿里云
    • 華為云
    • 百度云
    • 騰訊云
    • 京東云
    • 美團云
    • 七牛云
    • 滴滴云
    • 天翼云
    • 小牛云
    • 小鳥云
    • ...

    五花八門,多到讓人眼花繚亂。自己選擇就可以了

    注意,本文所用云服務器的版本為:

    • CentOS Linux release 7.4.1708 (Core)

    安裝環境

    由于Halo對服務器環境的要求是需要Java 11環境即可,所以很簡單,一行命令即可在服務器上安裝好Java環境:

    yum install -y java-11-openjdk

    然后使用如下命令來檢查一下安裝是否成功即可:

    java -version

    如果安裝成功,則會打印出類似如下的輸出:

    openjdk version "11.0.14.1" 2022-02-08 LTS
    OpenJDK Runtime Environment 18.9 (build 11.0.14.1+1-LTS)
    OpenJDK 64-Bit Server VM 18.9 (build 11.0.14.1+1-LTS, mixed mode, sharing)

    運行網站安裝包

    這一步就更簡單了,利用上文的SFTP工具將網站安裝包上傳到服務器上的某個文件夾,然后在命令行中執行如下命令,將其運行起來即可。

    nohup java -jar halo-1.4.17.jar &

    接下來瀏覽器中訪問:your_ip:8090,就會自動跳轉到首次的安裝向導頁面:

    設置完成之后,再重新登錄,就可以進入到網站后臺管理頁面了:

    然后接下來就可以在后臺添加內容、更換主題、修改資料等等。

    比如這地方,我們在后臺寫了幾篇文章之后并且更換了主題之后,網站的主頁變成了下面的樣子,效果還是可以的。

    將應用作為服務運行

    如果每次都像上面一樣通過操作命令行操作jar包的方式來啟停個人網站實屬不太方便,所以最好還是將其做成一個服務,通過systemctl命令來進行操作比較符合人體工學。

    • 新建一個website.service文件

    我們準備一個website.service文件,內容如下:

    [Unit]
    Description=Personal Website Service
    After=network-online.target
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/java -jar /root/website/halo-1.4.17.jar
    ExecStop=/bin/kill -s QUIT $MAINPID
    Restart=always
    StandOutput=syslog
    
    StandError=inherit
    
    [Install]
    WantedBy=multi-user.target
    

    這個配置文件內容非常好理解,主要就是設置好ExecStart所指向的指令內容,通過它來運行啟動個人網站。

    然后將其置于服務器的/etc/systemd/system目錄下。

    • 重新加載systemd
    systemctl daemon-reload
    • 啟動個人網站
    systemctl start website
    • 關閉個人網站
    systemctl stop website

    安裝代理服務器

    一般來說,我們不會讓這個jar包啟動的這個8090的網站服務去直面用戶,而是在中間再加一層代理服務器做轉發,常用的當屬Nginx服務器。

    因為Nginx除了占用資源小、運行穩定之外,它的性能也很高,特別能扛并發,所以一般把它放到最前面去直面用戶。

    接下來安裝部署Nginx服務器,我們這地方以1.17.10這個版本為例。

    • 首先準備一個nginx-1.17.10.tar.gz的安裝包,這個在下文的素材包里已經打包分享,有需要可以至文末自取。我們將其直接上傳到云服務器的root?錄下即可。
    • /usr/local/下創建nginx?件夾并進?
    cd /usr/local/
    mkdir nginx
    cd nginx
    • 將Nginx安裝包解壓到/usr/local/nginx中即可
    [root@localhost nginx]# tar zxvf /root/nginx-1.17.10.tar.gz -C ./

    解壓完之后,在/usr/local/nginx?錄中會出現?個nginx-1.17.10的目錄

    • 預先安裝額外依賴,比如:
    yum -y install pcre-devel
    yum -y install openssl openssl-devel
    • 接下來編譯安裝Nginx即可
    cd nginx-1.17.10
    ./configure
    make && make install

    安裝完成后, Nginx的可執??件位置位于

    /usr/local/nginx/sbin/nginx

    而其配置?件則位于:

    /usr/local/nginx/conf/nginx.conf
    • 啟動Nginx

    直接執?如下命令即可

    [root@localhost sbin]# /usr/local/nginx/sbin/nginx
    • 如果想停?Nginx服務,可執?:
    /usr/local/nginx/sbin/nginx -s stop
    • 如果修改了配置?件后想重新加載Nginx,可執?:
    /usr/local/nginx/sbin/nginx -s reload

    配置代理服務器

    上一步的Nginx服務器安裝完成并且啟動之后,接下來我們修改Nginx的配置文件:/usr/local/nginx/conf/nginx.conf

    我們找到server配置,然后做如下配置即可

    # 新增此段upstream配置,代表網站實際啟動的服務
    upstream blog {  
        server 127.0.0.1:8090;
    }
    
    server {
        listen  80;
        server_name  www.your_domain.com;
        location / {
            # 讓Nginx服務器代理到上面所定義的實際網站服務upstream
            proxy_pass http://blog;
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    這樣配置的目的很簡單,就是讓代理服務器Nginx代理到網站的jar包實際所啟動的服務上去即可。

    這時候直接通過服務器公網IP即可訪問個人網站了。

    當然如果有域名的話,將域名解析到公網IP就齊活了。

    接下來不管是寫東西、還是管理網站都非常方便了。

    至于網站本身的各種功能,有需要的小伙伴可以自己盡情地折騰了。

    后 記

    綜上所述,從初始化一直到網站上線,整個操作非常簡單,幾分鐘即可搞定。

    另外文中用到的所有關于:服務器、博客、文檔、安裝包、PDF手冊 等離線文件,都統一整理在此,需要的同學轉發本文后私信【612】三個數字即可無償獲取

    所以這篇先聊到這里了,我們下篇見。

    前言

    本文旨在通過 快速部署一個 wordpress 網站到阿里云函數計算平臺 這個示例來展示 serverless web 新的開發模式, 包括 FUN 工具一鍵初始化 NAS, 同步網站到 NAS, 一鍵部署等能力, 展現函數計算的開發敏捷特性、自動彈性伸縮能力、免運維和完善的監控設施。

    相關參考文檔: https://yq.aliyun.com/articles/640912

    1.1 DEMO 概述

    • DEMO 示例效果入口: http://hz.mofangdegisn.cn
    • 賬號: fc-test-user
    • 密碼: fc-test-pwd
    • DEMO 示例工程地址: fc-wordpress

    1.2 解決方案

    如上圖所示, 當多個用戶通過對外提供的 url 訪問web服務的時候時候,每秒的請求幾百上千都沒有關系, 函數計算平臺會自動伸縮, 提供足夠的執行實例來響應用戶的請求, 同時函數計算提供了完善的監控設施來監控您的函數運行情況。

    1.3 Serverless 方案與傳統自建 web 方案對比

    函數計算完整費用詳情:

    • 每月前 100 萬次函數調用免費, 每月前 400000(GB*秒) 費用免費, 函數的內存可以設置為 128M 或者 256M, 因此對于一個一個月訪問量低于 100 萬次的網站, 該項是免費的
    • 對于低成本的網站, 假設一個月的產生的公網流量為 1GB, 0.8元
    • NAS, US>NAS, US$0.06/GB/Month, 網站大小為 50M, 即使按 1G 計算, 0.42元<.06/GB/Month, 網站大小為 50M, 即使按 1G 計算, 0.42元
    • RDS mysql 最基本的單機版本, 25元/月

    函數計算計費 | NAS 定價

    如上所述, 在低成本網站領域, 函數計算具有十分明顯的成本優勢,同時還保持了彈性能力,以后業務規模做大以后并沒有技術切換成本(可能需要做的只是更換一個更強的關系型數據庫), 同時財務成本增長配合預付費也能保持平滑。低成本網站變成高可用高性能網站如絲般順滑。

    函數計算運行 PHP 框架原理

    在具體操作部署之前, 先簡單梳理一遍 函數計算運行 PHP 框架原理

    2.1 傳統服務器 PHP 運行原理

    • 原理示意圖

    • A simple nginx conf

    從上面原理示意圖我們可以看出,Web 服務器根據 conf 中 location將 PHP 腳本交給 php-fpm 去解析,然后將解析后的結果返回給 client 端

    2.2 FC 驅動 PHP 工程原理

    • 函數計算的執行環境實例相當于傳統 web 服務的 Apache/Nginx
    • 用戶函數相當于實現 Apache/Nginx 的 conf 中 location
    • 用戶將 Web 網站部署在 NAS,然后掛載 NAS 到函數的執行環境, 比如下面代碼中 /mnt/auto 目錄
    • 對于 WordPress 入口函數代碼就是這么簡單: index.php
    • 其中函數計算為用戶提供了一個 $GLOBALS['fcPhpCgiProxy'] 對象用來和 php-fpm 進行交互,對

    PHP 工程中的 php 文件進行解析,該對象提供了兩個重要的接口:

    • requestPhpCgi
     requestPhpCgi($request, $docRoot, $phpFile="index.php", $fastCgiParams=[], $options=[])
    
    • $request: 跟 php http invoke 入口的參數一致
    • $docRoot: Web 工程的根目錄
    • $phpFile: 用于拼接 cgi 參數中的 SCRIPT_FILENAME 的默認參數
    • $fastCgiParams: 函數計算內部盡量根據 $request給您構造 default cgi params, 但是如果您不是想要的,可以使用$fastCgiParams覆蓋一些參數 (reference: cgi)
    • $options: array類型,可選參數, debug_show_cgi_params 設為 true ,會打印每次請求 php 解析時候的 cgi 參數, 默認為 false ;readWriteTimeout 設置解析的時間, 默認為 5 秒

    如果您有興趣, 可以了解下函數計算 PHP Runtime:

    • PHP 入口函數
    • PHP 執行環境

    案例操作步驟

    準備條件

    有一個域名, 比如 abc.com, 并將域名 CNAME 解析到 函數計算(FC) 對應的 region

    如您想在杭州的 region 部署 wordpres 網站, 則將 abc.com CNAME 解析到 12345.cn-hangzhou.fc.aliyuncs.com, 其中 12345 是您的 accountId

    3.1 安裝最新的 Fun 工具

    • 安裝版本為8.x 最新版或者10.x 、12.x nodejs
    • 安裝 funcraf

    3.2 Clone 工程

    git clone https://github.com/awesome-fc/fc-wordpress.git

    3.3 根據需要使用的數據庫進入不同的目錄

    • 復制 .env_example 文件為 .env, 并且修改 .env 中的信息為自己的信息

    如果使用 mysql 數據庫, 參考章節 3.3.1

    如果使用 sqlite3 數據庫, 參考章節 3.3.2

    3.3.1 使用 mysql 數據庫

    • 進入 目錄 fc-wp-mysql
    fun nas init
    fun nas info
    

    fun nas init: 初始化 NAS, 基于您的 .env 中的信息獲取(已有滿足條件的nas)或創建一個同region可用的nas

    如果你沒有修改 templata.yml 中的配置 service名字, 那么則可以進入下一步; 如果有修改, 會在當前目錄生成新的目錄 .fun/nas/auto-default/{serviceName} (fun nas info 可以列出新的目錄), 將默認目錄下的 .fun/nas/auto-default/fc-wp-mysql/wordpress 的wordpress目錄拷貝到 .fun/nas/auto-default/{serviceName} 下, 同時可以刪除目錄 .fun/nas/auto-default/fc-wp-mysql/wordpress

    • 上傳 wordpress 網站到 NAS
    fun nas sync
    fun nas ls nas:///mnt/auto/
    

    fun nas sync: 將本地 NAS 中的內容(.fun/nas/auto-default/fc-wp-mysql)上傳到 NAS 中的 fc-wp-mysql 目錄

    fun nas ls nas:///mnt/auto/: 查看我們是否已經正確將文件上傳到了 NAS

    3.3.2 使用 sqlite3 數據庫

    • 進入 目錄 fc-wp-sqlite
    fun nas init
    fun nas info
    

    fun nas init: 初始化 NAS, 基于您的 .env 中的信息獲取(已有滿足條件的nas)或創建一個同region可用的nas

    如果你沒有修改 templata.yml 中的配置 service名字, 那么則可以進入下一步; 如果有修改, 會在當前目錄生成新的目錄 .fun/nas/auto-default/{serviceName} (fun nas info 可以列出新的目錄), 將默認目錄下的 .fun/nas/auto-default/fc-wp-sqlite/wordpress 的wordpress目錄拷貝到 .fun/nas/auto-default/{serviceName} 下, 同時可以刪除目錄 .fun/nas/auto-default/fc-wp-sqlite/wordpress

    • 本地完成安裝過程, 初始化 sqlite3 數據庫
    • 在目錄 .fun/nas/auto-default/fc-wp-sqlite/wordpress 中輸入命令:
    php -S 0.0.0.0:80
    
    • 修改 host 文件,添加 127.0.0.1 hz.mofangdegisn.cn
    • linux/mac : vim /etc/hosts
    • windows7: C:WindowsSystem32driversetc

    其中 hz.mofangdegisn.cn 是您預先準備的域名

    • 通過瀏覽器輸入 hz.mofangdegisn.cn, 這個時候沒有mysql數據庫設置頁面,完成 wordpress 安裝過程

    成功安裝以后, 這個時候, .fun/nas/auto-default/fc-wp-sqlite/wordpress/wp-content 下面應該有一個 database 的目錄, ls -a 查看, 應該有 .ht.sqlite 這個 sqlite3 數據庫文件

    • 回退 host 文件的修改

    注: 中間修改 host 的目的是初始化 sqlite3 數據庫的時候, base site url 是提前準備的域名, 而不是 127.0.0.1

    • 上傳 wordpress 網站到 NAS
    fun nas sync
    fun nas ls nas:///mnt/auto/
    

    fun nas sync: 將本地 NAS 中的內容(.fun/nas/auto-default/fc-wp-sqlite)上傳到 NAS 中的 fc-wp-sqlite 目錄

    fun nas ls nas:///mnt/auto/: 查看我們是否已經正確將文件上傳到了 NAS

    3.4 部署函數到FC平臺

    接下來將函數部署到云平臺:

    • 修改 index.php 中的 $host 中的值
    • 修改 template.yml LogConfig 中的 Project, 任意取一個不會重復的名字即可
    • 修改 template.yml 自定義域名為自己提前準備好的域名
    • 執行 fun deploy

    登錄控制臺 https://fc.console.aliyun.com,可以看到service 和 函數已經創建成功, 并且 service 也已經正確配置。

    通過瀏覽器打開自己之前配置的域名, 比如本例中的 hz.mofangdegisn.cn

    • mysql 版本數據庫, 可以直接跟傳統的 wordpress 一樣,直接進入安裝過程
    • sqlite3 版本數據庫, 由于之前已經完成初始化,可以直接進入網站首頁或網站后臺

    FAQ

    Q1: 函數計算能開發高性能高可用網站嗎?

    A: 可以, 只要連接的數據庫性能足夠, 有必要再配合預留實例消除冷啟動就足夠高 qps 的 web 網站了。

    Q2: 使用低成本 sqlite3 版本的網站, 冷啟動第一次打開很慢怎么辦?

    A: 用一個 timer trigger 的函數 keep warm

    Q3: 使用低成本 sqlite3 版本的網站, 能支持多大的qps?

    A: 由 sqlite3 數據庫性能決定, 這邊有一些壓測結果:

    每次壓力增大時候, 都有些冷啟動,時間慢點,但是支持從壓測結果來看支持 50 QPS 是沒有疑問的, 是足夠支持一些中小網站的。

    Q3: 使用其他語言基于函數計算開發 serverless 網站可以嗎?

    A: 可以, 比如 python: https://yq.aliyun.com/articles/603249 , 或者直接使用 custom runtime, 內置了 java、python 和 node, Custom Runtime 用戶手冊

    作者:rsong

    本文為云棲社區內容,未經允許不得轉載。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有