Re從零開始的後端學習之配置Ubuntu+Ngnix+Nodejs+Mysql環境

FlyTeng_1874發表於2019-07-01

前言

nodeJs是一條讓前端更好地瞭解後端的捷徑,網上的配置教程又比較分散,所以就重新統一組織了一下。

配置Nginx

  1. 安裝Nginx
sudo apt-get install nginx
複製程式碼
  1. 配置Nginx
sudo vim /etc/nginx/sites-available/default
複製程式碼

前往nginx的安裝目錄進行配置,不用版本的目錄可能有所不同,但大概都在差不多的地方,在sites-available目錄下的default進行配置,我們會發現有sites-available,sites-enabled兩個很相似的目錄,那為什麼要在sites-available目錄下配置呢?那是因為sites-enabled只是一個軟連結目錄,類似於window的快捷方式,那肯定是不能去改快捷方式的。

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    
    # 如果要支援HTTPS,修改這裡
    # 可以使用 https://letsencrypt.org 的免費SSL證照
    #listen 443 ssl;
    #ssl_certificate     www.example.com.crt;
    #ssl_certificate_key www.example.com.key;
    #ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    #ssl_ciphers         HIGH:!aNULL:!MD5;
    
    # 重定向所有HTTP到HTTPS
	# rewrite ^(.*)$ https://$host$1 permanent;

	# 網站根目錄,根據需要修改
    root /usr/share/nginx/html;
    # 增加index.php
    index index.php index.html index.htm;

	# 假設域名是 www.brandf.cn
    server_name www.brandf.cn; #繫結域名

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}
複製程式碼
  1. 然後可以按照命令檢測一下Nginx是否啟動正常
// 檢視apache狀態
sudo service apache2 status
// 關閉apache
sudo service apache2 stop
// 檢視apache狀態
sudo service apache2 status
// 啟動nginx
sudo service nginx start
// 檢視nginx狀態
sudo service nginx status
複製程式碼

Ps:如果apache2在執行,ngnix是無法執行的

  1. 網站優化配置
vim /usr/local/nginx/conf/nginx.conf
複製程式碼

Gzip

gzip on; //啟用gzip壓縮
gzip_min_length 1k; //小於1k的檔案不壓縮
gzip_buffers 4 16k;
#gzip_http_version 1.0; //這個註釋掉
gzip_comp_level 5; //壓縮等級分為1-10級,等級越高壓縮的檔案越小,時間也越長
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off; //跟快取服務有關
gzip_disable "MSIE [1-6]\."; //禁用gzip服務的瀏覽器版本
複製程式碼

配置nodeJs

  1. 安裝NodeJs
  • 網上大多都是以apt-get這種方式去下載安裝的
  • 吐槽一下apt-get,這裡的資源不知是多少年前的了,之前我安裝的npm居然是1.1版本,nodejs是0.1版本。這裡發現了一個有趣的插曲0.1版本使用的命令是nodejs,不是node,nodejs的一次社群分裂可能是問題的主要原因,有興趣可以瞭解一下。
  • www.infoq.com/cn/articles…
  • 這直接導致nodejs版本太低導致npm無法安裝包,就連npm install -g npm自身更新都無法進行,這就比較尷尬了。

經過不懈的努力,終於找到了一種普適的方法。

  1. 從node官網下載已編譯好了的node
wget https://nodejs.org/dist/v4.6.0/node-v4.6.0-linux-x64.tar.xz
tar -xvf node-v4.6.0-linux-x64.tar.xz
cd node-v4.6.0-linux-x64.tar.xz
複製程式碼
  1. 拷貝安裝
sudo cp -r bin include lib share /usr/local/
複製程式碼
  1. 測試安裝情況
node -v
複製程式碼
  1. 更新npm
npm install -g npm
複製程式碼
  1. 安裝nodejs版本管理工具n
npm install -g n
複製程式碼
  1. 更新nodejs到穩定版本
n stable
複製程式碼

OK,一切都準備就緒,還差mysql


配置Mysql

  1. 安裝mysql
sudo apt-get install mysql-server mysql-client
複製程式碼
  1. 檢測是否安裝成功
sudo netstat -tap | grep mysql
複製程式碼
  1. 安裝好mysql後,用navicat進行遠端連線,不出意外,首先會碰到2003錯誤,這是因為mysql對地址進行了繫結,只允許本地操作,不急,這很好解決。
  • 找到 vim /etc/mysql/mysql.conf.d/mysqld.cnf 類似這樣的配置檔案,不同版本位置會有小小不同
  • 加#號註釋 bind-address = 127.0.0.1
  • 重啟服務 /etc/init.d/sudo mysql restart
  • www.cnblogs.com/patrickding…
  1. 在設定好之後就會碰到1045錯誤,不要問我為什麼知道,那是mysql沒有分配給你許可權
  • 進入目錄
cd /etc/init.d
複製程式碼
  • 進入mysql
mysql -h localhost -u root -p
// 輸入安裝時設定好的密碼
複製程式碼
  • 進入mysql表
mysql>use mysql;
複製程式碼
  • 檢視許可權表
mysql>select host, user from user;
複製程式碼
  • 賦予地址為192.168.1.x的主機x許可權,可進入x資料庫,賬號youruser,密碼yourpassword
mysql>GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'192.168.1.*' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
複製程式碼
  • 重新整理一下,讓配置生效
mysql>FLUSH PRIVILEGES;
複製程式碼
  • 需要取消許可權時
mysql>Delete from user where user = "user_name" and host = "host_name" ;
複製程式碼
  • 讓配置生效
mysql>FLUSH PRIVILEGES;
複製程式碼

All done

至此已配置好伺服器node開發環境,可以開心地部署node服務了

從零開始系列傳送門

相關文章