OK! 上一篇文章中大概嘗試安裝mysql、nginx、nodeJs、pm2
的一些過程以及在配置中出現的問題還有一些解決方式,那麼在本次過程嘗試中,將進一步進行服務器的基礎配置,以及前端應用 node、pm2 部署html
通過上次 nginx 已經安裝至服務器中了,在這裏面主要介紹一下部署相關所須要的配置,例如:監聽端口、服務轉發、靜態資源、ssl 證書(https) 的配置前端
在咱們沒有後端服務的時候,只是想要寫一些demo或者靜態頁面
時,就可使用nginx做爲靜態資源服務器,能夠被外網訪問到,如下就是 具體的配置了,能夠在nginx.conf 中創建二級域名,來搭建。vue
http {
server {
listen 80; # 監聽的端口號
server_name static.scrscript.com # 轉發的名稱 也就是二級域名 不過二級域名雖然不須要從新備案可是 域名解析要有 static 關鍵字
location / {
root /cloud/static
}
}
}
複製代碼
說明: 監聽的 80 端口 而後 轉發名稱爲 server_name
所對應的靜態路徑爲 /cloud/static/ 其實就是 location root
+ localtioon name
這樣就nginx就能夠讀取到 /cloud/static/ 目錄下的文件了,server_name 設置二級域名時前綴後面最好跟的是本身的域名 自定義前綴+本身的域名
,而域名解析最好要加上*得以匹配其餘二級域名來訪問node
服務器靜態的資源的轉發 其實有兩種寫法:mysql
location / {
root /cloud/static # 這種寫法 主要是 location root + location name
# alias /cloud/static # 這種寫法就睡 就是直接location alias 的路徑信息了
}
複製代碼
檢驗一下nginx
當咱們有後端服務時, 咱們那麼咱們能夠經過nginx的轉發配置,來讓咱們的網站能夠被訪問到sql
http {
# 使用upstream(上游)模塊
# server 監聽的端口
# weight 權重
# max_fails 最大容許失敗數
# fail_timeout max_fails次失敗後,暫停時間
upstream blog {
#ip_hash;
server localhost:9931 weight=2 max_fails=2 fail_timeout=3s;
}
server {
listen 80 default;
server_name _;
location / {
proxy_pass: http://blog;
}
}
}
複製代碼
說明:在請求的過程當中 若是請求的地址 與 server_name 匹配上那麼就會採用這個配置 若是都不匹配 那麼就會先行查看 listen 監聽的域名 後有default 配置項的,注意 default 只能寫一個。docker
轉發說明:express
檢驗一下npm
日常咱們部署的時候,會發現瀏覽器的地址欄會有(http://) 而後會有不安全的字樣, 哼~!做爲強迫症但是不想有這種字樣,那麼咱們就來配置https 安全吧
固然仍是要買免費的啦,我的需求,嘿嘿~
http {
# 使用upstream(上游)模塊
# server 監聽的端口
# weight 權重
# max_fails 最大容許失敗數
# fail_timeout max_fails次失敗後,暫停時間
upstream blog {
#ip_hash;
server localhost:9931 weight=2 max_fails=2 fail_timeout=3s;
}
server {
listen 443 ssl; # 必定要開啓 443 服務器端口
server_name xxx.com; # 須要ssl的域名
ssl on;
# root /cloud/node/;
# index index.html index.htm;
ssl_certificate cert/a.pem; # ssl 證書在服務器中相對於 nginx.conf 的路徑
ssl_certificate_key cert/a.key; # ssl 證書在服務器中相對於 nginx.conf 的路徑
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://blog;
}
}
server {
listen 80 default;
server_name _;
rewrite ^(.*)$ https://$host$1 permanent; # 重定向到 https
location / {
proxy_pass: http://blog;
}
}
}
複製代碼
注意必定要 重啓 nginx nginx -s reload
在這裏 着重來講一下 vue 項目的部署過程,還有 html 文件怎麼在瀏覽器中訪問到
其實在上面 nginx 中,咱們配置了 nginx 靜態資源服務器,其實靜態資源的部署 很是簡單 就是直接把 html 文件 放在靜態資源所配置的目錄就能夠了, 這樣咱們平時寫的項目 或者 demo 均可放在這個目錄下,來實現瀏覽
blog 的 後端是使用的是 node-express 腳手架,在 express 腳手架中 express.static
定義的是 靜態資源所在的位置,咱們能夠直接放在 項目的根目錄下 而後啓動項目 就能夠直接訪問到了。
靜態資源訪問路徑: app.use('' ,express.static(path.join(__dirname, 'dist')));
請看個人項目結構
pm2 start xxx
檢驗一下
nuxt 是 vue 的 服務端渲染,有利於 seo 的服務端渲染應用框架,做爲前臺應用 固然是想要本身寫的文章 能讓更多人搜索到,nuxt 固然是個人不二之選,哈哈哈哈,OK 咱們來講下 nuxt 如何來部署吧
首先 咱們應該先給 nuxt 應用執行打包命令 npm run build
打包完成後,咱們能夠把有用的文件事先剔除出來
下面請看個人文件目錄
npm install or cnpm i
而後進入到相應的 應用文件目錄 執行 pm2 start npm --name "進程名稱" -- run start
部署完畢 blog nuxt
基礎的配置 基本上已經走完一遍了,其實若是是 部署頻率低的狀況下 那麼這樣一遍遍部署 實際上是費不了多大事,可是呢,在初期的時候總有很多東西要改,那這樣一遍遍部署 不只繁瑣 並且還浪費咱們 寶貴的時間那麼,下次我將配置 docker and jenkins 自動化部署,省時又省力~,哈哈哈