一脸懵逼学习Nginx及其安装,Tomcat的安装

一脸懵逼学习Nginx及其安装,Tomcat的安装

大家好,又见面了,我是全栈君。

1:Nginx的相关概念知识:

  1.1:反向代理:

    反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

一脸懵逼学习Nginx及其安装,Tomcat的安装

  1.2:负载均衡:

    负载均衡,英文名称为Load Balance,是指建立在现有网络结构之上,并提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。其原理就是数据流量分摊到多个服务器上执行,减轻每台服务器的压力,多台服务器共同完成工作任务,从而提高了数据的吞吐量。

 一脸懵逼学习Nginx及其安装,Tomcat的安装

2:Nginx的安装操作:

 Nginx的官网:http://nginx.org/

   2.1:将下载好的Nginx上传到虚拟机上面,然后进行解压缩操作,上传过程省略,请自行脑补:

[root@master package]# tar -zxvf nginx-1.8.1.tar.gz -C /home/hadoop/
一脸懵逼学习Nginx及其安装,Tomcat的安装

  2.2:编译Ngnix源码目录:

    进入Ngnix源码目录:[root@master hadoop]# cd /home/hadoop/nginx-1.8.1/

    检查安装环境,并指定将来要安装的路径:

一脸懵逼学习Nginx及其安装,Tomcat的安装

#缺包报错 

checking for OS
 + Linux 2.6.32-696.10.1.el6.i686 i686
checking for C compiler … found
 + using GNU C compiler
 + gcc version: 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
checking for gcc -pipe switch … found
checking for gcc builtin atomic operations … found
checking for C99 variadic macros … found
checking for gcc variadic macros … found
checking for unistd.h … found
checking for inttypes.h … found
checking for limits.h … found
checking for sys/filio.h … not found
checking for sys/param.h … found
checking for sys/mount.h … found
checking for sys/statvfs.h … found
checking for crypt.h … found
checking for Linux specific features
checking for epoll … found
checking for EPOLLRDHUP … found
checking for O_PATH … not found
checking for sendfile() … found
checking for sendfile64() … found
checking for sys/prctl.h … found
checking for prctl(PR_SET_DUMPABLE) … found
checking for sched_setaffinity() … found
checking for crypt_r() … found
checking for sys/vfs.h … found
checking for nobody group … found
checking for poll() … found
checking for /dev/poll … not found
checking for kqueue … not found
checking for crypt() … not found
checking for crypt() in libcrypt … found
checking for F_READAHEAD … not found
checking for posix_fadvise() … found
checking for O_DIRECT … found
checking for F_NOCACHE … not found
checking for directio() … not found
checking for statfs() … found
checking for statvfs() … found
checking for dlopen() … not found
checking for dlopen() in libdl … found
checking for sched_yield() … found
checking for SO_SETFIB … not found
checking for SO_ACCEPTFILTER … not found
checking for TCP_DEFER_ACCEPT … found
checking for TCP_KEEPIDLE … found
checking for TCP_FASTOPEN … not found
checking for TCP_INFO … found
checking for accept4() … found
checking for eventfd() … found
checking for int size … 4 bytes
checking for long size … 4 bytes
checking for long long size … 8 bytes
checking for void * size … 4 bytes
checking for uint64_t … found
checking for sig_atomic_t … found
checking for sig_atomic_t size … 4 bytes
checking for socklen_t … found
checking for in_addr_t … found
checking for in_port_t … found
checking for rlim_t … found
checking for uintptr_t … uintptr_t found
checking for system byte ordering … little endian
checking for size_t size … 4 bytes
checking for off_t size … 8 bytes
checking for time_t size … 4 bytes
checking for setproctitle() … not found
checking for pread() … found
checking for pwrite() … found
checking for sys_nerr … found
checking for localtime_r() … found
checking for posix_memalign() … found
checking for memalign() … found
checking for mmap(MAP_ANON|MAP_SHARED) … found
checking for mmap(“/dev/zero”, MAP_SHARED) … found
checking for System V shared memory … found
checking for POSIX semaphores … not found
checking for POSIX semaphores in libpthread … found
checking for struct msghdr.msg_control … found
checking for ioctl(FIONBIO) … found
checking for struct tm.tm_gmtoff … found
checking for struct dirent.d_namlen … not found
checking for struct dirent.d_type … found
checking for sysconf(_SC_NPROCESSORS_ONLN) … found
checking for openat(), fstatat() … found
checking for getaddrinfo() … found
checking for PCRE library … not found
checking for PCRE library in /usr/local/ … not found
checking for PCRE library in /usr/include/pcre/ … not found
checking for PCRE library in /usr/pkg/ … not found
checking for PCRE library in /opt/local/ … not found

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using –without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using –with-pcre=<path> option.

     然后安装一下缺少的包:

[root@master nginx-1.8.1]# yum -y install gcc pcre-devel openssl openssl-devel

 一脸懵逼学习Nginx及其安装,Tomcat的安装

    解决完错误以后再次执行,检查安装环境,并指定将来要安装的路径:

    [root@master nginx-1.8.1]# ./configure –prefix=/home/hadoop/nginx

[root@master nginx-1.8.1]# ./configure –prefix=/home/hadoop/nginx
checking for OS
 + Linux 2.6.32-696.10.1.el6.i686 i686
checking for C compiler … found
 + using GNU C compiler
 + gcc version: 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
checking for gcc -pipe switch … found
checking for gcc builtin atomic operations … found
checking for C99 variadic macros … found
checking for gcc variadic macros … found
checking for unistd.h … found
checking for inttypes.h … found
checking for limits.h … found
checking for sys/filio.h … not found
checking for sys/param.h … found
checking for sys/mount.h … found
checking for sys/statvfs.h … found
checking for crypt.h … found
checking for Linux specific features
checking for epoll … found
checking for EPOLLRDHUP … found
checking for O_PATH … not found
checking for sendfile() … found
checking for sendfile64() … found
checking for sys/prctl.h … found
checking for prctl(PR_SET_DUMPABLE) … found
checking for sched_setaffinity() … found
checking for crypt_r() … found
checking for sys/vfs.h … found
checking for nobody group … found
checking for poll() … found
checking for /dev/poll … not found
checking for kqueue … not found
checking for crypt() … not found
checking for crypt() in libcrypt … found
checking for F_READAHEAD … not found
checking for posix_fadvise() … found
checking for O_DIRECT … found
checking for F_NOCACHE … not found
checking for directio() … not found
checking for statfs() … found
checking for statvfs() … found
checking for dlopen() … not found
checking for dlopen() in libdl … found
checking for sched_yield() … found
checking for SO_SETFIB … not found
checking for SO_ACCEPTFILTER … not found
checking for TCP_DEFER_ACCEPT … found
checking for TCP_KEEPIDLE … found
checking for TCP_FASTOPEN … not found
checking for TCP_INFO … found
checking for accept4() … found
checking for eventfd() … found
checking for int size … 4 bytes
checking for long size … 4 bytes
checking for long long size … 8 bytes
checking for void * size … 4 bytes
checking for uint64_t … found
checking for sig_atomic_t … found
checking for sig_atomic_t size … 4 bytes
checking for socklen_t … found
checking for in_addr_t … found
checking for in_port_t … found
checking for rlim_t … found
checking for uintptr_t … uintptr_t found
checking for system byte ordering … little endian
checking for size_t size … 4 bytes
checking for off_t size … 8 bytes
checking for time_t size … 4 bytes
checking for setproctitle() … not found
checking for pread() … found
checking for pwrite() … found
checking for sys_nerr … found
checking for localtime_r() … found
checking for posix_memalign() … found
checking for memalign() … found
checking for mmap(MAP_ANON|MAP_SHARED) … found
checking for mmap(“/dev/zero”, MAP_SHARED) … found
checking for System V shared memory … found
checking for POSIX semaphores … not found
checking for POSIX semaphores in libpthread … found
checking for struct msghdr.msg_control … found
checking for ioctl(FIONBIO) … found
checking for struct tm.tm_gmtoff … found
checking for struct dirent.d_namlen … not found
checking for struct dirent.d_type … found
checking for sysconf(_SC_NPROCESSORS_ONLN) … found
checking for openat(), fstatat() … found
checking for getaddrinfo() … found
checking for PCRE library … found
checking for PCRE JIT support … not found
checking for md5 in system md library … not found
checking for md5 in system md5 library … not found
checking for md5 in system OpenSSL crypto library … found
checking for sha1 in system md library … not found
checking for sha1 in system OpenSSL crypto library … found
checking for zlib library … found
creating objs/Makefile

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + md5: using system crypto library
  + sha1: using system crypto library
  + using system zlib library

  nginx path prefix: “/home/hadoop/nginx”
  nginx binary file: “/home/hadoop/nginx/sbin/nginx”
  nginx configuration prefix: “/home/hadoop/nginx/conf”
  nginx configuration file: “/home/hadoop/nginx/conf/nginx.conf”
  nginx pid file: “/home/hadoop/nginx/logs/nginx.pid”
  nginx error log file: “/home/hadoop/nginx/logs/error.log”
  nginx http access log file: “/home/hadoop/nginx/logs/access.log”
  nginx http client request body temporary files: “client_body_temp”
  nginx http proxy temporary files: “proxy_temp”
  nginx http fastcgi temporary files: “fastcgi_temp”
  nginx http uwsgi temporary files: “uwsgi_temp”
  nginx http scgi temporary files: “scgi_temp”

   2.3:编译安装(make是编译,make install是安装):

 [root@master hadoop]# make && make install安装不是一帆风顺的,开始将make && make install写成了make && made install,肯定没有安装成功了,然后我再执行make && make install就出现下面的情况了,然后我重新./configure –prefix=/usr/local/nginx检查安装环境,并指定将来要安装的路径,最后再make && made install,貌似正常编译,安装了,虽然我也不是很清楚,这里贴一下吧先,安装好以后可以测试是否正常:

[root@master hadoop]# make && make install
make: *** No targets specified and no makefile found.  Stop.
[root@master hadoop]# make install
make: *** No rule to make target `install’.  Stop.
[root@master hadoop]# make && make install
make: *** No targets specified and no makefile found.  Stop.
[root@master hadoop]# ./configure –prefix=/home/hadoop/nginx
bash: ./configure: No such file or directory
[root@master hadoop]# cd /home/hadoop/nginx-1.8.1/
[root@master nginx-1.8.1]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src
[root@master nginx-1.8.1]# ./configure –prefix=/home/hadoop/nginx

   2.4:安装好以后测试是否正常:

    安装好以后指定的目录会生成一些文件,如我的/home/hadoop/nginx目录下面:

    启动Nginx的命令:[root@master sbin]# ./nginx

 一脸懵逼学习Nginx及其安装,Tomcat的安装

  查看端口是否有ngnix进程监听:[root@master sbin]# netstat -ntlp | grep 80
一脸懵逼学习Nginx及其安装,Tomcat的安装

3:配置Nginx:

   3.1:配置反向代理:

修改Nginx配置文件:

[root@master conf]# cd /home/hadoop/nginx/conf/

[root@master conf]# vim nginx.conf

  server {
        listen       80;
        server_name  master; #nginx所在服务器的主机名称

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        #反向代理的配置
        location / { #拦截所有请求
            root   html;
            #index  index.html index.htm;
            #这里是代理走向的目标服务器:tomcat
            proxy_pass http://192.168.199.130:8080;
        }

 具体配置如下所示:

下面贴图这句话后面proxy_pass http://192.168.199.130:8080;

少了一个分号导致后面启动nginx的时候出现错误:

自己都操点心就可以了:

[root@master sbin]# ./nginx
nginx: [emerg] unexpected “}” in /home/hadoop/nginx/conf/nginx.conf:48

一脸懵逼学习Nginx及其安装,Tomcat的安装

 4:安装Tomcat,将下载好的tomcat安装包上传到虚拟机,过程省略,然后解压缩操作:

[root@slaver1 package]# tar -zxvf apache-tomcat-7.0.68.tar.gz -C /home/hadoop/

解压缩好以后启动Tomcat:

一脸懵逼学习Nginx及其安装,Tomcat的安装

然后没启动起来,貌似说我的jdk没有配置啥的,现在配置一下,配置过程省略,大概如上传压缩包,解压缩,然后配置环境变量:

vim /etc/profile配置好以后使其立即生效:source /etc/profile,最后检查一下是否安装成功:java/javac/java -version

然后启动tomcat,如下所示:

一脸懵逼学习Nginx及其安装,Tomcat的安装

启动好,可以检查一下是否启动成功:

浏览器输入自己的http://192.168.199.131:8080/

如果无法访问,可能是防火墙的原因:service iptables stop关闭防火墙;service iptables status查看防火墙是否关闭成功;

5:现在体现Nginx的功能了,我在master节点安装的Nginx,然后在slaver1节点安装的tomcat:

然后访问master节点,会跳转到slaver1的tomcat页面:

http://192.168.199.130/自己的master节点的名称;

6:Nginx的动静分离:

动态资源 index.jsp

location ~ .*\.(jsp|do|action)$ {

    proxy_pass http://ip地址:8080;

}

 

静态资源:

 

location ~ .*\.(html|js|css|gif|jpg|jpeg|png)$ {

 

    expires 3d;

 

}

负载均衡:

http这个节下面配置一个叫upstream的,后面的名字可以随意取,但是要和location下的proxy_pass http://后的保持一致。

http {

    是在http里面的, 已有http, 不是在server,server外面

    upstream tomcats {

        server 192.168.199.130:8080 weight=1;#weight表示多少个

        server 192.168.199.131:8080 weight=1;

        server 192.168.199.132:8080 weight=1;

}

#卸载server

#~代表是大小写敏感,.代表是任何非回车字符,*代表多个。

location ~ .*\.(jsp|do|action) {

    proxy_pass http://tomcats;        #tomcats是后面的tomcat服务器组的逻辑组号

}

}

待续……

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107992.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 堆和栈的区别

    堆和栈的区别转:https://my.oschina.net/aofe/blog/267882堆和栈的区别:·1>堆空间的内存是动态分配的,一般存放对象,并且需要手动释放内存。需要程序员自

  • redis 命令参考手册_redis登录命令

    redis 命令参考手册_redis登录命令http://redisdoc.com/index.htmlhttp://doc.redisfans.com

  • 高通linux-串口笔记「建议收藏」

    高通linux-串口笔记「建议收藏」概述驱动:drivers/tty/serial/msm_serial_hs_lite.c:低速版本,设备树内容配置为compatible="qcom,msm-lsuart-v14";msm_serial_hs.c:高速版本, 设备树内容配置为compatible="qcom,msm-hsuart-v14"; 2.分析设备树内容 uart_cons…

  • 详解sigaction「建议收藏」

    详解sigaction「建议收藏」一、内核如何实现信号的捕捉如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。由于信号处理函数的代码是在用户空间的,处理过程比较复杂,举例如下:1.用户程序注册了SIGQUIT信号的处理函数sighandler。2.当前正在执行main函数,这时发生中断或异常切换到内核态。3.在中断处理完毕后要返回用户态的main函数之前检查到有信号SIGQU

  • 十、模板方法模式—制作更多好喝的饮品! #和设计模式一起旅行#

    无规矩不成方圆!故事背景在安装了酷炫了碉堡了的灯之后,我饿设计模式MM经营的奶茶店生意更加火爆,有不同国家的顾客,那么为了满足更多消费者的口味,我们推出了中国龙井苹果茶和叶门摩卡牛奶咖啡。其中制作的过程:把水烧开将咖啡/茶叶放到杯子里用沸水冲泡加入牛奶/苹果汁下面用代码来表示茶和咖啡的制作过程!//龙井苹果茶制作public class LongJi…

  • 最新面试题汇总(附带答案)【建议看看】

    最新面试题汇总(附带答案)【建议看看】1.性能测试关注的指标是什么?从外部看,性能测试主要关注如下三个指标:吞吐量:每秒钟系统能够处理的请求数、任务数响应时间:服务处理一个请求或一个任务的耗时错误率:一批请求中结果出错的请求所占比例从服务器的角度看,性能测试主要关注CPU、内存、服务器负载、网络、磁盘IO等。2.性能测试怎么做的?/如果你要进行性能测试,你是如何展开操作的?1.确定关键业务,关键路径;2.确定测试的关键数据。比如并发量,响应时间,循环次数等;3.准备测试环境,完成脚本录制或脚本开发;4.执行测试,观察或监控

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号