Java|Java笔记---通过nginx和FileZilla部署代码到云服务器

一、前言 在前一篇中了解到如何利用 SecurityCRT 远程登录云主机,那么现在就到重头戏了:如何将我们的 Java Web 项目部署到云主机上呢?请往下看…
二、Nginx 的使用

简介
简单说一下:
1. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
2. 特点是占有内存少,并发能力强。在高连接并发的情况下,Nginx是Apache服务器不错的替代品
安装
我们使用 yum 来安装 nginx,执行命令 yum install nginx 即可。安装好后,我们来试着启动下 nginx,执行命令 service nginx start.
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

测试
既然 nginx 成功安装并开启了该服务,那么我们应该来测试下能否使用正常运行呢?执行命令 * wget http://127.0.0.1 *,可以看到如下显示:
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

既然使用 wget 可以连接到 http://127.0.0.1 那么我们试着在浏览器上请求该地址是什么情况?若是本地机器上安装的 nginx,则直接在浏览器上输入该地址;若是云服务器上安装的,则使用 http://云服务器公网IP。结果如下:
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

通过这两项测试,就说明nginx安装配置成功,可以正常运行
部署本地代码
刚刚在浏览器端显示的是 nginx 默认的 index.html 的显示界面,和 Tomcat 默认显示情况类似。该 index.html 是在 nginx 安装目录下的 html 文件夹下的(/usr/share/nginx/html). 我们若是想将某一 html 文件部署,可以将文件放入 html 目录下,然后在浏览器端访问 http://127.0.0.1/xxx.html 即可。如下:
1. 进入 nginx 下的 html 目录:命令* cd /usr/share/nginx/html *
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

2. 新建 html 页面:* vi index.htm *,内容如下
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

3. 本地访问该页面:显示结果如下
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

三、FTP服务 为了将代码部署到远程服务器上,我们需要安装 FTP 服务和 FileZilla。这样可以将本地 Windows 机器上的代码通过 ftp 协议传输到远程服务器。
安装 ftp
在 root 权限下,通过 yum 安装 vsftpd:执行命令 yum install vsftpd。注意:是 vsftpd,不是 install ftp!
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

配置
安装好后,我们还需要去修改配置文件 vsftpd.conf,将匿名登录禁用掉。执行命令 vim /etc/vsftpd/vsftpd.conf,将第11行的“anonymous_enable=YES”前面加上#号,即将匿名登录禁用。至于为什么要禁用匿名登录呢?待会儿再说,请往下看…
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

检查配置
配置好后,我们来检查一下生效的配置中,是否不包含 anonymous_enable=YES,执行命令cat /etc/vsftpd/vsftpd.conf |grep ^[^#]
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

启动 ftp 服务
配置好后,我们就启动 ftp 服务。执行命令:service vsftpd start 。
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

注:为了方便,我们最好也是让 ftp 服务开机自启。执行命令:chkconfig vsftpd on
配置 ftp 账户
刚刚配置 vsftpd.conf 一步, 我们将匿名登录给禁用了。这是为什么呢?原因就是为了安全。禁用匿名登录后,我们可以来配置 FTP 账户和密码,通过配置的账户密码,连接远程服务器,再传输文件。不然,若是使用匿名登录,那么只要是知道公网 IP 的人,就可以传输文件,那多不好!
现在开始来配置 ftp 账户的用户名和密码。其命令格式如下所示:
① 设置账号的命令:useradd -d /home/username -s /sbin/nologin username ② 设置对应的密码:passwd username

我们以下面的例子来说明一下:
# 账号为“xiaoming”,目录为/home/xiaoming,且设置不允许通过ssh登录 useradd -d /home/xiaoming -s /sbin/nologin xiaoming # 设置账号对应的密码为 123456 passwd xiaoming New password:123456# 这是在执行 passwd xiaoming 后会出现的

Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

修改 pam
【Java|Java笔记---通过nginx和FileZilla部署代码到云服务器】配置好了账户密码后,我们就需要来修改 vsftpd 的 pam ,以使用户可以通过自己设置的FTP用户帐号和密码连接到云服务器。我们可以先看下 /etc/pam.d/ 目录下的内容:执行命令 ls /etc/pam.d/
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

编辑:执行命令 vim /etc/pam.d/vsftpd, 其原始内容如下:
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

我们将其修改为以下内容:
#%PAM-1.0 auth required /lib64/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth required /lib64/security/pam_unix.so shadow nullok auth required /lib64/security/pam_shells.so account required /lib64/security/pam_unix.so session required /lib64/security/pam_unix.so

修改好后,重启 ftp 服务。执行命令:service vsftpd restart
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

安装 FileZilla
我们安装配置好 FTP 服务后,怎样才能将本地代码通过 FTP 协议提交到远程服务器呢?其实很简单,我们可以使用 FileZilla 来帮助我们完成这项工作。当然你也可以选择其他第三方 FTP 软件。在本地机器上下载安装好 FileZilla 后,我们尝试着使用 FileZilla 来进行文件传输。
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

测试 FileZilla 文件传输
既然准备工作已经全部完成了,那么就试试将本地的一个 test.html 文件传输到远程服务器吧。我们直接在本地站点上找到 test.html ,然后拖拽到远程站点或者右键选择传输,这样就将 test.html 传输到了 FTP 账户目录下了。
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

当然仅仅放在该目录下还是不行的,因为我们需要将其放在 /usr/share/nginx/html 的目录下,这样才能通过外网来访问我们部署的代码。使用 SecureCRT 远程登录云服务器,进入FTP用户目录下,然后使用 cp 命令将刚刚上传的文件复制到 /usr/share/nginx/html 下,在来访问就 ok 了.
Java|Java笔记---通过nginx和FileZilla部署代码到云服务器
文章图片

四、小结 到目前为止,我们已经尝试过在云服务器上部署代码了。虽然只是简单部署了的静态 html 文件,但是还是收获了许多。下一部分,我们开始学会如何在云服务器上部署 JavaWeb 项目。
注:nginx 的使用可不仅于此,有兴趣的可以自行学习下。
前往 bascker/javaworld 获取更多 Java 知识

    推荐阅读