Xshell 连接linux工具
账号密码
命令 --把文件变成压缩包 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的端口
服务器安装8.0mysql 下载数据库 下载地址
上传数据库 使用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文件夹
给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
创建配置文件 在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 # #
开机自启 --进入文件夹 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
配置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
登入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;
开放服务器端口 手动添加
Navicat连接
服务器部署项目 数据库上传服务器
修改项目的JDBC 修改成功后先在本地运行一下,确保数据库没有问题
打包war 双击war:war
上传服务器 找到生成的War包 上传到服务器的tomcat 的webapps下
清理原项目的war 双击clean 清理war包
访问测试 服务器公网IP/war包的名字
Linux运行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 / { } }
参数说明
参数 参数说明 listen SSL访问端口号,设置为“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 : 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 : proxy_set_header X-Real -IP $remote_addr; }
第二种情况 proxy_pass结尾没有/ 代理后的实际地址:http://localhost:8080/api/login
location /api/ { proxy_pass http : proxy_set_header X-Real -IP $remote_addr; }
第三种情况 proxy_pass最后有/web 代理后的实际地址:http://localhost:8080/weblogin
location /api/ { proxy_pass http : 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 : 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 : location / { proxy_pass http : 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
验证 安装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服务 查看docker版本 设置开机自启动 安装Docker Compose 安装Docker Compose前需要先安装Docker和Python,请参考上一节
安装pip3 yum -y install python3-pip
更新 pip3 install --upgrade pip
安装Docker Compose pip3 install docker-compose
查看版本 其他 创建文件
touch docker-compose.yaml
启动服务
查看日志
停止服务
端口问题 查看占用端口的进程 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 更新软件包 安装nodejs sudo yum install epel-release sudo yum install nodejs
验证 下载npm 验证npm