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

資訊專欄INFORMATION COLUMN

vue+node項(xiàng)目部署上線

Alliot / 855人閱讀

摘要:在線地址現(xiàn)在新用戶購買阿里云服務(wù)器年只要啦。。開放端口登陸阿里云,進(jìn)入控制管理臺云服務(wù)器安全組配置規(guī)則快速創(chuàng)建規(guī)則啟動服務(wù)瀏覽器打開服務(wù)器如,如無意外,即正常運(yùn)行訪問啦。

在線地址: cl8023.com github

現(xiàn)在新用戶購買阿里云服務(wù)器 3年只要398啦。。
https://m.aliyun.com/act/team...

云服務(wù)器 阿里云 or 騰訊云

阿里云服務(wù)器品牌:ECS(Elastic Compute Service)

騰訊云服務(wù)器品牌:VCM(Cloud Virtual Machine)

兩者都可以,具體可以根據(jù)自己的需求,都說阿里云穩(wěn)定,騰訊云便宜,我自己買時發(fā)現(xiàn)兩者入門級的價格都差不多,就買了阿里云的,以下即以阿里云的服務(wù)器操作。(騰訊云服務(wù)器操作應(yīng)該也類似)

購買阿里云服務(wù)器ECS

入門級最低配即可,一年300多,每月幾十塊錢,也可以月付,那樣就貴點(diǎn)。

中間有些選項(xiàng)默認(rèn)就可,鏡像選擇 公共鏡像-CentOS-7.4 64位(最新的)
圖中密碼用來之后遠(yuǎn)程登陸服務(wù)器使用。

登陸服務(wù)器 阿里網(wǎng)頁登陸

在 管理控制臺-實(shí)例 中可以看到剛剛購買的服務(wù)器

點(diǎn)擊遠(yuǎn)程連接,出現(xiàn)登陸界面,第一次進(jìn)入會彈出一個密碼,記住這個密碼(只會出現(xiàn)一次),之后登陸輸入這個密碼即可進(jìn)入阿里云服務(wù)器ECS系統(tǒng)。

客戶端工具遠(yuǎn)程登陸

Mac

終端中輸入:SSH root@服務(wù)器IP地址(公) (SSH root@192.18.222.12)
回車
輸入購買服務(wù)器時設(shè)置的實(shí)例密碼即可

Windows

下載工具 Xshell

打開Xshell - 文件 - 新建,終端選項(xiàng)選擇編碼:Unicode(UTF-8)

連接成功

配置環(huán)境

Linux 常用命令:

wget:一個從網(wǎng)絡(luò)上自動下載文件的自由工具,支持通過 HTTP、HTTPS、FTP 三個最常見的 TCP/IP協(xié)議 下載,并可以使用 HTTP 代理。"wget" 這個名稱來源于 “World Wide Web” 與 “get” 的結(jié)合。

tar:壓縮解壓命令

-c:建立壓縮檔案

-x:解壓

-t:查看內(nèi)容

-r:向壓縮歸檔文件末尾追加文件

-u:更新原壓縮包中的文件

這五個是獨(dú)立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數(shù)是根據(jù)需要在壓縮或解壓檔案時可選的。

- -z:有g(shù)zip屬性的
- -j:有bz2屬性的
- -Z:有compress屬性的
- -v:顯示所有過程
- -O:將文件解開到標(biāo)準(zhǔn)輸出
下面的參數(shù) -f 是必須的
- -f:使用檔案名稱,最后一個參數(shù),后面只能接檔案名

ln:為某一個文件或目錄在另一個位置建立一個同步的鏈接 常用:ln -s 源文件 目標(biāo)文件

makdir:創(chuàng)建目錄

mv:為文件或目錄改名、或?qū)⑽募蚰夸浺迫肫渌恢?/p>

rm:刪除文件

-f:忽略不存在的文件,從不給出提示

-r:將參數(shù)中列出的全部目錄和子目錄均遞歸的刪除

yum:提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令

ls:顯示當(dāng)前目錄下文件, ls -f 隱藏文件也顯示

netstat -tpln:查看進(jìn)程端口

kill -9 PID號:關(guān)閉進(jìn)程

cp:拷貝

Linux 目錄:
前面進(jìn)入Linux系統(tǒng)后,一般會在 root(~) 目錄下 [root@xxxxxxxxxxx ~]# , cd ..可以即回到根目錄,ls查看當(dāng)前目錄下文件

[root@xxxxxxxxxxx ~]#
[root@xxxxxxxxxxx ~]# cd ..
[root@xxxxxxxxxxx /]#
[root@xxxxxxxxxxx /]# ls
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@xxxxxxxxxxx /]# cd root
[root@xxxxxxxxxxx ~]#
安裝NodeJs

阿里云幫助文檔:部署Node.js項(xiàng)目(CentOS)

安裝MySQL

主要參考

1. 下載安裝包

為了下載到最新的版本,先到官網(wǎng)上找到下載鏈接
MySQL下載地址

先用瀏覽器或其他下載工具創(chuàng)建下載任務(wù)(如x86,64-bit),然后在下載中找到下載鏈接復(fù)制下來就可以把它刪了。

進(jìn)入root目錄:cd /root (也可以其他目錄)

下載安裝包:

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

下載完成后 ls 可以看到下載的安裝包

[root@xxxxxxxxxxx ~]# ls
mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz ......
2. 解壓文件
tar -xzvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

[root@xxxxxxxxxxx ~]# ls
mysql-5.7.20-linux-glibc2.12-x86_64 (解壓得到的目錄)
mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

// 拷貝解壓到目錄到 /usr/local 目錄下,并改名為 mysql
[root@xxxxxxxxxxx ~]# cp mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql -r
[root@xxxxxxxxxxx ~]# cd /usr/local/mysql
[root@xxxxxxxxxxx mysql]# ls
bin  COPYING  docs  include  lib  man  README  share  support-files
3. 添加系統(tǒng)mysql組和mysql用戶
[root@xxxxxxxxxxx ~]# groupadd mysql #建立一個mysql的組
[root@xxxxxxxxxxx ~]# useradd -r -g mysql mysql #建立mysql用戶,并且把用戶放到mysql組
4. 在 mysql 下添加 data 目錄
[root@xxxxxxxxxxx mysql]# mkdir data
5. 更改mysql目錄下所有的目錄及文件夾所屬組合用戶
[root@xxxxxxxxxxx mysql]# cd /usr/local/
[root@xxxxxxxxxxx local]# chown -R mysql mysql/
[root@xxxxxxxxxxx local]# chgrp -R mysql mysql/
[root@xxxxxxxxxxx local]# cd mysql/
[root@xxxxxxxxxxx mysql]# ls -l
total 56
drwxr-xr-x  2 mysql mysql  4096 Nov  9 16:00 bin
-rw-r--r--  1 mysql mysql 17987 Nov  9 16:00 COPYING
drwxr-xr-x  6 mysql mysql  4096 Nov  9 18:41 data
drwxr-xr-x  2 mysql mysql  4096 Nov  9 16:00 docs
drwxr-xr-x  3 mysql mysql  4096 Nov  9 16:01 include
drwxr-xr-x  5 mysql mysql  4096 Nov  9 16:01 lib
drwxr-xr-x  4 mysql mysql  4096 Nov  9 16:00 man
-rw-r--r--  1 mysql mysql  2478 Nov  9 16:00 README
drwxr-xr-x 28 mysql mysql  4096 Nov  9 16:00 share
drwxr-xr-x  2 mysql mysql  4096 Nov  9 18:06 support-files
6. 安裝和初始化數(shù)據(jù)庫

很多老的教程中都是運(yùn)行 ./scripts/mysql_install_db --user=mysql 進(jìn)行安裝,但在新版本的mysql中已經(jīng)沒了 scripts 目錄,
mysql_install_db 放在了 bin 目錄下

[root@xxxxxxxxxxx mysql]# cd bin
[root@xxxxxxxxxxx bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/--datadir=/usr/local/mysql/data/


2017-11-09T09:09:52.826209Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-11-09T09:09:54.885578Z 0 [ERROR] Can"t find error-message file "/usr/local/mysql/--datadir=/usr/local/mysql/data/share/errmsg.sys". Check error-message file location and "lc-messages-dir" con
figuration directive.2017-08-31T08:50:24.709286Z 0 [Warning] InnoDB: New log files created, LSN=45790
2017-11-09T09:09:55.105938Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-11-09T09:09:55.218562Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: c0844cc4-c52d-11e7-b74f-00163e0ae84e.
2017-11-09T09:09:55.221300Z 0 [Warning] Gtid table is not ready to be used. Table "mysql.gtid_executed" cannot be opened.
2017-11-09T09:09:55.221784Z 1 [Note] A temporary password is generated for root@localhost: uf)qP3+C?jpJ

解決:(無視警告)

[root@xxxxxxxxxxx bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
7. 配置my.cnf

進(jìn)入 /usr/local/mysql/support-files/ 目錄下,查看是否存在my-default.cnf 文件,如果存在直接 copy 到 /etc/my.cnf 文件中

[root@xxxxxxxxxxx mysql]# cp -a ./support-files/my-default.cnf /etc/my.cnf

如果不存在 my-default.cnf 文件, 則在 /etc/ 目錄下創(chuàng)建 my.cnf

[root@xxxxxxxxxxx bin]# cd /etc
[root@xxxxxxxxxxx etc]# vim my.cnf

寫入內(nèi)容

#[mysql]
#basedir=/usr/local/mysql/
#datadir=/usr/local/mysql/data/
8. 啟動服務(wù)
[root@xxxxxxxxxxx mysql]# cd bin/
[root@xxxxxxxxxxx bin]# ./mysqld_safe --user=mysql &
9. 將mysqld服務(wù)加入開機(jī)自啟動項(xiàng)
[root@xxxxxxxxxxx bin]# cd ../support-files
[root@xxxxxxxxxxx support-files]# cp mysql.server /etc/init.d/mysql
[root@xxxxxxxxxxx support-files]# chmod +x /etc/init.d/mysql
-- 把mysql注冊為開機(jī)啟動的服務(wù)
[root@xxxxxxxxxxx support-files]# chkconfig --add mysql
10. 啟動服務(wù)
[root@xxxxxxxxxxx bin]# service mysql start

若報錯 ERROR! The server quit without updating PID file

[root@xxxxxxxxxxx mysql]# rm  /etc/my.cnf
rm: remove regular file "/etc/my.cnf"? y
[root@xxxxxxxxxxx mysql]# /etc/init.d/mysql start
Starting MySQL.Logging to "/usr/local/mysql/data/dbserver.err".
 SUCCESS!
[root@xxxxxxxxxxx mysql]# service mysql start
Starting MySQL SUCCESS!
11. 登錄mysql
[root@xxxxxxxxxxx bin]# ./mysql -u root -p
密碼是第6步產(chǎn)生的密碼

如果出現(xiàn)錯誤:

ERROR 1045 (28000): Access denied for user "root"@"localhost" (using password: NO)

重改密碼

[root@xxxxxxxxxxx bin]# /etc/init.d/mysql stop
[root@xxxxxxxxxxx bin]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
[root@xxxxxxxxxxx bin]# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD("newpassword") where USER="root";

// 上面語句若出錯,換為
update mysql.user set authentication_string=password("newpassword") where user="root"

mysql> FLUSH PRIVILEGES;
mysql> quit

[root@xxxxxxxxxxx bin]# /etc/init.d/mysqld restart
[root@xxxxxxxxxxx bin]# mysql -uroot -p
Enter password:

mysql>
12. 設(shè)置遠(yuǎn)程登錄權(quán)限
mysql>  grant all privileges on *.* to"root" @"%" identified by "root";
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

mysql> quit
Bye
13. 進(jìn)程關(guān)閉

若以上步驟中出現(xiàn)其他錯誤,可以看看 mysql 是否關(guān)閉了,先關(guān)閉端口,然后在試試

[root@xxxxxxxxxxx ~]# netstat -tpln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1105/sshd
tcp6       0      0 :::3306                 :::*                    LISTEN      25599/mysqld
[root@xxxxxxxxxxx ~]# kill -9 25599
14. 本地連接數(shù)據(jù)庫

我本地使用的是 Navicat for MySQL

遠(yuǎn)程連接數(shù)據(jù)庫后,創(chuàng)建數(shù)據(jù)表(可以導(dǎo)出本地數(shù)據(jù)表,然后Navicat中導(dǎo)入到服務(wù)器MySQL中)

上傳文件 打包文件

項(xiàng)目根目錄下運(yùn)行

npm run build

等待命令運(yùn)行結(jié)束后,會發(fā)現(xiàn)目錄下多了 dist 文件夾,這個文件夾就是我們等下要放到服務(wù)器中的。

文件傳輸

下載文件傳輸工具 Xftp

打開 Xftp 新建連接,類似Xshell,選項(xiàng)中勾選 “使用UTF-8編碼(E)”


連接成功后可以看到左側(cè)是本地文件目錄,右側(cè)是服務(wù)器文件目錄,可以很方便的來回拖放文件。

創(chuàng)建目錄文件 /root/projec/myblog (目錄層級、名稱隨意,這里我以次為項(xiàng)目目錄)

將剛剛的 dist 文件夾復(fù)制到 /root/project/myblog 目錄下,前端資源就OK了

將 server 文件夾也復(fù)制到 /root/project/myblog 目錄下

初始化項(xiàng)目

Xshell 連接服務(wù)器

// 進(jìn)入項(xiàng)目目錄
[root@izwz9e9bjg74ljcpzr7stvz ~]# cd /root/project/myblog
[root@izwz9e9bjg74ljcpzr7stvz myblog]# ls
dist server

初始化創(chuàng)建 package.json,這一步也可以在本地創(chuàng)建編輯好后上傳到服務(wù)器目錄即可

[root@izwz9e9bjg74ljcpzr7stvz myblog]# npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install ` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (myblog) 
version: (1.0.0) 
description: 
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to /root/project/test/myblog/package.json:

{
  "name": "myblog",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "",
  "license": "ISC"
}


Is this ok? (yes) yes

// 全部回車即可
[root@izwz9e9bjg74ljcpzr7stvz myblog]# ls
dist  package.json  server

// 打開 package.json 編輯(也可在 Xftp 中右鍵文件編輯)
[root@izwz9e9bjg74ljcpzr7stvz myblog]# vim package.json

    {
        "name": "my-blog",
        "version": "1.0.0",
        "description": "A Vue.js project",
        "author": "ChenLiang <236338364@qq.com>",
        "private": true,
        "scripts": {
            "dev": "node build/dev-server.js",
            "start": "node build/dev-server.js",
            "build": "node build/build.js"
        },
        "dependencies": {
            "body-parser": "^1.17.2",
            "cookie-parser": "^1.4.3",
            "express": "^4.16.2",
            "express-session": "^1.15.5",
            "formidable": "^1.1.1",
            "highlight.js": "^9.12.0",
            "marked": "^0.3.6",
            "mysql": "^2.14.0",
            "node-sass": "^4.5.3",
            "node-uuid": "^1.4.8"
        },
        "engines": {
            "node": ">= 4.0.0",
            "npm": ">= 3.0.0"
        },
        "browserslist": [
            "> 1%",
            "last 2 versions",
            "not ie <= 8"
        ]
    }

保存退出,運(yùn)行

[root@izwz9e9bjg74ljcpzr7stvz myblog]# npm install

安裝"dependencies"中項(xiàng)目運(yùn)行需要的所有依賴

修改資源路徑

進(jìn)入文件夾 server,打開 index.js

[root@izwz9e9bjg74ljcpzr7stvz server]# vim index.js

const routerApi = require("./router");
const path = require("path");
const bodyParser = require("body-parser");
const express = require("express");
const app = express();
const cookieParser = require("cookie-parser");
const session = require("express-session");

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(cookieParser());
app.use(session({
    secret: "8023",
    // cookie: {maxAge: 60000},
    resave: false,
    saveUninitialized: true
}));

// 部署上線時讀取靜態(tài)文件
app.use(express.static(path.join(__dirname, "../dist")));

// 后端api路由
app.use("/api", routerApi);

// 監(jiān)聽端口
app.listen(80);
console.log("success listen at port:80......");

設(shè)置靜態(tài)資源路徑,并修改監(jiān)聽端口為80(HTTP端口),api.js 中文件路徑相關(guān)的也要更改為 ../dist/static.....,嫌麻煩的也可以直接將 server 文件夾移到 dist 下就不用這么麻煩改了。

開放 80 端口

登陸阿里云,進(jìn)入控制管理臺 -> 云服務(wù)器 ECS -> 安全組 -> 配置規(guī)則 -> 快速創(chuàng)建規(guī)則

啟動服務(wù)
[root@izwz9e9bjg74ljcpzr7stvz server]# node index.js
success listen at port:80......

瀏覽器打開 服務(wù)器IP:80(如:263.182.35.68:80),如無意外,即正常運(yùn)行訪問啦。

綁定域名

進(jìn)入域名管理后臺,解析域名,添加解析

添加主機(jī) @.xxx.com 可以通過 xxx.com 直接訪問
綁定成功后,直接輸入域名即可訪問。

安裝 pm2
pm2 是一個帶有負(fù)載均衡功能的Node應(yīng)用的進(jìn)程管理器.

上面我們以 node index.js 啟動了項(xiàng)目,當(dāng)我們退出 Xshell 時,進(jìn)程就會關(guān)閉,無法在訪問到項(xiàng)目,而 pm2 就是
解決這種問題的,以 pm2 啟動項(xiàng)目后,退出 Xshell 后依然可以正常訪問。

// 安裝 pm2
[root@izwz9e9bjg74ljcpzr7stvz /]# npm install -g pm2

// 以 -g 全局安裝的插件都在 node 安裝目錄 bin 文件下,
[root@izwz9e9bjg74ljcpzr7stvz bin]# ls
cnpm  node  npm  npx  pm2  pm2-dev  pm2-docker  pm2-runtime

bin 下都是命令語句,為了可以在任何目錄都可以使用命令,我們將此文件夾加入環(huán)境變量

查看環(huán)境變量 [root@izwz9e9bjg74ljcpzr7stvz ~]# echo $PATH

永久添加環(huán)境變量(影響所有用戶)

[root@izwz9e9bjg74ljcpzr7stvz ~]# vim /etc/profile
// 在文檔最后,添加:
# node
export NODE_HOME=/root/node-v8.9.1-linux-x64
export PATH=$PATH:$NODE_HOME/bin

保存,退出,然后運(yùn)行

[root@izwz9e9bjg74ljcpzr7stvz ~]# source /etc/profile

pm2 啟動項(xiàng)目

[root@izwz9e9bjg74ljcpzr7stvz ~]# cd /root/project/myblog/server
// 啟動進(jìn)程
[root@izwz9e9bjg74ljcpzr7stvz server]# pm2 start index.js
// 停止進(jìn)程
[root@izwz9e9bjg74ljcpzr7stvz server]# pm2 stop index.js
// 查看進(jìn)程
[root@izwz9e9bjg74ljcpzr7stvz server]# pm2 list
刷新頁面404

HTML5 History 模式,最后有nginx的配置。

Linux中文亂碼 (修改默認(rèn)編碼)

如文件或文件夾含有中文字符時,可能會讀取亂碼,讀取不到文章,需要修改系統(tǒng)默認(rèn)編碼
修改默認(rèn)編碼

Nginx 服務(wù)器
上面我們是直接以 node 啟動一個服務(wù)器,監(jiān)聽 80 端口,這樣我們就可以直接以 IP 地址或域名的方式訪問,也可以監(jiān)聽其他端口如3000,這樣我們就得在地址后加上 : 端口號,顯然這樣很麻煩,且一般 node 程序基本不監(jiān)聽 80 端口,還可能同時運(yùn)行幾個 node 項(xiàng)目,監(jiān)聽不同的端口,通過二級域名來分別訪問。 這里就用到 Nginx 來實(shí)現(xiàn)反向代理。(node 利用 node-http-proxy 包也可以實(shí)現(xiàn)反向代理,有興趣自己了解)
Nginx安裝

Nginx依賴下面3個包:

SSL功能需要openssl庫,下載地址 http://www.openssl.org/

rewrite模塊需要pcre庫,下載地址 http://www.pcre.org/

gzip模塊需要zlib庫,下載地址 http://www.zlib.net/

Nginx安裝包

進(jìn)入任意目錄下載以上壓縮包(版本號改為最新即可):

[root@izwz9e9bjg74ljcpzr7stvz download]# wget http://www.zlib.net/zlib-1.2.11.tar.gz
[root@izwz9e9bjg74ljcpzr7stvz download]# wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz
[root@izwz9e9bjg74ljcpzr7stvz download]# wget https://www.openssl.org/source/openssl-fips-2.0.16.tar.gz
[root@izwz9e9bjg74ljcpzr7stvz download]# wget http://nginx.org/download/nginx-1.13.7.tar.gz
[root@izwz9e9bjg74ljcpzr7stvz download]# ls
pcre-8.41.tar.gz   zlib-1.2.11.tar.gz
nginx-1.13.7.tar.gz  openssl-fips-2.0.16.tar.gz

解壓壓縮包:

[root@izwz9e9bjg74ljcpzr7stvz download]# tar zxvf zlib-1.2.11.tar.gz
[root@izwz9e9bjg74ljcpzr7stvz download]# tar tar zxvf pcre-8.41.tar.gz
[root@izwz9e9bjg74ljcpzr7stvz download]# tar zxvf openssl-fips-2.0.16.tar.gz
[root@izwz9e9bjg74ljcpzr7stvz download]# tar zxvf nginx-1.13.7.tar.gz

先安裝3個依賴包,分別進(jìn)入各自解壓目錄

// 看清各個目錄下的是 configure 還是 config
[root@izwz9e9bjg74ljcpzr7stvz zlib-1.2.11]# ./configuer && make && make install
[root@izwz9e9bjg74ljcpzr7stvz pcre-8.41]# ./configuer && make && make install
[root@izwz9e9bjg74ljcpzr7stvz openssl-fips-2.0.16]# ./config && make && make install
[root@izwz9e9bjg74ljcpzr7stvz nginx-1.13.7]# ./configure --with-pcre=../pcre-8.41/ --with-zlib=../zlib-1.2.11/ --with-openssl=../openssl-fips-2.0.16/
[root@izwz9e9bjg74ljcpzr7stvz nginx-1.13.7]# make && make install

安裝 C++ 編譯環(huán)境 (上面安裝過程中如若有報錯,可以看看是不是因?yàn)闆]有安裝這個,可提前安裝)

yum install gcc-c++
運(yùn)行Nginx

安裝好的Nginx路徑在 /usr/local/nginx

[root@izwz9e9bjg74ljcpzr7stvz ~]# cd /usr/local/nginx
[root@izwz9e9bjg74ljcpzr7stvz nginx]# ls
client_body_temp  conf  fastcgi_temp  html  logs  nginx.conf  proxy_temp  sbin  scgi_temp  uwsgi_temp

配置文件路徑:

/usr/local/nginx/conf/nginx.conf

運(yùn)行Nginx:

[root@izwz9e9bjg74ljcpzr7stvz ~]# cd /usr/local/nginx/sbin
[root@izwz9e9bjg74ljcpzr7stvz sbin]# ./nginx
// 查看是否運(yùn)行成功
[root@izwz9e9bjg74ljcpzr7stvz sbin]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3525/nginx: master

瀏覽器輸入 IP 地址或域名即可見到歡迎頁面。

使用server命令啟動nginx服務(wù)

現(xiàn)在nginx啟動、關(guān)閉比較麻煩,關(guān)閉要找到PID號,然后殺死進(jìn)程,啟動要進(jìn)入到 /usr/local/nginx/sbin 目錄下使用命令,為此我們通過設(shè)置System V腳本來使用server命令啟動、關(guān)閉、重啟nginx服務(wù)。

在 /etc/init.d 目錄下創(chuàng)建nginx啟動腳本文件

[root@izwz9e9bjg74ljcpzr7stvz ~]# cd /etc/init.d
[root@izwz9e9bjg74ljcpzr7stvz init.d]# vim nginx

將以下代碼復(fù)制粘貼進(jìn)去,然后保存。 注意 NGINX_BIN、CONFIGFILE、PIDFILE 三個目錄要對應(yīng)好,默認(rèn)是對應(yīng)好的。在網(wǎng)上找了好多相關(guān)腳本代碼,都有很多問題,好像是和 CentOS 版本有關(guān),下面腳本我在 CentOS 7 下使用正常。

#! /bin/sh
# chkconfig: 2345 55 25
# Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and
# run "update-rc.d -f nginx defaults", or use the appropriate command on your
# distro. For CentOS/Redhat run: "chkconfig --add nginx"

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO

# Author:   licess
# website:  http://lnmp.org

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=nginx
NGINX_BIN=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/$NAME.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid

case "$1" in
    start)
        echo -n "Starting $NAME... "

        if netstat -tnpl | grep -q nginx;then
            echo "$NAME (pid `pidof $NAME`) already running."
            exit 1
        fi

        $NGINX_BIN -c $CONFIGFILE

        if [ "$?" != 0 ] ; then
            echo " failed"
            exit 1
        else
            echo " done"
        fi
        ;;

    stop)
        echo -n "Stoping $NAME... "

        if ! netstat -tnpl | grep -q nginx; then
            echo "$NAME is not running."
            exit 1
        fi

        $NGINX_BIN -s stop

        if [ "$?" != 0 ] ; then
            echo " failed. Use force-quit"
            exit 1
        else
            echo " done"
        fi
        ;;

    status)
        if netstat -tnpl | grep -q nginx; then
            PID=`pidof nginx`
            echo "$NAME (pid $PID) is running..."
        else
            echo "$NAME is stopped"
            exit 0
        fi
        ;;

    force-quit)
        echo -n "Terminating $NAME... "

        if ! netstat -tnpl | grep -q nginx; then
            echo "$NAME is not running."
            exit 1
        fi

        kill `pidof $NAME`

        if [ "$?" != 0 ] ; then
            echo " failed"
            exit 1
        else
            echo " done"
        fi
        ;;

    restart)
        $0 stop
        sleep 1
        $0 start
        ;;

    reload)
        echo -n "Reload service $NAME... "

        if netstat -tnpl | grep -q nginx; then
            $NGINX_BIN -s reload
            echo " done"
        else
            echo "$NAME is not running, can"t reload."
            exit 1
        fi
        ;;

    configtest)
        echo -n "Test $NAME configure files... "

        $NGINX_BIN -t
        ;;

    *)
        echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}"
        exit 1
        ;;

esac

修改腳本權(quán)限

chmod a+x /etc/init.d/nginx

注冊成服務(wù)

chkconfig --add nginx

設(shè)置開機(jī)啟動

chkconfig nginx on

這樣就可以在任意目錄通過service啟動、關(guān)閉nginx

[root@izwz9e9bjg74ljcpzr7stvz ~]# service nginx start
[root@izwz9e9bjg74ljcpzr7stvz ~]# service nginx stop
[root@izwz9e9bjg74ljcpzr7stvz ~]# service nginx restart
配置nginx.conf反向代理多個node項(xiàng)目

啟動多個node項(xiàng)目,分別監(jiān)聽不同端口,如

項(xiàng)目1,監(jiān)聽端口3000,為博客項(xiàng)目,域名訪問 www.cl8023.com 或 cl8023.com

項(xiàng)目2,監(jiān)聽端口8023,為游戲項(xiàng)目,域名訪問 game.cl8023.com

在阿里云服務(wù)區(qū)控制臺開放端口3000和8023,(80端口是必須的,nginx監(jiān)聽)

綁定二級域名 game.cl8023.com,添加域名解析

記錄類型:A

主機(jī)記錄:game

解析線路:默認(rèn)

記錄紙:IP地址

TTL至:10分鐘(默認(rèn))

修改nginx配置
進(jìn)入目錄 /usr/local/nginx/conf 修改配置文件nginx.conf

[root@izwz9e9bjg74ljcpzr7stvz ~]# cd /usr/local/nginx/conf
[root@izwz9e9bjg74ljcpzr7stvz conf]# ls
fastcgi.conf          fastcgi_params          koi-utf  mime.types          nginx.conf          scgi_params          uwsgi_params          win-utf
fastcgi.conf.default  fastcgi_params.default  koi-win  mime.types.default  nginx.conf.default  scgi_params.default  uwsgi_params.default
[root@izwz9e9bjg74ljcpzr7stvz conf]# vim nginx.conf
// server 內(nèi)容替換為
    server {
        listen 80;
        server_name game.cl8023.com;
        location / {
            proxy_set_header   Host      $http_host;
            proxy_pass         http://127.0.0.1:8023;
            proxy_redirect     off;
            proxy_set_header   X-Real-IP       $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    server {
        listen 80;
        server_name cl8023.com www.cl8023.com;
        # 解決刷新404的問題
        location /blog {
            try_files $uri $uri/ /index.html;
        }
        location / {
            proxy_set_header   Host      $http_host;
            proxy_pass         http://127.0.0.1:3000;
            proxy_redirect     off;
            proxy_set_header   X-Real-IP       $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

若只配置一個server,game.cl8023.com、cl8023.com、www.cl8023.com 都將可以訪問到這個端口。想要反響代理更多端口,可再增加server,也可以將server多帶帶出來為一個文件,如game-8023.conf,blog-3000.conf,然后在nginx.conf中引入文件地址即可

http {
    ......
    include ./vhost/game-8023.conf; 
    include ./vhost/blog-3000.conf;
    ......
}

重啟nginx

[root@izwz9e9bjg74ljcpzr7stvz ~]# service nginx restart

無誤的話便可以使用不同的域名訪問不同的項(xiàng)目。

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

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

相關(guān)文章

  • vue個人博客項(xiàng)目部署上線

    摘要:前言之前有發(fā)過這個項(xiàng)目的文章了,根據(jù)朋友的建議改變了博客的樣式,也增加了一些新功能,下面完整地介紹這個博客項(xiàng)目。 前言 之前有發(fā)過這個項(xiàng)目的文章了,根據(jù)朋友的建議改變了博客的樣式,也增加了一些新功能,下面完整地介紹這個博客項(xiàng)目。文末附前端實(shí)習(xí)求職簡歷 項(xiàng)目簡介 簡要介紹:一個前后端分離的項(xiàng)目主要技術(shù)棧:vue全家桶 + node.js + Express + Mongodbgithub...

    caspar 評論0 收藏0
  • vue個人博客項(xiàng)目部署上線

    摘要:前言之前有發(fā)過這個項(xiàng)目的文章了,根據(jù)朋友的建議改變了博客的樣式,也增加了一些新功能,下面完整地介紹這個博客項(xiàng)目。 前言 之前有發(fā)過這個項(xiàng)目的文章了,根據(jù)朋友的建議改變了博客的樣式,也增加了一些新功能,下面完整地介紹這個博客項(xiàng)目。文末附前端實(shí)習(xí)求職簡歷 項(xiàng)目簡介 簡要介紹:一個前后端分離的項(xiàng)目主要技術(shù)棧:vue全家桶 + node.js + Express + Mongodbgithub...

    lanffy 評論0 收藏0
  • nodejs服務(wù)器部署教程三,部署基于node+vue+mongodb的項(xiàng)目

    摘要:服務(wù)器部署教程一服務(wù)器部署教程二,把項(xiàng)目部署到線上本文以我個人的開源項(xiàng)目作為演示,讓你把自己的項(xiàng)目能在服務(wù)器上跑起來安裝數(shù)據(jù)庫如何在上安裝數(shù)據(jù)庫,其實(shí)官方文檔寫的很清楚啦切記按找版本號安裝,我的是完成以上操作輸入看到 nodejs服務(wù)器部署教程一nodejs服務(wù)器部署教程二,把vue項(xiàng)目部署到線上本文以我個人的開源項(xiàng)目vueblog作為演示,讓你把自己的項(xiàng)目能在服務(wù)器上跑起來 安裝mo...

    Tonny 評論0 收藏0
  • vue-cli + es6 多頁面項(xiàng)目開發(fā)及部署

    摘要:前段時間項(xiàng)目組計劃快速開發(fā)一個新的項(xiàng)目,開發(fā)那邊提供殼子和部分系統(tǒng)級功能,所有的頁面由完成,考慮兼容性安卓及。后面會繼續(xù)優(yōu)化,先把目前的基本部署方式記錄下來。 前段時間項(xiàng)目組計劃快速開發(fā)一個新的App項(xiàng)目,App開發(fā)那邊提供殼子和部分系統(tǒng)級功能,所有的頁面由h5完成,考慮兼容性安卓4.1及ios7.1。全新的項(xiàng)目,沒有歷史包袱,就嘗試了新的開發(fā)模式,采用了webpack + vue-c...

    felix0913 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<