配置公鑰 和密鑰 能夠登陸服務器不須要密碼 看是否已經存在公鑰和密鑰 看用戶文件夾下是否存在 javascript
ctrl +d 退出用戶 sudo rm -f xxx 刪除一個文件html
//鏈接
ssh ubuntu@ip地址
複製代碼
// 先給root一個密碼
sudo passwd root
// 而後切換到root su root
複製代碼
//在root下
sudo adduser shoukailiang
增長一個用戶
//而後在root下給skl sudo 權限
gpasswd -a shoukailiang sudo
//
sudo visudo
增長下面的shoukailiang
複製代碼
ctrl +X保存 以後shift+Y enter 退出java
能夠在root 下進入skl 用戶 su skl 或者 sudo su shoukailiangnode
//重啓服務
sudo service ssh restart
複製代碼
//生成公鑰和私鑰
ssh-keygen -t rsa -C "shoukailiang@qq.com"
複製代碼
//配置文件 修改默認端口
sudo vi /etc/ssh/sshd_config
複製代碼
出現
: ssh: connect to host ip地址 port 22: Connection refusedreact
這時候就要虛入輸入端口號了webpack
//更新
sudo apt-get update
//安裝一些
sudo apt-get install vim openssl build-essential libssl-dev wget curl git
//找到github上的nvm
https://github.com/creationix/nvm
找到安裝腳本
複製代碼
curl -o- raw.githubusercontent.com/creationix/… | bashnginx
裝完後若發現nvm 不是一個命令 在來一個命令窗口git
nvm install v8.2.1github
nvm use v8.2.2web
nvm alias default v8.2.1
用一個nrm 包
npm --registry=http://registry.npm.taobao.org install -g nrm
nrm use taobao
npm i pm2 webpack gulp grunt-cli -g
建立 sudo vi app.js
var http=require('http');
var server=http.createServer(function (req,res) {
res.writeHead(200,{'Content-Type':'text/plain'})
res.end('Hello SKL\n');
})
server.listen(8081);
console.log('Server running at http://ip地址:8081');
複製代碼
以後 node app.js 就能夠在瀏覽器中訪問 127.0.0.1:8081
中止apache 服務 sudo service apache2 stop
移除Apache 2
sudo update-rc.d -f apache2 remove
sudo apt-get remove apache2
複製代碼
下載 nginx
sudo apt-get install nginx
複製代碼
upstream blog{
server 127.0.0.1:8081;
}
# NGINX Server Instance,PORT 80
server {
listen 80;
server_name ip地址;
# Proxy to the Node instance
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://blog;
proxy_redirect off;
}
}
複製代碼
4.sudo nginx -t 測試是否成功 5. sudo nginx -s reload 重啓 nginx
以後輸入ip地址 就能夠看到了 把8081 的服務都導向到Nginx的80端口
讓 Nginx的版本信息在瀏覽器的頭信息中不那麼明顯
cd /etc/nginx
sudo vi nginx.conf
去掉下面配置文件前的# 保存
複製代碼
去掉
而後 sudo service nginx reload命令:
xxxx
sudo apt-get install -y mongodb-org
其中這一步速度很慢,改爲阿里雲的鏈接
cd /etc/apt/sources.list.d
vi mongodb-org-3.4.list (注意看安裝時的版本)
改爲:
deb [ arch=amd64,arm64 ] http://mirrors.aliyun.com/mongodb/apt/ubuntu xenial/mongodb-org/3.6 multiverse
命令:
// 改過鏡像後要upadte一下
xxxx
xxx
xxx
複製代碼
sudo service mongod start
以後 mongo就啓動了
複製代碼
若遇到沒法寫入。加sudo
mongodb 默認跑在27017 端口上
複製代碼
//修改
sudo vi /etc/mongod.conf
port 改爲了19997
複製代碼
scp ./test.html shoukailiang@ip地址0:/home/shoukailiang/test
scp -P 8888 ant-mobile-recruit-app.tar shoukailiang@ip地址:/home/shoukailiang/
複製代碼
tar
-c : 打包
-v : 顯示過程
-f : 指定打包後的文件名
-x : 解打包
-z:壓縮爲.tar.gz格式
複製代碼
//壓縮
tar -cvf japan.tar japan
tar -zcvf japan.tar.gz japan
//解壓
tar -xvf japan.tar
tar -zxvf japan.tar
複製代碼
cd /etc/nginx/conf.d
sudo mv shoukailiang-cn-8081.conf www-shoukailiang-cn-3000.conf
修改配置文件
upstream blog{
server 127.0.0.1:3000;
}
# NGINX Server Instance,PORT 80
server {
listen 80;
server_name www.shoukailiang.cn;
# Proxy to the Node instance
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://blog;
proxy_redirect off;
}
}
// 重啓nginx
sudo nginx -s reload
複製代碼
sudo apt-get update && sudo apt-get upgrade
sudo iptables -F //先清掉全部的規則
sudo vi /etc/iptables.up.rules
------------------------------------------
*filter
# 容許全部創建起來的鏈接
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 容許全部出去的流量
-A OUTPUT -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
# ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# allow ssh port login
-A INPUT -p tcp -m state --state NEW --dport 8888 -j ACCEPT
# MongoDB connection
-A INPUT -s 127.0.0.1 -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -d 127.0.0.1 -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
# 3000端口
-A INPUT -s 127.0.0.1 -p tcp --destination-port 3000 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -d 127.0.0.1 -p tcp --source-port 3000 -m state --state ESTABLISHED -j ACCEPT
# 9093端口
-A INPUT -s 127.0.0.1 -p tcp --destination-port 9093 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -d 127.0.0.1 -p tcp --source-port 9093 -m state --state ESTABLISHED -j ACCEPT
# 記錄被拒絕的請求
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7
# drop incoming sensitive connections
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 150 -j DROP
# reject all other inbound
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
-------------------------------------------
sudo iptables-restore </etc/iptables.up.rules //載入規則
sudo ufw status //查看防火牆狀態
sudo ufw enable //激活
sudo vi /etc/network/if-up.d/iptables //讓他開機自動啓動
·-----------------------------------
#!/bin/sh
iptables-restore /etc/iptables.up.rulea
-----------------------------------------------------
sudo chmod +x /etc/network/if-up.d/iptables
### 出現invalid host header的問題
複製代碼
// react的話在config裏面的webpackDevServer.config.js裏面加一個
disableHostCheck: true
複製代碼
// 在騰訊雲上申請證書(具體詳見文檔:https://cloud.tencent.com/document/product/400/4143)
// 把證書下載下來上傳到服務器
// 修改配置文件
upstream blog{
server 127.0.0.1:3000;
}
# NGINX Server Instance,PORT 80
server {
listen 80;
server_name www.shoukailiang.cn;
# rewrite ^(.*) https://$host$1 permanent;
return 301 https://www.shoukailiang.cn$request_uri;
}
server {
listen 443;
server_name www.shoukailiang.cn; #填寫綁定證書的域名
ssl on;
ssl_certificate /home/shoukailiang/https-key/1_www.shoukailiang.cn_bundle.crt;
ssl_certificate_key /home/shoukailiang/https-key/2_www.shoukailiang.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照這個協議配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #按照這個套件配置
ssl_prefer_server_ciphers on;
# if($ssl_protocol = ""){
# rewrite ^(.*) https://$host$1 permanent;
# }
# Proxy to the Node instance
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://blog;
proxy_redirect off;
}
}
測試nginx
重啓nginx
複製代碼
nohup npm start &
https://segmentfault.com/q/1010000004455598
lsof -i 查看端口
複製代碼