1. 程式人生 > 程式設計 >Centos7 安裝配置 Nginx、MySql、Redis 的執行環境

Centos7 安裝配置 Nginx、MySql、Redis 的執行環境

本文主要講訴瞭如何搭建伺服器環境及相關配置。

閱讀本文大約需要 6 分鐘。

背景

現在的Java專案大多不單單採用一個應用伺服器(如:Tomcat、Apatch等) 來部署,可能有很多專案需要部署但是80埠只有一個,也有可能有專案是單個應用伺服器無法承載的,需要用到負載均衡的等等情況,這裡我們可以使用 Nginx 反向代理伺服器來完成,所需要的環境為:Nginx、Mysql、JDK等。

Nginx 安裝及配置

介紹

Nginx 在維基百科和百度百科中的定義為:非同步框架的網頁伺服器,也可以用作反向代理、負載平衡器和HTTP快取。他的優點有很多,什麼高併發,模組化,效能好等等這裡就不多介紹了。

安裝

安裝方式

安裝 Nginx 主要有兩種方式,一種是通過 yum 源直接安裝,另一種是通過編譯安裝。

一、yum 源安裝的優點:

  • 安裝方式簡單,不易出錯;
  • 可以通過系統服務命令 service 來啟動或停止;

缺點:

  • 不能指定安裝目錄
  • 無法指定安裝模組

二、編譯安裝的優點:

  • 可指定安裝目錄
  • 可靈活的新增需要的模組

缺點:

  • 安裝複雜

這裡我們將採用編譯安裝的方式進行安裝。

編譯安裝
1、檢查依賴軟體

檢查並安裝 Nginx 所需的依賴軟體

  1. gcc:nginx編譯依賴gcc環境

    安裝命令:yum install gcc-c++

  2. pcre:(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 相容的正則表示式庫。nginx的http模組使用 pcre來解析正則表示式.

    安裝命令:yum install -y pcre pcre-devel

  3. zlib:該庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對 http包的內容進行gzip。

    安裝命令:yum install -y zlib zlib-devel

  4. openssl:一個強大的安全套接字層密碼庫,囊括主要的密碼演演算法、常用的金鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程式供測試或其它目的使用。nginx不僅支援http 協議,還支援https

    安裝命令:yum install -y openssl openssl-devel

2、安裝 nginx

點選進入 nginx 官網

裡面有最新的主線版本、穩定版和歷史版本,這裡我們選擇最新的主線版本--1.17.6,即:

  1. 我們建立一個 download 目錄來存放下載下來的檔案,然後進入該目錄:
mkdir download
cd download
複製程式碼
  1. 接著下載 Nginx 1.17.6 的主線版本 ,下載命令:
wget https://nginx.org/download/nginx-1.17.6.tar.gz
複製程式碼
  1. 解壓縮原始碼包並進入,命令如下:
tar -zxvf nginx-1.17.6.tar.gz
cd nginx-1.17.6
複製程式碼
  1. 配置編譯引數命令(重要),配置如下:
./configure \
--prefix=/mnt/sdc/server/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-pcre=../pcre-8.43 \
--with-http_ssl_module --with-http_v2_module \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-stream \
--with-stream_ssl_module \
--with-http_sub_module \
--with-http_flv_module \
--with-http_addition_module \
--with-http_realip_module \
--with-http_mp4_module \
--with-ld-opt=-Wl,-E \
--with-cc-opt=-Wno-error \
--with-pcre-jit \
--with-http_stub_status_module
複製程式碼

注:

執行之前我們需要下載並解壓 pcre ,這裡我們使用 pcre 原始碼編譯的方式讓 Nginx 支援 pcre 模組,這裡選擇的版本是--8.43,下載命令:

wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
tar -zxvf pcre-8.43.tar.gz
複製程式碼

安裝之前需要手動建立上面指定的nginx資料夾,分別是 --prefix 指定的目錄、 /var/run/nginx、/var/temp 和 /var/temp/nginx

mkdir /var/run/nginx
mkdir /var/temp
mkdir /var/temp/nginx
複製程式碼
  1. 編譯並安裝
make && make install
複製程式碼

等待安裝完成,驗證是否安裝成功,可以進入 --prefix 指定的目錄檢視是否存在conf、sbin、html資料夾,若存在則安裝成功。

啟動
  1. 進入安裝目錄
cd /mnt/sdc/server/nginx/sbin
複製程式碼
  1. 啟動
./nginx
複製程式碼
  1. 檢視是否啟動

開啟瀏覽器,輸入你伺服器的IP地址,看是否出現如下介面,沒有出現可以檢測一下伺服器的安全組或防火牆,看看80和443的埠是否開啟,開啟即可。

  1. 停止
  • 快速停止:
 ./nginx -s stop
複製程式碼
  • 完整停止(建議使用)
./nginx -s quit
複製程式碼
  1. 重新載入配置
./nginx -t # 測試配置檔案是否有問題,出現test is successful 代表配置檔案沒有問題
./nginx -s reload # 重新載入配置
複製程式碼
修改 Nginx 配置

執行./nginx啟動nginx,這裡可以使用-c指定載入的nginx配置檔案,如果不指定,nginx在啟動時預設載入conf/nginx.conf 檔案。

我們開啟 nginx.conf

vi conf/nginx.conf
複製程式碼

修改為:

worker_processes  2; # 可以根據伺服器的核數來填寫

events {
    worker_connections  4096; # 可以根據伺服器的核數來填寫
}


http {
    include       mime.types; #副檔名與檔案型別對映表
    default_type  application/octet-stream; #預設檔案型別
    sendfile on; #開啟高效檔案傳輸模式,sendfile指令指定nginx是否呼叫sendfile函式來輸出檔案,對於普通應用設為on,如果用來進行下載等應用或磁碟IO重負載應用,可設定為off,以平衡磁碟與網路I/O處理速度,降低系統的負載。注意:如果圖片顯示不正常 把這個改成off。
    autoindex on; #開啟目錄列表訪問,適合下載伺服器,預設關閉。
    tcp_nopush on; #防止網路阻塞
    tcp_nodelay on; #防止網路阻塞
    keepalive_timeout 120; #長連線超時時間,單位是秒
    gzip on; #開啟gzip壓縮輸出

    server {
        listen       80;
        server_name  localhost;

    }

    include /mnt/sdc/server/nginx/project/*.conf; # 載入其他配置,可以分專案建立,xxx.conf.

}
複製程式碼

Mysql 5.7 安裝及修改資料庫目錄

下載 Mysql yum包

使用wget 直接下載:

 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
複製程式碼

安裝軟體源

rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
複製程式碼

安裝 Mysql 服務端

yum install  -y  mysql-community-server

複製程式碼

這裡的安裝需要等待一會

Mysql 操作

service mysqld start # 啟動mysql
service mysqld status # 檢查mysql的執行狀態
service mysqld stop # 停止mysql
service mysqld restart # 重啟mysql

複製程式碼

修改臨時密碼

  1. 檢視臨時密碼

為了加強安全性,MySQL5.7為root使用者隨機生成了一個密碼,在error log中,關於error log的位置,如果安裝的是RPM包,則預設是/var/log/mysqld.log。 只有啟動過一次mysql才可以檢視臨時密碼

可以通過命令來檢視臨時密碼:

grep 'temporary password' /var/log/mysqld.log

複製程式碼
  1. 登入並修改
mysql -h127.0.0.1 -uroot -p # 登入

ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxx'; # 修改密碼為xxxx

複製程式碼

這裡的密碼設定需要複雜一點,如果密碼設定的太過於簡單,會發生如下的提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

解決方案:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

授權其他機器登入

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH  PRIVILEGES;

複製程式碼

修改mysql的資料庫目錄位置

第一步:建立目錄

在你想要的地方建立data目錄,如在 /mnt/sdc/mysql/data

mkdir -p /mnt/sdc/mysql/data & cd  /mnt/sdc/mysql/data

複製程式碼
第二步:停止服務

停掉mysql服務

mysqladmin -u root -p shutdown
Enter password:

複製程式碼
第三步:遷移目錄

/var/lib/mysql 的目錄遷移到 /mnt/sdc/mysql/data

mv /var/lib/mysql /mnt/sdc/mysql/data/

複製程式碼
第四步:設定許可權

設定 /mnt/sdc/mysql/data/mysql 資料夾的所屬和許可權

chown -R mysql:mysql /mnt/sdc/mysql/data/mysql

複製程式碼
第五步:修改配置

修改 socket 為:/mnt/sdc/mysql/data/mysql/mysql.sock

修改 datadir 為:/mnt/sdc/mysql/data/mysql

設定一個SELinux

setenforce 0

複製程式碼
最後:重新啟動
service mysqld start

複製程式碼

Redis 的安裝與設定

1、下載

到 redis 官網下載最新穩定版的 redis,下載地址:redis.io/download,當前最新版為:5.0.7

wget http://download.redis.io/releases/redis-5.0.7.tar.gz

複製程式碼

2、解壓安裝

下載完成後,解壓 redis-5.0.7.tar.gz

tar -zxvf redis-5.0.7.tar.gz 

複製程式碼

進入解壓的目錄

cd redis-5.0.7

複製程式碼

使用 PREFIX 可以把 redis 安裝到指定目錄: 這裡安裝的目錄是 /mnt/sdc/server/redis

make PREFIX=/mnt/sdc/server/redis install

複製程式碼

4、設定開機啟動

在解壓的 redis 目錄下的 utils 裡面找到 redis_init_script,將其拷貝到 /etc/init.d 目錄下,重新命名為redis,進入到 /etc/init.d/ 目錄:

 cd utils/
 cp redis_init_script /etc/init.d/redis
 cd /etc/init.d/

複製程式碼

使用 vi 編輯 redis

  1. 在指令碼的第一行後面新增一行內容如下:
#chkconfig: 2345 80 90 

複製程式碼
  1. 根據自己的安裝目錄修改以下5個引數的實際路徑:
REDISPORT=6379   #埠                
EXEC=/mnt/sdc/server/redis/bin/redis-server   #啟動服務的命令路徑
CLIEXEC=/mnt/sdc/server/redis/bin/redis-cli    #客戶端路徑
PIDFILE=/var/run/redis_${REDISPORT}.pid   #記錄pid(程式id)檔案路徑
CONF="/mnt/sdc/server/redis/${REDISPORT}.conf"        #配置檔案路徑

複製程式碼
  1. 更改 redis 開啟的命令,增加‘&’來以後臺執行的方式執行:
$EXEC $CONF & 

複製程式碼
  1. 將 Redis 註冊成為服務
 chkconfig --add redis  # 註冊成為服務
 chkconfig --list redis  # 檢視開機自啟的服務中是否已經有我們的redis

複製程式碼

下面代表已加入開機自啟的服務

5、redis 配置檔案設定

進入redis目錄複製 redis.conf 檔案到 /mnt/sdc/server/redis/ 檔案下,修改起檔案為:埠號.conf

開啟 埠號.conf

修改 daemonize no 為 `daemonize yes。

6、啟動,停止 redis 服務

service redis start  
service redis stop

複製程式碼

結尾

到此,本文就結束了,如有不當之處敬請指正,一起學習探討,謝謝?。