【自己记录一下】用centos7做虚拟机,安装nginx和vsftpd和redis主从集群

本文介绍如何在 CentOS 7 中安装基础软件,包括 JDK、Nginx、FTP 服务及 Redis 主从复制集群,并提供网络配置、防火墙设置及服务管理等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【1】root账户密码: root
安装包:CentOS-7-x86_64-Minimal-1804.iso


【2】选默认分区。
Linux默认可分为3个分区,分别是swap分区,根分区和boot分区(新手建议不要为boot分区分配磁盘,系统会把他放到根目录中)。
  /  ----根目录,唯一必须挂载的目录。不要有任何的犹豫,选一个分区,挂载它!
swap ----交换分区。它的容量  只要约等于您的物理内存就可以了,最低512M。如果超过了您物理内存两倍的容量,那绝对是一种浪费。




【3】启动vmware的centos,发现没有网络。
1.把/etc/sysconfig/network-scripts/ifcfg-ens33中的“ONBOOT=no”改为“ONBOOT=yes”
2.重启网卡service network restart
就OK了


【4】centos7取消了ifconfig,用 ip addr 查看IP地址,然后用SecureCRT连接,进行管理


【5】已经做了如下操作。
【检查软件升级】yum check-upgrade
【升级所有软件】yum update
【安装gcc编译器】yum install gcc 
【安装wget下载】yum -y install wget




--------------------【以下按需要安装---jdk】-----------------------------------------------------------------  
【11】安装JDK,path之类的已经自动设置好了
yum list java*
yum list java-1.7*  
yum install java-1.7.0-openjdk -y 


--------------------【以下按需要安装---nginx】-----------------------------------------------------------------  
【12】安装nginx; 注意要先新建目录 /var/temp/nginx  和/var/run/nginx/
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel


cd /home
wget http://nginx.org/download/nginx-1.15.1.tar.gz


tar -zxvf nginx-1.15.1.tar.gz
cd nginx-1.15.1


1.简易安装nginx:
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/nginx.pid


make
make  install


cd /usr/local/nginx
ls


./nginx


ps -aux|grep nginx


./nginx -s quit


启动nginx后,在其他电脑无法访问。
首先在centos下尝试使用$curl http://127.0.0.1命令访问nginx。
如果能够成功获取到nginx的默认主页。那么,问题基本出在防火墙上,centos 7的防火墙使用firewalld。所以,你需要让firewalld放行80端口。
CentOS 7默认使用的是firewall作为防火墙,我们要关闭防火墙。


firewall:
systemctl disable firewalld.service #禁止firewall开机启动
systemctl start firewalld.service #启动firewall
systemctl stop firewalld.service #停止firewall


2.进入/usr/lib/systemd/system目录下,编写nginx.service文件:
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target


[Service]
Type=forking
ExecStart=/usr/local/nginx/nginx -c /usr/local/nginx/nginx.conf
ExecReload=/usr/local/nginx/nginx -s reload
ExecStop=/usr/local/nginx/nginx -s stop


[Install]
WantedBy=multi-user.target


3.设置开机启动nginx.service服务:
systemctl enable nginx.service


--------------------【以下按需要安装---ftp组件】-----------------------------------------------------------------  
yum -y install vsftpd
useradd ftpuser
passwd ftpuser


设置开机启动:
systemctl enable vsftpd.service


启动vsftpd服务
systemctl start  vsftpd.service


1.关闭SELinux
vi /etc/selinux/config


#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
#保存退出


2.关闭防火墙。firewall:


systemctl disable firewalld.service #禁止firewall开机启动
systemctl start firewalld.service #启动firewall
systemctl stop firewalld.service #停止firewall


3.这个是运行登录ftp的名单 在文件最后加上 ftpuser
vi /etc/vsftpd/user_list 


4.编辑配置文件 
vi /etc/vsftpd/vsftpd.conf
修改下面的:


anonymous_enable=NO      #不开启匿名用户--改为NO
chroot_local_user=YES    #限制用户只能在自己的目录活动--改为不注释
ls_recurse_enable=NO #是否允许使用ls -R等命令--改为不注释NO
listen=YES #监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务--改为YES
# listen_ipv6=YES #监听ipv6端口,还没普及呢!--注释这行


#底部新增这2行,允许写权限
userlist_deny=NO
allow_writeable_chroot=YES #允许写权限--底部新增这行


--------------------【以下按需要安装---redis主从复制高可用集群】----------------------------------------------------------------- 
1.单机安装测试:
cd /home/
wget http://download.redis.io/releases/redis-3.2.12.tar.gz
tar xzf redis-3.2.12.tar.gz
cd redis-3.2.12
make


vi redis.conf
找到:daemonize no
改为:daemonize yes   


cd src
./redis-server ../redis.conf 


./redis-cli
ping        收到PONG的结果,表示成功。


2.配置1主2从的redis主从复制和自动切换。
ps -aux|grep redis
kill -9  已运行的redis-server的pid


cd /home/
mv redis-3.2.12  redis-master
cp -rf redis-master redis-slave1
cp -rf redis-master redis-slave2


vi redis-slave1/redis.conf    端口改成6380    找到并修改 slaveof 127.0.0.1 6379
vi redis-slave2/redis.conf    端口改成6381    找到并修改 slaveof 127.0.0.1 6379


cd /home/
cd redis-master/src/
./redis-server ../redis.conf 


cd /home/
cd redis-slave1/src/
./redis-server ../redis.conf 


cd /home/
cd redis-slave2/src/
./redis-server ../redis.conf 


ps -aux|grep redis  看一下是不是3个redis都启动了。


3. set一个数据到master,看一下2个slave是否有值。
cd /home/
cd redis-master/src/
./redis-cli
set a a
exit


cd /home/
cd redis-slave1/src/
./redis-cli -p 6380
get a             显示a有一个值,说明主从复制成功。这个时候,只有master可以写入数据,其他2个slave是只能读的。


4.通过启动 redis-sentinel ,哨兵模式来监控这1主2备的redis健康状况。如果master宕机,另外2个slave自动有一个升级为master。
cd /home/
cd redis-master/
vi sentinel.conf  内容改为下面这段
############################代码区域,begin############################
daemonize yes
port 26379
#MyMaster
sentinel monitor MyMaster 127.0.0.1 6379 1
sentinel down-after-milliseconds MyMaster 5000
sentinel failover-timeout MyMaster 900000
sentinel parallel-syncs MyMaster 2
############################代码区域,end############################


cd redis-master/src/
./redis-sentinel ../sentinel.conf


ps -aux|grep redis  看一下是不是3个redis都启动了。
kill -9  已运行的redis-master的pid


看一下现在哪个slave变成master了。
cd /home/
cd redis-slave1/src/
./redis-cli -p 6380


注意:如果是3台机器各有1个redis。每台都要启动redis-server和redis-sentinel
<think>好的,我现在需要处理用户提供的关于部署Java应用的详细步骤。首先,我需要仔细分析用户的问题,确保理解每个步骤的要求。 用户的问题分为几个部分:环境配置、网站创建、Java环境安装、数据库导入配置修改,以及后台的域名替换启动应用。首先,我需要确认用户的环境是PHP 7.4、MySQL 5.7Nginx 1.2、Tomcat 8Redis,并且需要放行所有端口1-65535。这可能涉及到防火墙设置,比如iptables或firewalld的配置,但用户可能已经处理好了这部分。 接下来是创建五个子域名,每个都需要配置Nginx的反向代理,特别是api子域名要代理到本地的8091端口。这里需要注意Nginx的配置文件结构,每个server块对应一个子域名,设置正确的server_nameproxy_pass。同时,FTP的创建可能需要使用vsftpd或其他FTP服务器,指定目录到新建的ftp文件夹。 然后是安装Java环境,用户提到使用yum安装openjdk 1.8,这相对简单,但可能需要确认安装后的版本是否正确,以及环境变量是否设置。 数据库导入部分,用户需要解压stock.jar,修改application.propertiesapplication.yml中的数据库FTP配置。这里需要注意的是,JAR文件可能需要使用unzip或jar命令解压,修改后重新打包。但直接修改JAR内的文件可能存在问题,更好的方式是在外部配置文件中覆盖这些属性,比如使用--spring.config.location参数指定外部配置文件。 替换后台JS文件中的域名涉及到搜索并替换所有相关文件中的api.iimii.top为新域名。可能需要使用sed命令进行批量替换,或者在构建过程中处理。 最后,启动应用使用nohupjava -jar命令,检查进程占用内存情况。用户提供的ps命令是查看内存使用前8的进程,可能需要调整以确保应用正常运行。 在回答过程中,需要详细解释每个步骤的原因可能遇到的问题。例如,Nginx反向代理的设置是为了将API请求转发到Tomcat应用,而修改配置文件时需要确保语法正确,避免服务重启失败。数据库配置错误可能导致连接问题,需要检查用户名、密码权限。替换域名时,如果遗漏某些文件,可能导致前端请求错误,需全面检查。 同时,用户可能没有提到的一些细节,比如SSL证书配置、服务自启动设置、日志管理等,可能需要作为相关问题提出,帮助用户进一步优化部署。</think><< **环境部署及网站配置步骤说明** 1. **环境配置** ```bash # 防火墙配置(CentOS 7+) firewall-cmd --permanent --add-port=1-65535/tcp firewall-cmd --reload # 检查服务状态 systemctl status nginx mysqld redis ``` 2. **Nginx网站配置** 创建`/etc/nginx/conf.d/api.conf`文件: ```nginx server { listen 80; server_name api.xxx.com; location / { proxy_pass http://127.0.0.1:8091; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 其他域名配置同理,需修改`server_name`并指定对应root目录 3. **Java环境安装** ```bash yum install -y java-1.8.0-openjdk-devel java -version # 验证安装 ``` 4. **应用配置修改** ```bash # 解压修改配置文件(需安装unzip) unzip -q stock.jar -d stock_temp vi stock_temp/BOOT-INF/classes/application.properties vi stock_temp/BOOT-INF/classes/application.yml # 重新打包 jar -cfM0 stock-modified.jar -C stock_temp/ . ``` 5. **启动应用** ```bash nohup java -Xmx1024m -jar stock-modified.jar --spring.config.location=file:/path/to/external-config/ & ``` **常见问题原因**: - 端口冲突:Tomcat默认8080端口可能被占用 - 权限问题:FTP目录需要正确的用户权限 - 配置错误:YAML缩进错误会导致启动失败 - 域名解析:未配置DNS解析或本地hosts文件 - 内存不足:Java应用需要足够堆内存 **验证命令**: ```bash # 检查端口监听 netstat -tulnp | grep ':8091' # 查看实时日志 tail -f nohup.out ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值