在Linux环境下部署项目遇到的一些问题

1.两台服务器,想把一台服务器(192.168.10.90)的资源文件夹挂载到另一台服务器(192.168.10.10)对应的目录中:

  需求:主服务器中有一个资源文件夹,专门管理系统中的图片,文件等资源,而从服务器中也有对应目录,想挂载到主服务器中。比如:

将从192.168.10.10服务器下的 /home/要映射的目录/ ,映射为主192.168.10.90服务器下的 /home/被映射的目录/
简单说,从服务器(10)需要用到主服务器(90)下的资源文件夹,也就是把从服务器挂载到主服务器上,这样从服务器上传的文件也到了主服务器中,达到共享文件夹过程
1、分别在192.168.10.10、192.168.10.90服务器上安装  nfs、rpcbind;
yum install nfs-utils rpcbind    (出现提示y/n之类的提示,输入y就可以了)
2、在主192.168.10.90(被映射的服务器)上修改/etc/exports文件最后面添加一行代码,暴露目录给从192.168.10.10服务器,并分配该目录的权限给它;
/home/被映射的目录   192.168.10.10 (rw,async,no_root_squash)
*号代表允许所有的ip挂载
3、两台服务器都启动nfs和rpcbind服务:  
service rpcbind start
service nfs start
4、在从192.168.10.10服务器上的防火墙配置文件上添加开放下面三个端口(执行命令:vi /etc/sysconfig/iptables);
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4046 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
5、在从192.168.10.10上启动rpcbind和nfs服务,并挂载;

mount -t nfs 192.168.10.90:/home/被映射的目录   /home/要映射的目录
在进行mount命令执行,时报错access denied by server while mounting。我解决的方式是在第2步骤中加了insecure.即

修改配置文件/etc/exports,加入 insecure 选项,重启nfs服务,再尝试挂载。(*表示所有ip,如果这里有加其它ip,记得一定要重启nfs服务啊)
/home/nfsshare/  *(insecure,rw,async,no_root_squash)

 

6、挂载是否成功,可以使用nf命令查看
执行命令:df -h

2.Linux给当前用户指定目录授权命令:

使用命令:

1 chown -R user:user ./local

说明:user 为当前用户;local为指定文件夹。

3.Linux防火墙:

首先确认下当前Linux的版本。因为不同版本查看防火墙的命令不同,下面使用的命令是Red Hat的命令:

防火墙操作
执行命令:systemctl stop(status|start) iptables(或者firewalld)

问题:
虚拟机上安装centOS7,配置Tomcat并成功启动。但是在浏览器里却无法访问Tomcat 8080端口。
tomcat的配置,请参考文章:Linux-CentOS7 配置 Tomcat
原因:
因为CentOS 7或RHEL 7或Fedora,默认防火墙是由firewalld来管理,而firewalld没有对8080端口开放,所以进行8080端口开放配置。
CentOs 7 之前的版本,由iptables控制Linuxs的端口。
CentOS升级到7之后,无法使用iptables控制Linuxs的端口,因为是Centos 7使用firewalld代 替了原来的iptables。
以下提供两种方式解决该问题。

解决方案一,还原传统的iptables管理方式。

1、执行命令设置firewalld
systemctl stop firewalld
systemctl mask firewalld
在这里插入图片描述2、安装iptables-services
执行命令:yum install iptables-services
在这里插入图片描述如果不安装,直接执行iptables相关命令会报错:
Failed to stop iptables.service: Unit iptables.service not loaded.

3、关闭防火墙
执行命令:systemctl stop iptables

4、编辑 vi /etc/sysconfig/iptables(第四不我没有执行,问题就解决了)
添加以下内容并保存退出:
#允许8080端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
#允许3306端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
#允许9904端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9904 -j ACCEPT

在这里插入图片描述5、重启防火墙
执行命令:systemctl restart iptables

6、打开外部浏览器,输入http://centOS IP:8080
即可看到Tomcat欢迎界面!

解决方案二,firewalld 进行8080端口开放配置
1、在firewalld 上开放8080端口
输入命令:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
命令解析:
–zone #作用域
–add-port=8080/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数设置,重启后会失效。
2、重启防火墙
输入命令:firewall-cmd --reload

在这里插入图片描述

 

 对于Centos6版本,使用下面命令,【Linux(CentOS6.5) 开放端口,配置防火墙】

 打开配置文件 
[root@localhost ~]# vi /etc/sysconfig/iptables
正确的配置文件 
# Firewall configuration written by system-config-firewall 
# Manual customization of this file is not recommended. 
*filter 
:INPUT ACCEPT [0:0] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [0:0] 
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -j REJECT –reject-with icmp-host-prohibited 
-A FORWARD -j REJECT –reject-with icmp-host-prohibited 
COMMIT

-A INPUT -m state –state NEW -m tcp -p tcp –dport * -j ACCEPT
注意点:新开放的端口一定要在端口22后面 
重启防火墙使配置生效 
[root@localhost ~]# /etc/init.d/iptables restart
其它 :
查看开放端口 
[root@localhost ~]# /etc/init.d/iptables status
关闭防火墙 
[root@localhost ~]# /etc/init.d/iptables stop

 
posted @ 2020-03-16 19:37  goodTOgreat  阅读(682)  评论(0编辑  收藏  举报