java入职学习十一之tomcat和nginx

本文详细介绍了如何下载和配置Tomcat,包括环境变量设置和启动命令。接着,深入讲解了Nginx的特性、应用场景、安装步骤以及基本命令。最后,演示了Nginx的http反向代理配置,帮助初学者理解服务器部署。
摘要由CSDN通过智能技术生成

一、tomcat

1.下载Tomcat

链接如下:https://tomcat.apache.org/
注意:要根据自己的JDK版本选择Tomcat的版本。 在这里插入图片描述

2. 配置环境变量

在系统变量栏中选择新建
在这里插入图片描述
在这里插入图片描述
修改系统Path(变量值末尾添加%CATALINA_HOME%\bin;):
在这里插入图片描述

3. 查询环境是否配置成功

在这里插入图片描述

4. 启动Tomcat:使用命令:startup.bat

(你也可以到你解压的tomcat文件夹下的bin目录中点击startup.bat)
在这里插入图片描述

二、nginx

1. nginx介绍

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

应用场景

  1. http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
  2. 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
  3. 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况

2. nginx的下载安装

nginx官网

去官网,下载你需要的windows版本,解压到对应的目录,
打开解压的文件,双击nginx.exe,在浏览器地址栏输入localhost,可以看到如下界面

3.nginx的常用命令

start nginx 开启nginx
nginx -s stop 快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。
nginx -s quit 平稳关闭Nginx,保存相关信息,有安排的结束web服务。
nginx -s reload 因改变了Nginx相关配置,需要重新加载配置而重载。
nginx -s reopen 重新打开日志文件。
nginx -c filename 为 Nginx 指定一个配置文件,来代替缺省的。
nginx -t 不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。
nginx -v 显示 nginx 的版本。

4. nginx的配置

我们从最简单的开始,仅仅实现一个最简单的反向代理配置

4.1 http反向代理配置

#user用来指定nginx worker进程运行用户以及用户组,默认nobody账号运行
#user  nobody;

#worker_processes指定nginx要开启的子进程数量,运行过程中监控每个进程
#消耗内存(一般几M~几十M不等)根据实际情况进行调整,通常数量是CPU内核数量的整数倍
worker_processes  4;

#定义错误日志文件的位置及输出级别【debug / info / notice / warn / error / crit】
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#用来指定进程id的存储文件的位置
#pid        logs/nginx.pid;

#用于指定一个进程可以打开最多文件数量的描述
#worker_rlimit_nofile 1024;

#针对nginx服务器的工作模式的一些操作配置
events {
#指定最大可以同时接收的连接数量,这里一定要注意,最大连接数量是和worker processes共同决定的。
worker_connections  1024;
#配置指定nginx在收到一个新连接通知后尽可能多的接受更多的连接
#multi_accept on;
#配置指定了线程轮询的方法,如果是linux2.6+,使用epoll,如果是BSD如Mac请使用Kqueue
#use epoll; 
}

#作为web服务器,http模块是nginx最核心的一个模块
http {
    ##
    # 基础配置
    ##
    #配置on让sendfile发挥作用,将文件的回写过程交给数据缓冲去去完成,而不是放在应用中完成,这样的话在性能提升有有好处
    sendfile on;
	#让nginx在一个数据包中发送所有的头文件,而不是一个一个单独发
    #tcp_nopush on;
	#让nginx不要缓存数据,而是一段一段发送,如果数据的传输有实时性的要求的话可以配置它,发送完一小段数据就立刻能得到返回值,但是不要滥用
    tcp_nodelay on;
	#给客户端分配连接超时时间,服务器会在这个时间过后关闭连接。一般设置时间较短,可以让nginx工作持续性更好
    keepalive_timeout 65;
	#混淆数据,影响三列冲突率,值越大消耗内存越多,散列key冲突率会降低,检索速度更快;值越小key,占用内存较少,冲突率越高,检索速度变慢
    types_hash_max_size 2048;
	#虽然不会让nginx执行速度更快,但是可以在错误页面关闭nginx版本提示,对于网站安全性的提升有好处
    # server_tokens off;
    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;
    #指定在当前文件中包含另一个文件的指令
    include       mime.types;
    #指定默认处理的文件类型可以是二进制
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

		
	##
    # 日志配置
    ##
	#设置存储访问记录的日志
    #access_log  logs/access.log  main;
	#设置存储记录错误发生的日志
	 error_log   logs/error.log;

	  
	##
    # SSL证书配置
    ##
	#指令用于启动特定的加密协议,nginx在1.1.131.0.12版本后默认是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2,
	#TLSv1.1与TLSv1.2要确保OpenSSL >= 1.0.1 ,SSLv3 现在还有很多地方在用但有不少被攻击的漏洞。
    #ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
	#设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件
    #ssl_prefer_server_ciphers on;

	
	##
    # Gzip 压缩配置
    ##
    #是告诉nginx采用gzip压缩的形式发送数据。这将会减少我们发送的数据量。
     gzip  on;
	#为指定的客户端禁用gzip功能。我们设置成IE6或者更低版本以使我们的方案能够广泛兼容。
	 gzip_disable "msie6";

	 
	#upstream模块主要负责负载均衡的配置,通过默认的轮询调度方式来分发请求到后端服务器	
	upstream tomcatserver1 {
	   server localhost:8011;
	}
	
	
    #一个虚拟主机的配置,一个http中可以配置多个server
    server {
	    #监听的端口号
        listen       80;
		#用来指定ip地址或者域名,多个配置之间用空格分隔,假如在本地运行,配置www.xx.com就需要去更改电脑的host文件
		#如何更改host:在C:\Windows\System32\drivers\etc目录下的host文件中添加一条DNS记录:127.0.0.1  www.helloworld.com
        server_name  www.helloworld.com;
		#用于设置www/路径中配置的网页的默认编码格式
        charset        utf-8;

		#用于指定该虚拟主机服务器中的访问记录日志存放路径
        #access_log  logs/host.access.log  main;
		#用于指定该虚拟主机服务器中访问错误日志的存放路径
		#error_log    logs/host.error.log;
		#用户访问web网站时的全局首页
		#index        index.php index.html index.html;

		
		#主要用于配置路由访问信息,关联到反向代理、负载均衡等等各项功能
		#表示匹配访问根目录
        #location / {
		  #用于指定访问根目录时,访问虚拟主机的web目录
          #  root   html;
		  #在不指定访问具体资源时,默认展示的资源文件列表
          #  index  index.html index.htm;
        #}

		
	    	#反向代理代理服务器访问模式,通过proxy_set配置让客户端访问透明化
		location / {
		    proxy_pass    http://tomcatserver1;
			 #Proxy Settings
		    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                    client_max_body_size 10m; 
                    client_body_buffer_size 128k; 
                    proxy_connect_timeout 90; 
                    proxy_send_timeout 90; 
                    proxy_read_timeout 90; 
                    proxy_buffer_size 4k; 
                    proxy_buffers 4 32k; 
                    proxy_busy_buffers_size 64k; 
                    proxy_temp_file_write_size 64k;
		}
		
		
        #error_page  404              /404.html;

		
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值