背景和引言
博主自行搭建一個(gè)個(gè)人網(wǎng)站,國(guó)內(nèi)的服務(wù)器和域名都要實(shí)名或者備案,覺(jué)得太麻煩了;于是用的是國(guó)外的,用的是知速云+cf。寫(xiě)這篇文章主要是想記錄一下幾天踩過(guò)的坑,幫助大家更快搭建好自己的網(wǎng)站。(同時(shí)也方便自己日后回顧)
MySQL安裝
推薦通過(guò)docker進(jìn)行安裝,方便管理。
安裝Docker
1)yum 包更新到最新
sudo yum update
(2)安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個(gè)是devicemapper驅(qū)動(dòng)依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3)設(shè)置yum源為阿里云
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)安裝docker
sudo yum install docker-ce
(5)安裝后查看docker版本
docker -v
啟動(dòng)docker
systemctl start docker
有些linux版本會(huì)報(bào)錯(cuò),使用service docker start
安裝MySQL鏡像
拉取鏡像
docker pull mysql:5.7
這里以5.7版本為例,因?yàn)槲业木褪前惭b的5.7,如需安裝最新版本,可使用以下命令
docker pull mysql:latest
安裝成功后,就開(kāi)始運(yùn)行。這里有很大的學(xué)問(wèn),不建議您使用mysql默認(rèn)的端口,這樣子很容易被別人暴力破解,然后向你索要比特幣。
創(chuàng)建容器,設(shè)置端口映射、目錄映射
docker run -di --name=c_mysql -p 3333:3306 -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
別直接復(fù)制!自頂一下端口號(hào)和密碼,其他都可以不改!
- 參數(shù)說(shuō)明:
- -p 3333:3306:將容器的 3306 端口映射到宿主機(jī)的 3333 端口。(navicat連接的時(shí)候,就通過(guò)3333端口連接)
- -v /root/mysql/logs:/logs:將主機(jī)目錄(/root/mysql)下的 logs 目錄掛載到容器中的 /logs。日志目錄
- -v /root/mysql/data:/var/lib/mysql :將主機(jī)目錄(/root/mysql)下的data目錄掛載到容器的 /var/lib/mysql 。數(shù)據(jù)目錄
- **-e MYSQL_ROOT_PASSWORD=123456:**初始化 root 用戶的密碼。
進(jìn)入容器,操作mysql
docker exec –it 容器id /bin/bash
安裝JDK
我們?cè)?user 目錄下建立一個(gè)新的 java文件夾,用來(lái)存放 JDK文件。
cd /usr/
mkdir java
cd java
之后我們準(zhǔn)備開(kāi)始下載 JDK1.8。
為了省事,這里我們給出下載好的 jdk1.8的百度云鏈接。鏈接里面有一個(gè) tar包,一個(gè) rpm包。任選一個(gè)下載即可,具體的操作方法后面都會(huì)說(shuō)明。
tar包是打包好的壓縮包,解壓就行
rpm包是安裝包,需要安裝
鏈接:https://pan.baidu.com/s/1lhJYRfjtpoUPFORMPUnIHg
提取碼:404k
因?yàn)槭峭饩W(wǎng),網(wǎng)速屬實(shí)是一言難盡。我們還是推薦使用剛才的百度云鏈接下載。
如果是服務(wù)器,文件下載完成后,使用 WinSCP軟件將 tar包或者 rpm包上傳到自己的服務(wù)器。如果不會(huì)使用 WinSCP,請(qǐng)參考這篇博客 使用WinSCP上傳文件到指定服務(wù)器
如果是虛擬機(jī),可以通過(guò)共享文件等方式將文件共享到虛擬機(jī),或者配置遠(yuǎn)程連接,再使用 WinSCP等軟件上傳文件到虛擬機(jī)。如果不會(huì)配置遠(yuǎn)程連接的,請(qǐng)參考這篇博客 虛擬機(jī)CentOS7設(shè)置遠(yuǎn)程連接
文件的位置就放在剛才建立好的 java文件夾,接下來(lái)我們開(kāi)始安裝jdk。
// tar包進(jìn)行解壓
tar -zxvf jdk-8u241-linux-x64.tar.gz
// rpm包進(jìn)行安裝
rpm ivh jdk-8u241-linux-x64.rpm
配置環(huán)境變量
JDK1.8已經(jīng)安裝完成,最后一步工作就是配置環(huán)境變量了。
Linux系統(tǒng)下配置環(huán)境變量有很多種方法,我們只需要選擇其中一種即可。這里我們選擇修改系統(tǒng)配置的文件 /etc/profile。
如果/etc/profile文件不可編輯,我們需要先修改其為可編輯才行
sudo chmod -v u+w /etc/profile
我們使用 Linux自帶的輸 vim編輯器來(lái)進(jìn)行編輯。輸入命令
vim /etc/profile
將如下配置添加至文件中。輸入命令
export JAVA_HOME=/usr/java/jdk1.8.0_241
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
配置添加完成后,按 “Esc”鍵,輸入 “:wq”,就可以保存文件并返回了。
驗(yàn)證是否安裝成功
java
javac
java -version
項(xiàng)目打包到服務(wù)器
我這里的項(xiàng)目是SpringBoot,在IDEA的命令窗口中運(yùn)行:
mvn clean package
就可以得到可以運(yùn)行的jar包了。(在target目錄中)
然后再通過(guò)ftp軟件將jar包上傳到服務(wù)器即可。
運(yùn)行jar包
nohup java -jar 對(duì)應(yīng)名稱.jar >temp.txt 2>&1 &
會(huì)將相關(guān)日志輸出到temp.txt中,方便查看。
Nginx安裝
這邊推薦通過(guò)wget的形式安裝,當(dāng)時(shí)看的一篇文章介紹了4種方式,結(jié)果折騰了半天都無(wú)法正常運(yùn)行。(一開(kāi)始是通過(guò)yum安裝,搞了好久都沒(méi)成功,卸載后,又通過(guò)其他方式進(jìn)行安裝)
//一鍵安裝上面四個(gè)依賴
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
手動(dòng)創(chuàng)建用戶和用戶組
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M
下載并解壓安裝包
cd /usr/local
mkdir nginx
cd nginx
//下載tar包
wget http://nginx.org/download/nginx-1.20.2.tar.gz
tar -xvf nginx-1.20.2.tar.gz
安裝nginx
//進(jìn)入目錄
cd nginx-1.20.2
//執(zhí)行命令
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx
//執(zhí)行make命令
make
//執(zhí)行make install命令
make install
修改環(huán)境變量
vim /etc/profile
添加到尾部
export PATH=$PATH:$NGINX_HOME/sbin # 注意這里,不要直接復(fù)制,而是將:$NGINX_HOME/sbin 之前命令的后面!
export NGINX_HOME=/usr/local/nginx/nginx-1.20.2
重新加載環(huán)境變量
source /etc/profile
修改配置服務(wù)文件
vi /lib/systemd/system/nginx.service
配置信息
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
創(chuàng)建服務(wù)
systemctl enable nginx.service
測(cè)試
瀏覽器輸入ip地址,看看是否進(jìn)入nginx首頁(yè)
一些常見(jiàn)的Nginx命令
systemctl start nginx #啟動(dòng)nginx
systemctl stop nginx #關(guān)閉nginx
systemctl restart nginx #重啟nginx
systemctl reload nginx #重新加載nginx配置文件
systemctl enable nginx #開(kāi)機(jī)自啟
域名+https
這邊踩坑很嚴(yán)重,弄了好幾天才完成。當(dāng)時(shí)域名是再cf上買(mǎi)的,然后就順帶用上了它們的cdn功能,但是國(guó)內(nèi)訪問(wèn)真的一言難盡,如果訪問(wèn)的用戶是國(guó)內(nèi)的話,我的評(píng)價(jià)是:真的不如不用?。?!當(dāng)時(shí)花了一天的時(shí)間去搜索如何解決,后面真的放棄了。
HTTPS
這邊推薦使用certbot。 安裝起來(lái)算是最簡(jiǎn)單的了。
通過(guò)certbot實(shí)現(xiàn)https
前提:你的網(wǎng)站現(xiàn)在通過(guò)域名可以正常訪問(wèn)。(certbot會(huì)自動(dòng)證書(shū)和密鑰并且?guī)臀覀冃薷膎ginx配置文件內(nèi)容)
安裝 EPEL
yum -y install epel-release
yum install python2-certbot-nginx
安裝完畢后,運(yùn)行
certbot --nginx
# 如果沒(méi)有配置nginx的環(huán)境變量可能會(huì)報(bào)錯(cuò):
# Saving debug log to /var/log/letsencrypt/letsencrypt.log
# Error while running nginx -c /etc/nginx/nginx.conf -t.
# 那么我們就自己指定nginx的運(yùn)行目錄:certbot --nginx --nginx-server-root=nginx配置文件對(duì)應(yīng)的目錄
命令執(zhí)行后首先會(huì)提示輸入一個(gè)郵箱地址,主要作用是訂閱一些通知,輸入后回車。
[root@izuf6fco0zwyipdq9485s2z ~]# certbot --nginx
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
▽
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): demo@mail.com // 演示郵箱
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
回車后 Certbot 就會(huì)自動(dòng)請(qǐng)求下載 Let’s Encrypt 證書(shū),并設(shè)置 Nginx 配置文件。期間會(huì)有一些同意相關(guān)協(xié)議和選擇哪個(gè)網(wǎng)站配置的交互,這個(gè)看輸出文字就能明白意思。
Cleaning up challenges
Deploying Certificate to VirtualHost: //這邊會(huì)顯示你的網(wǎng)站配置文件目錄
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Redirecting all traffic on port 80 to ssl in //這邊會(huì)顯示你的網(wǎng)站配置文件目錄
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://kisstime.top
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=kisstime.top
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
.../fullchain.pem
Your key file has been saved at:
.../privkey.pem
Your cert will expire on 2019-02-14. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
接著命令交互會(huì)提示是否將所有 HTTP 重定向到 HTTPS,我這邊選擇全部重定向也就是「2」。
OK,當(dāng)完成上面最后一步后,輸入如上信息后就表明 HTTPS 配置成功了!我們可以通過(guò)提示中的 SSL Server Test 網(wǎng)址來(lái)測(cè)試網(wǎng)站是否能夠 HTTPS 來(lái)進(jìn)行訪問(wèn)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-796475.html
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=kisstime.top
引用
1.Linux系統(tǒng)安裝JDK1.8 詳細(xì)流程
2.通過(guò) Certbot 安裝 Let’s Encrypt 證書(shū),來(lái)實(shí)現(xiàn)全站的 HTTPS 訪問(wèn)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-796475.html
到了這里,關(guān)于個(gè)人網(wǎng)站搭建 服務(wù)器http切換到https 網(wǎng)站協(xié)議切換到https的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!