服務(wù)器上怎么做網(wǎng)站如何做推廣和引流
機(jī)器部署
集群規(guī)劃
我們準(zhǔn)備三臺(tái)服務(wù)器kk01、kk02、kk03,內(nèi)存4G、硬盤(pán)50G、處理器4核心2內(nèi)核(總8)
kk01使用 192.168.188.128
kk02使用 192.168.188.129
kk03使用 192.168.188.130
模板機(jī)準(zhǔn)備
我們先創(chuàng)建一臺(tái)作為模板機(jī),后續(xù)的兩臺(tái)采用完整克隆的方式
1)我們配置了模塊機(jī)kk01的主機(jī)名為 kk01
2)配置了root用戶(hù)的密碼123456、創(chuàng)建了普通用戶(hù)nhk、密碼123456
3)使用vim 配置了模板機(jī)ip地址、網(wǎng)關(guān)、DNS等信息
# 2.配置靜態(tài)ip (注意,我們這里剛開(kāi)始需要使用root用戶(hù)來(lái)修改)
[nhk@kk01 ~]$ su root
Password:
[root@kk01 nhk]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 做出如下修改BOOTPROTO=static # 改為靜態(tài)
# 末尾添加如下內(nèi)容
IPADDR=192.168.188.128
GATEWAY=192.168.188.2
NETMASK=255.255.255.0
DNS1=192.168.188.2
# 重啟網(wǎng)卡
[root@kk01 nhk]# systemctl restart network.service
# 查看當(dāng)前ip地址
[root@kk01 nhk]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.188.128 netmask 255.255.255.0 broadcast 192.168.188.255inet6 fe80::517f:78e:56fc:d924 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:61:40:47 txqueuelen 1000 (Ethernet)
...
4)關(guān)閉模板機(jī) kk01的防火墻
[root@kk01 nhk]# systemctl stop firewalld.service # 關(guān)閉當(dāng)前防火墻
[root@kk01 nhk]# systemctl disable firewalld.service # 關(guān)閉防火墻開(kāi)機(jī)自啟動(dòng)
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.# 查看防火墻狀態(tài),看到 inactive (dead) 則證明防火墻成功關(guān)閉
[root@kk01 nhk]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)
....
5)修改模板機(jī)kk01主機(jī)名
# 修改主機(jī)名
[root@kk01 nhk]# vim /etc/hostname # 這種修改方式需要重啟系統(tǒng),才生效
[root@kk01 nhk]# cat /etc/hostname
kk01
6)修改hosts文件
[root@kk01 nhk]# vim /etc/hosts192.168.188.128 kk01
192.168.188.129 kk02
192.168.188.130 kk03
7)配置普通用戶(hù)(nhk)具有root權(quán)限
修改/etc/sudoers文件,在100多行左右,在%wheel下面添加一行內(nèi)容,如下操作所示
# 配置普通用戶(hù)(nhk)具有root權(quán)限,方便后期加sudo執(zhí)行root權(quán)限的命令
# 注意:修改這個(gè)文件,即使是root用戶(hù)也需要 :wq! 強(qiáng)制保存退出
[root@kk01 nhk]# vim /etc/sudoers
# 在%wheel這行下面添加一行 (大概是在100行左右位置)## Allow root to run any commands anywhere
root ALL=(ALL) ALL## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALLnhk ALL=(ALL) NOPASSWD: ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
注意:
? nhk ALL=(ALL) NOPASSWD: ALL 這一行不要直接放到root行下面,因?yàn)樗杏脩?hù)都屬于wheel組,你先配置了nhk具有免密功能,但是程序執(zhí)行到%wheel行時(shí),該功能又被覆蓋回需要密碼。所以nhk要放到%wheel這行下面。
8)創(chuàng)建統(tǒng)一工作目錄
[root@kk01 nhk]# mkdir -p /opt/software/ # 軟件安裝目錄、安裝包存放目錄
[root@kk01 nhk]# mkdir -p /opt/data/ # 數(shù)據(jù)存儲(chǔ)路徑
[root@kk01 nhk]#
[root@kk01 nhk]# ll /opt
total 0
drwxr-xr-x. 2 root root 6 Jun 16 15:51 data
drwxr-xr-x. 2 root root 6 Oct 31 2018 rh
drwxr-xr-x. 2 root root 6 Jun 16 15:51 software# 修改文件夾所有者和所屬組 (如果是使用root用戶(hù)搭建集群可以忽略)
[root@kk01 nhk]# chown nhk:nhk /opt/software
[root@kk01 nhk]# chown nhk:nhk /opt/data
[root@kk01 nhk]# ll /opt
total 0
drwxr-xr-x. 2 nhk nhk 6 Jun 16 15:51 data
drwxr-xr-x. 2 root root 6 Oct 31 2018 rh
drwxr-xr-x. 2 nhk nhk 6 Jun 16 15:51 software
克隆出其他機(jī)器
上述配置完以后,將模板機(jī)kk01關(guān)機(jī),使用VMware的完整克隆方式,克隆出 kk02、kk03,并依次開(kāi)機(jī),修改kk02、kk03上的ip地址
kk02
# 修改ip
[nhk@kk01 ~]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
做出如下修改IPADDR=192.168.188.129# 重啟網(wǎng)卡服務(wù)
[nhk@kk01 ~]$ sudo systemctl restart network
[nhk@kk01 ~]$ ifconfig # 查看ip
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.188.129 netmask 255.255.255.0 broadcast 192.168.188.255
...# 修改主機(jī)名
[nhk@kk01 ~]$ sudo hostnamectl set-hostname kk02 # 這種方式修改主機(jī)名無(wú)需重啟即可生效
[nhk@kk01 ~]$ hostname # [nhk@kk01 ~]$ 這里還顯示kk01是這個(gè)bash的原因,重新打開(kāi)bash即可
kk02
kk03
# 修改ip
[nhk@kk01 ~]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
做出如下修改IPADDR=192.168.188.130# 重啟網(wǎng)卡服務(wù)
[nhk@kk01 ~]$ sudo systemctl restart network
[nhk@kk01 ~]$ ifconfig # 查看ip
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.188.130 netmask 255.255.255.0 broadcast 192.168.188.255
...# 修改主機(jī)名
[nhk@kk01 ~]$ sudo hostnamectl set-hostname kk03 # 這種方式修改主機(jī)名無(wú)需重啟即可生效
[nhk@kk01 ~]$ hostname # [nhk@kk01 ~]$ 這里還顯示kk01是這個(gè)bash的原因,重新打開(kāi)bash即可
kk03
此致,3臺(tái)機(jī)器準(zhǔn)備完成
集群安裝JDK
1)刪除Linux系統(tǒng)自帶JDK
如果安裝的是最小化版本的Linux,則不需要執(zhí)行此操作
# 需要在所有節(jié)點(diǎn)刪除(我們使用的是nhk用戶(hù),必須加sudo)
[nhk@kk01 .ssh]$ sudo rpm -qa | grep -i java
java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
tzdata-java-2020a-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
[nhk@kk01 .ssh]$ sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps[nhk@kk02 .ssh]$ sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps[nhk@kk03 ~]$ sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps# 參數(shù)說(shuō)明
(1)rpm -qa:表示查詢(xún)所有已經(jīng)安裝的軟件包
(2)grep -i:表示過(guò)濾時(shí)不區(qū)分大小寫(xiě)
(3)xargs -n1:表示一次獲取上次執(zhí)行結(jié)果的一個(gè)值xargs 將 sudo rpm -qa | grep -i java 的結(jié)果傳遞給 sudo rpm -e --nodeps-n1 表示將 sudo rpm -qa | grep -i java 的結(jié)果傳遞 一個(gè)一個(gè)傳遞給 sudo rpm -e --nodeps
(4)rpm -e --nodeps:表示卸載軟件
2)上傳壓縮包
將 jdk壓縮包 kk01 的 /opt/software 文件夾下面
[nhk@kk01 software]$ pwd
/opt/software
[nhk@kk01 software]$ rz[nhk@kk01 software]$ ll
total 185340
-rw-r--r--. 1 nhk nhk 189784266 Dec 25 2017 jdk-8u152-linux-x64.tar.gz
3)解壓壓縮包
解壓 jdk 到指定目錄 /opt/software
[nhk@kk01 software]$ tar -zxvf jdk-8u152-linux-x64.tar.gz -C /opt/software[nhk@kk01 software]$ ll
total 185340
drwxr-xr-x. 8 nhk nhk 255 Sep 14 2017 jdk1.8.0_152
-rw-r--r--. 1 nhk nhk 189784266 Dec 25 2017 jdk-8u152-linux-x64.tar.gz
4)配置普通用戶(hù)環(huán)境變量
[nhk@kk01 software]$ sudo vim /etc/profile.d/my_env.sh
添加如下內(nèi)容
# 配置JDK環(huán)境
export JAVA_HOME=/opt/software/jdk1.8.0_152 # 導(dǎo)入環(huán)境變量
export PATH=$PATH:$JAVA_HOME/bin # 將環(huán)境變量拼接到PATH中
讓環(huán)境變量生效(重新載入環(huán)境變量)
[nhk@kk01 software]$ source /etc/profile.d/my_env.sh
5)測(cè)試jdk是否安裝成功
能看到j(luò)dk相關(guān)的版本信息,則說(shuō)明jdk安裝成功
[nhk@kk01 software]$ java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
6)分發(fā)JDK、分發(fā)環(huán)境
使用我們自定義的分發(fā)腳本 xsync
# 分發(fā)jdk
[nhk@kk01 software]$ xsync /opt/software/jdk1.8.0_152/# 普通用戶(hù)使用 xsync 腳本分發(fā)環(huán)境變量時(shí),必須加上腳本路徑
#(分發(fā)環(huán)境時(shí),需要使用sudo,因?yàn)?etc目錄只有root用戶(hù)才能操作,并且使用xsync腳本還需要加上絕對(duì)路徑,因?yàn)槲覀兪褂胹udo命令將權(quán)限切換到了root目錄下,而root目錄下沒(méi)有xsync腳本)
# 如果不加會(huì)報(bào)錯(cuò) failed: Permission denied (13)
[nhk@kk01 software]$ sudo /home/nhk/bin/xsync /etc/profile.d/my_env.sh
在集群的其他機(jī)器(kk02、kk03)刷新環(huán)境變量
[nhk@kk02 ~]$ source /etc/profile.d/my_env.sh
[nhk@kk03 ~]$ source /etc/profile.d/my_env.sh
如果我們沒(méi)有自定義分發(fā)腳本,也可以使用 scp 或 rsync 命令代替,如下
scp -r /opt/software/jdk1.8.0_152/ kk02/opt/software/
scp -r /opt/software/jdk1.8.0_152/ kk03/opt/software/
7)注意事項(xiàng)
? 無(wú)論是基于root用戶(hù),還是基于普通用戶(hù)nhk,大體上的命令都是相似的,只是在某些情況下普通用戶(hù)權(quán)限不夠,需要加上sudo來(lái)暫時(shí)提升權(quán)限
8)環(huán)境變量說(shuō)明
? Linux的環(huán)境變量可在多個(gè)文件中配置,如/etc/profile,/etc/profile.d/*.sh,/.bashrc,/.bash_profile等,下面說(shuō)明上述幾個(gè)文件之間的關(guān)系和區(qū)別。
? bash的運(yùn)行模式可分為 login shell 和 non-login shell 。
? 例如,我們通過(guò)終端,輸入用戶(hù)名、密碼,登錄系統(tǒng)之后,得到就是一個(gè)login shell。而當(dāng)我們執(zhí)行以下命令ssh kk01 command,在kk01執(zhí)行command的就是一個(gè)non-login shell。
登錄 shell 與 非登錄 shell 區(qū)別
登錄shell
環(huán)境變量加載順序
/etc/profile ~/.bash_profile ~/.bashrc ==> /etc/bashrc ==> /etc/profile.d/*.sh
非登錄shell
環(huán)境變量加載順序~/.bashrc ==> /etc/bashrc ==> /etc/profile.d/*.sh
注意:
? 如果把環(huán)境變量只放到 /etc/profile 中,non-login shell 模式會(huì)獲取不到環(huán)境變量
? 這兩種shell的主要區(qū)別在于,它們啟動(dòng)時(shí)會(huì)加載不同的配置文件,login shell啟動(dòng)時(shí)會(huì)加載**/etc/profile,/.bash_profile,/.bashrc**。non-login shell啟動(dòng)時(shí)會(huì)加載**~/.bashrc**。
而在加載/.bashrc(實(shí)際是/.bashrc中加載的/etc/bashrc)或/etc/profile時(shí),都會(huì)執(zhí)行如下代碼片段,
[nhk@kk03 etc]$ pwd
/etc
[nhk@kk03 etc]$ vim /etc/bashrc
# Only display echos from profile.d scripts if we are no login shell# and interactive - otherwise just process them to set envvarsfor i in /etc/profile.d/*.sh; doif [ -r "$i" ]; thenif [ "$PS1" ]; then. "$i"else. "$i" >/dev/nullfifidone
因此不管是login shell還是non-login shell,啟動(dòng)時(shí)都會(huì)加載/etc/profile.d/*.sh中的環(huán)境變量。
并且,/etc/profile文件中也告訴我們最好自己在 /etc/profile.d/ 創(chuàng)建一個(gè)自定義的環(huán)境變量,如下查看
[nhk@kk03 etc]$ vim /etc/profile# /etc/profile# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.系統(tǒng)范圍的環(huán)境和啟動(dòng)程序,用于登錄設(shè)置
函數(shù)和別名放在/etc/bashrc中修改這個(gè)文件不是一個(gè)好主意,除非你知道你要做什么
正在做什么。創(chuàng)建一個(gè)自定義對(duì)環(huán)境的更改腳本要好得多
/etc/profile.對(duì)您的環(huán)境進(jìn)行自定義更改,如下所示
將防止在未來(lái)的更新中合并。