(Ubuntu)Nginx+Tomcat的简单配置

本文介绍了在Ubuntu系统中如何安装Nginx并配置为反向代理,以代理运行在8080端口的Tomcat服务。通过Nginx的配置,实现了80端口请求自动转发到Tomcat,并讨论了静态文件的处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(Ubuntu)Nginx+Tomcat的简单配置

声明:如有技术性错误,欢迎指正。
Tomcat的安装不作介绍。

Nginx的反向代理流程,用户向一台服务器的80端口发送了请求,该请求首先由Nginx监听到,其接受到请求内容后再转发给Tomcat,Tomcat处理完后再将结果传送给Nginx,最后由Nginx来统一返回给初始请求端。

##Nginx的安装

  • gcc gcc++依赖库的安装

    apt-get install build-essential
    apt-get install libtool

  • prec依赖库的安装

    apt-get update
    apt-get install libpcre3 libpcre3-dev

  • zlib依赖库的安装

    apt-get install zlib1g-dev

  • ssl依赖库的安装

    apt-get install openssl

    上述内容参考自如下地址,非常感谢作者
    https://www.cnblogs.com/piscesLoveCc/p/5794926.html

  • nginx的安装

apt-get install nginx

如果安装过程出现如下错误,因为在安装Nginx之前启动了Tomcat,而且把Tomcat的端口号设置为了80,导致Nginx和Tomcat的端口号冲突,然后我shutdown了Tomcat后,重启了Nginx,没有报错,启动成功。
>Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
  • Ubuntu中Nginx的文件和文件结构

    • 配置文件:/etc/nginx/nginx.conf
    • nginx.conf关联的配置文件路径:/etc/nginx/conf.d(这个路径可以在nginx.conf中看到)
    • Nginx的程序文件:/usr/sbin/nginx(可以直接运行启动)
    • 启动脚本:/etc/init.d/nginx(直接运行启动)
    • 日志路径:/var/log/nginx
  • Nginx相关常用命令

    启动Nginx:/etc/init.d/nginx
    停止Nginx:nginx -s stop
    重启Nginx:nginx -s reload
    更新配置文件:nginx -c /etc/nginx/nginx.conf
    检查配置文件是否正取:nginx -t
    查看nginx版本:nginx -v

##Nginx和Tomcat的配置
说明:由于上述的80端口冲突的原因,我又将Tomcat原本的端口改到8080。因此下面的配置中我会使用到8080端口进行配置。

在nginx.conf中的http中添加如下参数:

server {
		#监听80端口,可以改成其他端口
		listen 80;
		#当前服务的域名或者IP地址
		server_name example.com;
		location / {
			#转发地址
			proxy_pass http://127.0.0.1:8080/;
		}	
	}

当Nginx监听到80端口的请求后,会转发到http://127.0.0.1:8080/,由于我的Nginx和Tomcat在同一台服务器上,所以转发到本机地址,即127.0.0.1。

其实,可以在nginx.conf中的http里面有include /etc/nginx/conf.d/*.conf;
可以在conf.d目录下建一个tomcat-proxy.conf的配置文件,然后把上述的server写到这个配置文件里。

然后启动Nginx和Tomcat,在本地访问服务器地址。
1、未安装Nginx时,访问http://you_host:80/或者http://you_host:8080/时可以查看到Tomcat的启动页面,前提是你的服务器开放了80或者8080端口。
2、安装Nginx后,访问http://you_host:80/时,看到的是Nginx的欢迎页。
3、配置完成后,访问http://you_host:80/时,显示的则是Tomcat的欢迎页。

反向代理,即让Nginx进行转发的这一部分完成了,但实际过程中,我们会让Nginx来提供所有的静态内容,即按照文件类型进行过滤,由于Nginx不是servlet容器,所以需要将jsp提供给Tomcat进行处理,而静态文件,如html、css、js、jpg、jpeg、png、gif、ico等文件由Nginx处理。

示例配置如下,可根据情况修改

server {
		
		listen 80;
		server_name example.com;
		location ~ \.jsp$ {
			proxy_pass http://127.0.0.1:8080;
		}
 
		location ~* \.(html|css|js|jpg|jpeg|png|gif|ico)$ {
		#指向Tomcat静态资源文件的地址
		root /usr/tomcat/tomcat8/webapps/ROOT;
		}	
}

##其他说明
如果在配置完nginx.conf后,执行nginx -t成功,但是执行nginx -s reload或者nginx -s stop出现如下错误

nginx: [error] invalid PID number “” in “/run/nginx.pid”

原因可能是,nginx.conf中配置文件有错误导致的,可以尝试删除了你刚才添加的配置的文件,然后更新配置文件(nginx -c /etc/niginx/nginx.conf),重新执行上述的两个命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值