Centos7 安裝配置 Nginx、MySql、Redis 的執行環境
本文主要講訴瞭如何搭建伺服器環境及相關配置。
閱讀本文大約需要 6 分鐘。
背景
現在的Java專案大多不單單採用一個應用伺服器(如:Tomcat、Apatch等) 來部署,可能有很多專案需要部署但是80埠只有一個,也有可能有專案是單個應用伺服器無法承載的,需要用到負載均衡的等等情況,這裡我們可以使用 Nginx 反向代理伺服器來完成,所需要的環境為:Nginx、Mysql、JDK等。
Nginx 安裝及配置
介紹
Nginx 在維基百科和百度百科中的定義為:非同步框架的網頁伺服器,也可以用作反向代理、負載平衡器和HTTP快取。他的優點有很多,什麼高併發,模組化,效能好等等這裡就不多介紹了。
安裝
安裝方式
安裝 Nginx 主要有兩種方式,一種是通過 yum 源直接安裝,另一種是通過編譯安裝。
一、yum 源安裝的優點:
- 安裝方式簡單,不易出錯;
- 可以通過系統服務命令
service
來啟動或停止;
缺點:
- 不能指定安裝目錄
- 無法指定安裝模組
二、編譯安裝的優點:
- 可指定安裝目錄
- 可靈活的新增需要的模組
缺點:
- 安裝複雜
這裡我們將採用編譯安裝的方式進行安裝。
編譯安裝
1、檢查依賴軟體
檢查並安裝 Nginx 所需的依賴軟體
-
gcc:nginx編譯依賴gcc環境
安裝命令:yum install gcc-c++
-
pcre:(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 相容的正則表示式庫。nginx的http模組使用 pcre來解析正則表示式.
安裝命令:yum install -y pcre pcre-devel
-
zlib:該庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對 http包的內容進行gzip。
安裝命令:yum install -y zlib zlib-devel
-
openssl:一個強大的安全套接字層密碼庫,囊括主要的密碼演演算法、常用的金鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程式供測試或其它目的使用。nginx不僅支援http 協議,還支援https
安裝命令:yum install -y openssl openssl-devel
2、安裝 nginx
點選進入 nginx 官網
- 我們建立一個
download
目錄來存放下載下來的檔案,然後進入該目錄:
mkdir download
cd download
複製程式碼
- 接著下載 Nginx 1.17.6 的主線版本 ,下載命令:
wget https://nginx.org/download/nginx-1.17.6.tar.gz
複製程式碼
- 解壓縮原始碼包並進入,命令如下:
tar -zxvf nginx-1.17.6.tar.gz
cd nginx-1.17.6
複製程式碼
- 配置編譯引數命令(重要),配置如下:
./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
複製程式碼
- 編譯並安裝
make && make install
複製程式碼
等待安裝完成,驗證是否安裝成功,可以進入 --prefix 指定的目錄檢視是否存在conf、sbin、html資料夾,若存在則安裝成功。
啟動
- 進入安裝目錄
cd /mnt/sdc/server/nginx/sbin
複製程式碼
- 啟動
./nginx
複製程式碼
- 檢視是否啟動
開啟瀏覽器,輸入你伺服器的IP地址,看是否出現如下介面,沒有出現可以檢測一下伺服器的安全組或防火牆,看看80和443的埠是否開啟,開啟即可。
- 停止
- 快速停止:
./nginx -s stop
複製程式碼
- 完整停止(建議使用)
./nginx -s quit
複製程式碼
- 重新載入配置
./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
複製程式碼
修改臨時密碼
- 檢視臨時密碼
為了加強安全性,MySQL5.7為root使用者隨機生成了一個密碼,在error log中,關於error log的位置,如果安裝的是RPM包,則預設是/var/log/mysqld.log。 只有啟動過一次mysql才可以檢視臨時密碼
可以通過命令來檢視臨時密碼:
grep 'temporary password' /var/log/mysqld.log
複製程式碼
- 登入並修改
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
- 在指令碼的第一行後面新增一行內容如下:
#chkconfig: 2345 80 90
複製程式碼
- 根據自己的安裝目錄修改以下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" #配置檔案路徑
複製程式碼
- 更改 redis 開啟的命令,增加‘&’來以後臺執行的方式執行:
$EXEC $CONF &
複製程式碼
- 將 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
複製程式碼
結尾
到此,本文就結束了,如有不當之處敬請指正,一起學習探討,謝謝?。