Xshell

连接linux工具

image

账号密码

image

命令


--把文件变成压缩包
zip -r 文件名.zip 文件名(路径)

--连接服务器
ssh root@IP

--上传文件到服务器
scp 文件名 root@IP:放的路径

-- 指定端口上传
scp -P 端口 文件名 root@IP:放的路径

--下载文件到本地
scp root@IP:下的文件 存在本地的位置

-- 指定端口下载文件到本地
scp -P 端口 root@IP:下的文件 存在本地的位置

-- 进入root用户
sudo su 进入root用户

-- 类似我的文档
cd~ 进入用户名下

-- 设置为最高权限
chmod 777 文件名

-- 创建文件夹
mkdir 文件夹名

-- 进入根目录
cd / 进根目录

-- 查看权限
ls -l 查看权限
ll 查看权限

-- 查看是否开启防火墙
firewall-cmd --state

-- 查看所有文件
ls 查看所有文件

-- 删除文件夹
rmdir 文件夹

--删除带文件的文件夹或者文件
rm -r 文件

--删除不提示
rm -rf 文件名

--拷贝
cp 路径 拷贝文件到哪个地方 cp /etc/hosts /opt/xianxian/hosts

-- 移动文件
mv 文件名 路径

-- 查看当前路径
pwd 当前路径

--创建文件
touch 文件名

-- 建立组
groupadd 组名 groupadd c1901

--新建用户
useradd 用户名
useradd 用户名 -g 组名 分到指定组

--切换用户
su 用户名

--查看所有用户
cat /etc/shadow

--删除用户
userdel 选项 用户名
userdel -r sam -r:把用户的主目录也一起删除

--用户修改密码
passwd 选项 用户名
passwd 用户名

--删除已有用户组
groupdel 用户组

--查看树型结构
tree
--下载树形结构
yum -y install tree

--查看所有组
cat /etc/group

--清屏
clear

--文件编辑
vim 文件名 按i进入编辑状态 输入完 按esc 输入:wq 保存退出

--解压文件
tar -xzvf 文件名

--解压zip文件
unzip adt-bundle-linux-x86_64-20131030.zip

--解压.tar文件
tar -xvf 文件名

--当前路径
./***

--刷新
source ~/.bashrc

--持续查看文件日志的输出清空
tail -f 文件

--重启、关机
reboot
shutdown -h 10 // 10分钟后关机
shutdown -h now

### 防火墙
开防火墙 systemctl start firewalld.service

关闭防火墙 systemctl stop firewalld.service

查看防火墙状态 systemctl status firewalld.service

重启防火墙 firewall-cmd --reload

开放80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent

#查看本机已经启用的监听端口
#centos7以下使用netstat -ant,7使用ss
ss -ant

#centos7查看防火墙开放的端口信息
firewall-cmd --list-ports

#删除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent

--更新源
yum -y update

服务器配置Java

--配置java环境
vim ~/.bashrc 文件末尾加入下面两行
export JAVA_HOME=/usr/java/jdk1.8
export PATH=.:$JAVA_HOME/bin:$PATH

--刷新
source ~/.bashrc

服务器安装tomcat

--更改端口
tomcat -bin-conf-server.xml
--编辑server.xml
vim server.xml
--修改端口为80

--打开tomcat
startup.sh

--关闭tomcat
shutdown.sh

--查看端口
ss -ant

--关闭防火墙
systemctl stop firewalld.service

--重启防火墙
firewall-cmd --reload

--将文件上传到tomcat 下的webapps
访问:ip/项目名
--项目直接放webapps下面的root下
访问: ip

--服务器需要在安全组开发为80的端口

image

服务器安装8.0mysql

此方法已失效,可以参考本地博客单独的 Centos安装8.0教程

下载数据库

下载地址

image

上传数据库

使用xftp上传mysql安装包到服务器

创建用户

--创建组
groupadd mysql
--把用户加入组
useradd -r -g mysql mysql

解压

tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar

删除原压缩包

rm -rf mysql-8.0.26-linux-glibc2.12-x86_64.tar

移动更改名字

mv mysql-8.0.26-linux-glibc2.12-x86_64 ./mysql8.0

建data文件夹

在mysql8.0下建data文件夹

mkdir data

给data授权

chown -R root:root /usr/java/mysql8.0

chown -R mysql:mysql /usr/java/mysql8.0/data/

初始化数据库

这个密码要先保存起来 后面登入的时候需要用到

/usr/java/mysql8.0/bin/mysqld --initialize --user=root --basedir=/usr/java/mysql8.0 --datadir=/usr/java/mysql8.0/data

image

创建配置文件

support-files 文件夹下创建 my-default.cnf

--进入support-files
cd support-files

--创建my-default.cnf文件
touch my-default.cnf

--给my-default.cnf设置权限
chmod 777 ./my-default.cnf

编辑my.cnf文件

--进入
vim /etc/my.cnf


[mysqld]
basedir=/usr/java/mysql8.0
datadir=/usr/java/mysql8.0/data
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_connections=1000
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
pid-file=/tmp/mysql.pid
port=3306
max_allowed_packtet=32M
default-authentication-plugin = mysql_native_password
login_bin_trust_function_creators =ON
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d

开机自启

--进入文件夹
cd /usr/java/mysql8.0/support-files
--复制文件
cp mysql.server /etc/init.d/mysql
--设置权限
chmod +x /etc/init.d/mysql

注册服务

--注册服务
chkconfig --add mysql
--检测服务
chkconfig --list mysql

配置路径

--进入编辑
vim /etc/ld.so.conf

在lo.so.conf下添加
/usr/java/mysql8.0/lib

image

配置mysql环境

--进入编辑
vim /etc/profile
--添加内容
export PATH=$PATH:/usr/java/mysql8.0/bin:/usr/java/mysql8.0/lib
--刷新文件
source /etc/profile

启动mysql服务

--启动服务
service mysql start

--关闭服务
service mysql stop

image

登入mysql修改密码

--登入命令
mysql -uroot -p

--修改密码
alter user 'root'@'localhost' identified by '新密码';
alter user 'root'@'localhost' identified by '123456789';

开启远程连接

update user set host = '%' where user = 'root';
GRANT ALL ON *.* TO 'root'@'%'; 2次
alter user 'root'@'%' identified with mysql_native_password by 'root';
//任何远程主机都可以访问数据库 需要执行2次
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
flush privileges;

开放服务器端口

手动添加

image

image

服务器部署项目

数据库上传服务器

image

修改项目的JDBC

修改成功后先在本地运行一下,确保数据库没有问题

image

打包war

双击war:war

image

上传服务器

找到生成的War包 上传到服务器的tomcat 的webapps下

image

清理原项目的war

双击clean 清理war包

image

访问测试

服务器公网IP/war包的名字

image

Linux运行Java

javac 文件名.java
java 文件名

nginx

安装方式一

安装

安装方式二

sudo yum install epel-release
sudo yum install nginx

## 启动
sudo service nginx restart

## 启动
sudo systemctl start nginx

## 自动启动
sudo systemctl enable nginx

## 重新加载
sudo systemctl reload nginx

## 停止
sudo systemctl stop nginx

nginx设置开机自启

创建nginx.service

sudo nano /etc/systemd/system/nginx.service

添加内容

[Unit]
Description=Nginx HTTP Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/webserver/nginx/sbin/nginx
ExecReload=/usr/local/webserver/nginx/sbin/nginx -s reload
ExecStop=/usr/local/webserver/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重新加载

sudo systemctl daemon-reload
sudo systemctl enable nginx.service

查看状态

sudo systemctl status nginx.service

命令

/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx

SSL证书配置

server {
listen 443 ssl;
root /usr/blog;#站点目录
server_name localhost;
ssl_certificate xxxx.crt;#证书路径
ssl_certificate_key xxx.key;#证书路径
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {

}
}

推荐第二种
server {
listen 443 ssl;
root /usr/www/blog;#站点目录
server_name www.test.com; #用户服务器的域名
ssl on;
ssl_certificate /usr/server.crt;
ssl_certificate_key /usr/server.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;
location / {

}
}

参数说明

参数参数说明
listenSSL访问端口号,设置为“443”。
SSL设置为“on”,启用SSL功能。
ssl_certificate证书文件“server.crt”。 设置为“server.crt”文件的路径,且路径中不能包含中文字符, 例如“cert/server.crt”。
ssl_certificate_key私钥文件“server.key”。 设置为“server.key”的路径,且路径中不能包含中文字符, 例如“cert/server.key”。
ssl_protocols使用的协议。
ssl_ciphers配置加密套件,写法遵循OpenSSL标准。

配置404错误页

在SSL证书配置中添加SSL配置参考
root的路径下面必须要有一个404.html文件

# 关键参数:这个变量开启后,我们才能自定义错误页面,当后端返回404,nginx拦截错误定义错误页面
proxy_intercept_errors on;
error_page 404 403 500 502 503 504 /404.html;
# 承接上面的location。
location = /404.html {
# 放错误页面的目录路径。
root /usr/java/www/blog; #路径
}

网站配置

server
{
listen 80;#监听端口
server_name test.com;#域名
index index.html;
root /usr/java/www/yblog;#站点目录
rewrite ^(.*) https://test.com$1 permanent; #http重定向为https
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 7d;
# access_log off;
}
location ~ .*\.(js|css)?$
{
expires 7d;
# access_log off;
}
access_log off;
}

反向代理

假设域名为 test.com,这个域名开启https,在服务器下部署了其他内容也需要使用,用同一域名在后面改变路径达到访问不同项目的效果

假设请求:http://localhost/api/login

第一种情况

proxy_pass结尾有/
代理后的实际地址:http://localhost:8080/login

location /api/ {
proxy_pass http://localhost:8080/;
proxy_set_header X-Real-IP $remote_addr;
}

第二种情况

proxy_pass结尾没有/
代理后的实际地址:http://localhost:8080/api/login

location /api/ {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
}

第三种情况

proxy_pass最后有/web
代理后的实际地址:http://localhost:8080/weblogin

location /api/ {
proxy_pass http://localhost:8080/web;
proxy_set_header X-Real-IP $remote_addr;
}

示例

server {
listen 443 ssl;
root /usr/java/www/yblog;#站点目录
server_name localhost;
ssl_certificate /usr/xxx.crt;
ssl_certificate_key /usr/xxx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {

}
# 路径
location /pyq/ {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header X-Real-IP $remote_addr;
}
}

反代理子域名

主域名是tets.com 给子域名配置SSL 和 代理

server{
listen 443 ssl;
server_name pt.test.com; #子域名
ssl on;
ssl_certificate /usr/server.crt;
ssl_certificate_key /usr/server.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;
# 代理 http://127.0.0.1:8000/ 这个地址是需要访问它下面的all 实际路径 pt.test.com/all
location / {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header X-Real-IP $remote_addr;
}
}

安装python环境

安装依赖

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel yum vim gcc

安装python

wget https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz
tar -zxf Python-3.8.8.tgz && cd Python-3.8.8
./configure --prefix=/usr/local/python3
make && make install

建立软连接

ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3

验证

python3 --version

安装git

yum install -y git

安装docker

安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

配置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker

yum update -y && yum install -y docker-ce

开启docker服务

systemctl start docker

查看docker版本

docker -v

设置开机自启动

systemctl enable docker

安装Docker Compose

安装Docker Compose前需要先安装Docker和Python,请参考上一节

安装pip3

yum -y install python3-pip

更新

pip3 install --upgrade pip

安装Docker Compose

pip3 install docker-compose

查看版本

docker-compose version

其他

创建文件

touch docker-compose.yaml

启动服务

docker-compose up -d

查看日志

docker-compose logs -f

停止服务

docker-compose down

端口问题

查看占用端口的进程

netstat -lnp|grep 端口号 如8090

示例
[root@ecs-357510 halo]# netstat -lnp|grep 8090
tcp6 0 0 :::8090 :::* LISTEN 6035/java

查看进程信息

ps .

示例
[root@ecs-357510 halo]# ps 6035
PID TTY STAT TIME COMMAND
6035 ? Sl 62:52 java -jar ColudeCos-0.0.1-SNAPSHOT.jar

关闭进程

kill -9 PID号

示例
kill -9 6035

安装NodeJS

更新软件包

sudo yum update

安装nodejs

sudo yum install epel-release

sudo yum install nodejs

验证

node -v

下载npm

sudo yum install npm

验证npm

npm -v