Nginx安装与配置(Nginx服务器和Tomcat服务器是不同的服务器)

摘要:
1.【nginx-server】将nginx的源代码上传到nginx服务器之中,同时还需要上传一些其他的辅助组件2.【nginx-server】如果当前的主机上没有特定的编译环境,那么一定要在系统下载如下的环境包:apt-getupdateapt-get-yinstallmakeg++gcclibpcre3libpcrecpp*libpcre3-devlibssl-devautoconfautom

1.【nginx-server】将nginx的源代码上传到nginx服务器之中,同时还需要上传一些其他的辅助组件

2.【nginx-server】如果当前的主机上没有特定的编译环境,那么一定要在系统下载如下的环境包:

•apt-get update

•apt-get -y install make g++ gcc libpcre3 libpcrecpp* libpcre3-dev libssl-dev autoconf automake libtool libncurses5-dev libaio.dev

3.【nginx-server】将所有的nginx源代码解压缩到"/usr/local/src"目录之中:

•tar xzvf /srv/ftp/nginx-1.11.3.tar.gz -C /usr/local/src/

•tar xzvf /srv/ftp/echo-nginx-module-0.59.tar.gz -C /usr/local/src/

•tar xzvf /srv/ftp/nginx-upstream-fair-a18b409.tar.gz -C /usr/local/src/

•tar xzvf /srv/ftp/ngx_cache_purge-2.3.tar.gz -C /usr/local/src/

4.【nginx-server】除了要有源代码的支持包之外,还需要配置一个目录,该目录为编译后的Nginx的工作目录:

•mkdir -p /usr/local/nginx/{logs,conf,fastcgi_temp,sbin,client_body_temp,proxy_temp,uwsgi_temp,scgi_temp}

5.【nginx-server】进入到Nginx源代码所在的目录:cd /usr/local/src/nginx-1.11.3/

6.【nginx-server】由于本次使用的Nginx里面需要为其追加一些组件,所以首先需要对Nginx编译进行一些配置:直接将下面这段代码粘贴过去

./configure --prefix=/usr/local/nginx/ 
--sbin-path=/usr/local/nginx/sbin/  
--with-http_ssl_module 
--conf-path=/usr/local/nginx/conf/nginx.conf 
--pid-path=/usr/local/nginx/logs/nginx.pid 
--error-log-path=/usr/local/nginx/logs/error.log 
--http-log-path=/usr/local/nginx/logs/access.log 
--http-fastcgi-temp-path=/usr/local/nginx/fastcgi_temp 
--http-client-body-temp-path=/usr/local/nginx/client_body_temp 
--http-proxy-temp-path=/usr/local/nginx/proxy_temp 
--http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp 
--http-scgi-temp-path=/usr/local/nginx/scgi_temp 
--add-module=/usr/local/src/echo-nginx-module-0.59 
--add-module=/usr/local/src/gnosek-nginx-upstream-fair-a18b409 
--add-module=/usr/local/src/ngx_cache_purge-2.3 

7.【nginx-server】配置完成之后对Nginx进行编译与安装操作:make && make install

8.【nginx-server】当程序编译之后实际上就可以在"/usr/local/nginx"目录里面看见相关的内容,执行启动命令:

• /usr/local/nginx/sbin/nginx

此时Nginx实现的就是一个http服务器的代理机制,可以直接通过浏览器访问(其中的nginx-server为nginx服务器主机地址):http://nginx-server/

Nginx整合Tomcat

说明:本次的运行环境暂时不考虑多台Tomcat集群的配置问题,只考虑由Nginx实现一台单机的Tomcat的代理,如果要想使用Nginx实现代理配置,那么首先需要有一个正常的web项目

1.假设现在部署的Tomcat主机IP地址为:192.168.195.147

• 将"hello"项目打包成一个"hello.war"文件:mvn clean install package;

• 将上传的hello.war文件部署到Tomcat之中:mv /srv/ftp/hello.war /usr/local/tomcat/webapps

• 修改当前主机的Tomcat端口(因为Nginx与Tomcat都争抢了80端口,所以Tomcat要修改端口):

vim /usr/local/tomcat/conf/server.xml 

修改内容:<Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

• 启动Tomcat服务器:/usr/local/tomcat/bin/catalina.sh start

• 浏览器访问地址:http://192.168.195.147:8090/hello

2.此时的Nginx和Tomcat彼此之间没有任何的联系,所以必须修改nginx的配置文件:vim /usr/local/nginx.conf

修改内容:
    location / {
		proxy_pass http://192.168.195.147:8090/;
		proxy_redirect off;
		proxy_set_header Host   $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
	}

3.此时的Nginx服务已经正在运行中,所以这个时候如果不想先暂停Nginx再重新启动,则可以直接选择加载配置,但是正规的做法都是在加载之前进行配置检查:

• 检查当前的nginx配置是否正确:/usr/local/nginx/sbin/nginx -t

• 当检查通过之后重新加载新的配置:/usr/local/nginx/sbin/nginx -s reload

此时的nginx就可以实现对本地的Tomcat的代理访问,通过在浏览器中输入Nginx执行:http://nginx主机地址/

Nginx负载均衡

说明:使用Nginx有两个主要的操作特点:

• 特点一:可以在一台主机上实现多个域名服务的代理操作

• 特点二:可以实现多台Tomcat的反向代理,实现负载均衡配置

1.【tomcat-server-*】将需要发布的WEB项目分别进行打包,随后上传到不同的Tomcat主机上,并且修改server.xml配置文件,将通过*.war文件直接作为项目的发布;

• 通过ftp工具上传打包完成的"hello.war"文件

• 将此文件移动到Tomcat热部署目录:mv /srv/ftp/hello.war /usr/local/tomcat/webapps/

• 如果要将此文件作为根目录的程序发布,则需要修改server.xml配置文件:vim /usr/local/tomcat/conf/server.xml

<Context path="/" docBase="hello"/><!--hello要与上面打包的项目名称一致-->

• 启动Tomcat服务:/usr/local/tomcat/bin/catalina.sh start

• 打开浏览器访问站点首页:http://Tomcat主机地址/

2.此时的实现同一个服务的Tomcat一共有三台主机,这样一来,对于这三台主机的代理控制操作就需要修改Nginx的配置文件实现:

• 打开Nginx配置文件:vim /usr/local/nginx/conf/nginx.conf

• 追加Tomcat集群配置,首先在server之上追加有一个集群的配置处理项,定义所有主机:

下面三个ip地址是三台tomcat主机的ip地址: 
upstream tomcatcluster { server 192.168.195.138:80 weight=3 ; server 192.168.195.139:80 weight=1 ; server 192.168.195.140:80 weight=2 ; }

• 在代理的位置上不要写具体的主机,写上配置的集群名称

location / {
                proxy_pass http://tomcatcluster;
                proxy_redirect off;
                proxy_set_header Host   $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
        }

3.此时的Nginx服务已经正在运行中,所以这个时候如果不想先暂停Nginx再重新启动,则可以直接选择加载配置,但是正规的做法都是在加载之前进行配置检查:

• 检查当前的nginx配置是否正确:/usr/local/nginx/sbin/nginx -t

• 当检查通过之后重新加载新的配置:/usr/local/nginx/sbin/nginx -s reload

此时的nginx就可以实现对本地的Tomcat的代理访问,通过在浏览器中输入Nginx执行:http://nginx主机地址/

4.实际上这个时候也可以针对于集群的环境做一些动态的变更:

upstream tomcatcluster{
   server 192.168.195.138:80 weight=3 down;(该主机不再提供具体服务)
     server 192.168.195.139:80 weight=1 ;
     server 192.168.195.140:80 weight=2 backup;(当主机忙不过来的时候,此主机提供服务)
}

此时就利用Nginx实现了一个基础的反向代理机制。

数据文件缓存

1.如果要想进行缓存的处理,那么一定要在Nginx主机上追加有一个缓存目录:mkdir -p /usr/data/nginx/{temp,cache}

2.更新nginx.conf配置文件

3.【tomcat-server-*】如果此时要想发现缓存的作用,那么最好的做法是更换当前的显示图片

•scp /usr/local/tomcat/webapps/hello/images/xbwawa.png zookeeper-cluster-b:/usr/local/tomcat/webapps/hello/images/

•scp /usr/local/tomcat/webapps/hello/images/xbwawa.png zookeeper-cluster-c:/usr/local/tomcat/webapps/hello/images/

4.实际上此时由于已经存在了缓存的机制,所以图片是不会进行更新的,这个时候就需要手工清空缓存:

•浏览器主机地址:http://nginx-server/purge/images/xbwawa.png

免责声明:文章转载自《Nginx安装与配置(Nginx服务器和Tomcat服务器是不同的服务器)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇.net面试题-15k+左右MySQL父子节点查询下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用 Docker + SSH代理 来实现访问内网网站

导览 1. 实现SSH远程代理本地站点命令 2. 简单的可用代码 3. 参考或原理 4. 可恶的问题 magento-in-docker magento-in-docker-ssl 一,实现SSH远程代理本地站点命令 1,查看 docker 日志。 【 查看Nginx请求错误详情 】 docker logs <magento-we...

Nginx应用详解及配置

一、Nginx简介 概述:Nginx是一款由俄罗斯开发的开源的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务,其性能优势着为显著,官网上称:单台nginx服务器可以处理50000并发; 特点:高性能、稳定、消耗硬件资源小、能够处理大并发,主要用于静态的解析,动静页面的分离; 功能:   1.作为Web服务器,ngin...

查找nginx安装的路径以及相关安装操作命令

查找nginx安装的路径以及相关安装操作命令 Linux环境下,怎么确定Nginx是以那个config文件启动的? [root@localhost ~]# ps -ef | grep nginxroot 21196 1 0 23:40 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/ngin...

改造前后端分离的jeecg项目部署到k8s中

官网地址:http://www.jeecg.com/开发文档地址:http://doc.jeecg.com/2043873GitHub地址:https://github.com/zhangdaiscott/jeecg-boot 大致步骤如下:1.创建MySQL,redis等辅助组件2.创建jeecg-boot后端应用3.创建jeecg-vue前端应用 0....

详解nginx的rewrite应用,Nginx高级之Rewrite规则

http://www.cjzzc.com/article/1082.html Rewrite主要的功能是实现URL重写,Nginx 的 Rewrite 规则采用 PCRE Perl 兼容正则表达式的语法进行规则匹配,如相使用 Nginx 的 Rewrite 功能,在编译 Nginx 前要编译安装 PCRE 库。Rewrite主要实现url地址重写,以及重定...

OpenResty学习指南(一)

我的博客: https://www.luozhiyun.com/archives/217 想要学好 OpenResty,你必须理解下面 8 个重点: 同步非阻塞的编程模式; 不同阶段的作用; LuaJIT 和 Lua 的不同之处; OpenResty API 和周边库; 协程和 cosocket; 单元测试框架和性能测试工具; 火焰图和周边工具链; 性...