Skip to content

使用nginx、tomcat搭建静态网站

Mr.wu edited this page Sep 26, 2017 · 2 revisions

Nginx

说到 Nginx,可能第一反应就是 反向代理 和 负载均衡 了。那么什么是 反向代理,什么又是 负载均衡 呢?

反向代理

首先了解一下什么是 前向代理 。代理 (Proxy) 也称网络代理,是一种特殊的网络服务,通俗来讲,就是在客户端和目标服务器之间的充当中间人,接收客户端的请求,再根据客户端请求向目标服务器发起相应的请求,从目标服务器获得指定资源后返回给客户端。且代理服务器可以对目标服务器的资源下载至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会再向目标服务器发起请求,而是直接返回缓存的资源。

其实代理服务器非常常见,就比如因为 GWF 而存在的一些科学上网的代理商,就是利用国外服务器作为代理服务器,从而正确解析域名来实现科学上网。代理服务器也可以实现隐藏真实 IP,比如著名的 Tor (洋葱路由器)就是通过多重代理和一些加密技术来实现匿名交流。

而 反向代理 则是在服务器端作为代理使用,而不是客户端。也就是说,前向代理 是代理内部网络用户访问 Internet 上服务器的连接请求,反向代理 是以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时的代理服务器对外就表现为一个服务器。

负载均衡

反向代理负载均衡技术是把将来自 Internet 上的连接请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。

Nginx 安装

本人使用的是腾讯云的服务器,版本为: cenos

$ yum install nginx

Nginx 配置

简单地配置 Nginx 的配置文件,以便在启动 Nginx 时去启用这些配置。而本文的重点也是于此。

Nginx 的配置系统由一个主配置文件和其他一些辅助的配置文件构成。这些配置文件均是纯文本文件,一般地,我们只需要配置主配置文件就行了。例如在我的服务器上是在:/etc/nginx/nginx.conf 。

指令上下文

nginx.conf 中的配置信息,根据其逻辑上的意义,对它们进行了分类,也就是分成了多个作用域,或者称之为配置指令上下文。不同的作用域含有一个或者多个配置项。

其中每个配置项由配置指令和指令参数构成,形成一个键值对,# 后面地为注释,理解起来也非常容易。

一般配置文件的结构和通用配置如下:

user www-data;    # 运行 nginx 的所属组和所有者
worker_processes 1;    # 开启一个 nginx 工作进程,一般 CPU 几核就写几
pid /run/nginx.pid;    # pid 路径

events {
        worker_connections 768;    # 一个进程能同时处理 768 个请求
        # multi_accept on;
}

# 与提供 http 服务相关的配置参数,一般默认配置就可以,主要配置在于 http 上下文里的 server 上下文
http {
        ##
        # Basic Settings
        ##

        ... 此处省略通用默认配置

        ##
        # Logging Settings
        ##
        ... 此处省略通用默认配置

        ##
        # Gzip Settings
        ##

        ... 此处省略通用默认配置

        ##
        # nginx-naxsi config
        ##

        ... 此处省略通用默认配置

        ##
        # nginx-passenger config
        ##

        ... 此处省略通用默认配置

        ##
        # Virtual Host Configs
        ##

        ... 此处省略通用默认配置

        # 此时,在此添加 server 上下文,开始配置一个域名,一个 server 配置段一般对应一个域名
        server {
                listen 80;               # 监听本机所有 ip 上的 80 端口
                server_name _;           # 域名:www.example.com 这里 "_" 代表获取匹配所有
                root /home/filename/;    # 站点根目录

                location / {             # 可有多个 location 用于配置路由地址
                        try_files index.html =404;
                }
}

Nginx 启动运行

$ sudo nginx -s reload

使用 reload 方法不用重启服务,直接重新加载配置文件,客户端感觉不到服务异常,实现平滑切换。当然你也可以重新启动 nginx 服务。

$ sudo service nginx restart

Nginx 停止运行

$ sudo nginx -s stop

Tomcat

Tomat是依赖jdk的,所以需要先安装一个jdk。 幸福的是,云主机安装这些非常简单,首先安装jdk:

yum list java*
yun install java-1.7.0-openjdk* -y

下面再安装个tomcat,tomcat我们下载一个压缩包就好。在tomcat官网,找到我们需要下载版本的地址:

wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.81/bin/apache-tomcat-7.0.81.tar.gz

接下来解压:

tar -zxf apache-tomcat-7.0.81.tar.gz 

解压完成,我们进入bin目录,启动看看:

cd apache-tomcat-7.0.81/bin/
./startup.sh 

这样就完成tomcat启动了。

然后我们打开浏览器,输入: http://ip:8080/

完美! 到这里,我们就成功搭建了一个自己的服务器啦! 然后我们在写个小页面,非常简单,首先来到tomcat的webapps/ROOT目录,然后执行vi hello.html,我们直接编辑一个:


cd ..
cd webapps/ROOT/
vi hello.html 

或者直接用git clone项目到此,此时你改变了项目,可以使用git更新,无须操作vi

参考:

https://showzeng.itscoder.com/nginx/2016/10/03/use-nginx-to-deploy-static-pages-easily

https://mp.weixin.qq.com/s/3IvKj4D78MVVJQT4ApHl9Q

Home

Android 开发录

-深入理解LayoutInflater.inflate()的参数

计算机网络原理

数据库

Java 垃圾回收机制

Java 开发录

面试

搭建翻墙shadowsocks 教程

其他

Clone this wiki locally