最近開發(fā)的友鏈聯(lián)盟項(xiàng)目即將"竣工”问慎,準(zhǔn)備拿到公有云Ubuntu是測試下萍摊,想要達(dá)到的理想狀態(tài)有如下幾點(diǎn):
- 端口保持9090,發(fā)布spring boot的jar包如叼,后臺(tái)運(yùn)行
- nginx部署冰木,強(qiáng)制https訪問應(yīng)用
- 使用acme.sh來生成、安裝ssl證書
- 開啟防火墻笼恰,打開80踊沸、443端口,關(guān)閉9090端口(避免直接訪問9090打開應(yīng)用)
目前已經(jīng)完成上面的要求社证,可以嘗試訪問http://sitefriendlinks.com逼龟、http://sitefriendlinks.com:9090,前者會(huì)強(qiáng)制跳轉(zhuǎn)到https://sitefriendlinks.com追葡,后者無法打開审轮。
環(huán)境安裝
-
nginx
apt install nginx
安裝后自動(dòng)就啟動(dòng)了,你可以用如下命令進(jìn)行開啟和關(guān)閉:
service nginx stop service nginx start service nginx restart # 重啟
-
mysql
apt install mysql-server
詳情請看:http://www.reibang.com/p/3821c2603b92
需要注意修改root密碼:
show databases辽俗; use mysql; update user set authentication_string=PASSWORD("yourpassword") where user='root'; update user set plugin="mysql_native_password"; flush privileges; quit;
-
java 8
apt install openjdk-8-jre-headless
部署nginx
server {
listen 80;
server_name sitefriendlinks.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443;
server_name sitefriendlinks.com;
ssl on;
ssl_certificate /etc/nginx/ssl/fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/sitefriendlinks.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:9090/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
}
使用acem.sh安裝證書
參考文檔:https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E
關(guān)鍵步驟:
- 創(chuàng)建別名
alias acme.sh=~/.acme.sh/acme.sh
- 生成證書
acme.sh --issue -d mydomain.com --nginx
- 安裝證書
acme.sh --installcert -d <domain>.com \
--key-file /etc/nginx/ssl/<domain>.key \
--fullchain-file /etc/nginx/ssl/fullchain.cer \
--reloadcmd "service nginx force-reload"
注意,你需要手動(dòng)創(chuàng)建/etc/nginx/ssl目錄篡诽,不如上面的安裝命令會(huì)報(bào)路徑錯(cuò)誤
此時(shí)崖飘,你已經(jīng)能正常用https打開你的網(wǎng)站了
打開防火墻
Ubuntu的防火墻命令是ufw,參考:https://www.cnblogs.com/yuanlipu/p/7103740.html
先查詢下防火墻是否打開:
sudo ufw status
如果沒打開杈女,則開啟防火墻
sudo ufw enable
默認(rèn)情況下朱浴,防火墻是會(huì)把所有端口都關(guān)閉的,不允許外界訪問达椰,但是我們要做三件事:開啟80翰蠢、443端口,關(guān)閉9090端口
sudo ufw allow 80
sudo ufw allow 443
sudo ufw deny 9090
此時(shí)啰劲,咱們的服務(wù)器會(huì)變的非常安全梁沧,注意哦,因?yàn)闆]打開3306端口蝇裤,所以你的數(shù)據(jù)庫是無法遠(yuǎn)程訪問的廷支,如需要?jiǎng)t打開3306端口即可。
后臺(tái)運(yùn)行spring boot工程
把打包好的jar包發(fā)到服務(wù)器(通常用scp命令即可)栓辜,然后執(zhí)行如下命令即可后臺(tái)啟動(dòng):
nohup java -jar sitefriendlinks.jar >> ./output.log 2>&1 &
ok恋拍,部署完成!
by cmlanche.com