Nginx+tomcat  Java服务部署配置

centos

目录

1.安装NG和常用命令

2.修改默认nginx.conf配置

3.导入个人配置文件*.conf


Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

 

应用部署方案采用nginx+tomcat

以springboot 工程为例,通过ng反向代理tomcat服务,后端服务通过JAR(内置tomcat)方式运行;前端项目build后的静态资源,部署到nginx中运行。

 

1.安装NG和常用命令

Yum安装NG命令:

#  yum install -y nginx

启动ng服务命令:

#  systemctl start nginx.service

 

检查ng配置是否正确命令:

#  nginx -t

 

ng重载配置命令:

#  nginx -s reload

 

启动jar工程并实时打印日志命令:springboot应用jar打包

#  nohup java -jar tomcat.jar & tail -f nohup.out

 

启动jar工程并实时打印日志(指定日志文件名)命令:

#  nohup java -jar tomcat.jar >tomcat.log & tail -f tomcat.log

 

查看运行中的java进程命令:

#  ps -ef|grep java

 

终止jar工程命令:

#  kill  “进程号”

 

 

2.修改默认nginx.conf配置

修改nginx.conf,删除里面默认的server:

直接写在nginx.conf里比较不清晰,建议单独新建配置文件导入

#  vim /etc/nginx/nginx.conf

 

3.导入个人配置文件*.conf

1.创建编辑自己的配置文件myserver.conf,文件名可任意。

2.上传配置文件myserver.conf到系统目录 /etc/nginx/conf.d里,nginx会自动加载该配置。

3.上传自定义错误页面(error_page文件夹)到 /home/server/html/error_page。

4.静态工程上传到/home/server/html,重载配置。

5.启动nginx和tomcat服务,完成!

  myserver.conf 文件:这份配置几乎可以在生产环境使用

#上传文件大小限制*
client_max_body_size 200m; 
#开启错误页面拦截*
proxy_intercept_errors on;
fastcgi_intercept_errors on;
#隐藏ng版本号
server_tokens off;

    upstream offic { # 代理动态服务(后端):
	server localhost:8088;
    }


    server { # 静态服务:
    	listen   9005;
        server_name  localhost;
	root   /home/server/html/offic; # html工程路径
	location / {
	    index index.html index.htm;
        }
    }

    server { # 静态服务:
    	listen   9006;
        server_name  localhost;
	root   /home/server/html/officAdmin; # html工程路径
	location / {
	    index index.html index.htm;
        }
    }


    server { # http 主服务:
        listen   80;  # 端口
        server_name  www.duweiyun.com duweiyun.com; # 域名配置
	return 301 https://$server_name$request_uri;  # http重定向到https

    }

    server { # https 服务:
	listen 443 ssl; #端口
	server_name  www.duweiyun.com duweiyun.com; #域名
	if ($host !~ ^www ) {  # 非www请求 重定向到www域名
	       return 301 $scheme://www.$host$request_uri;
	 }    
	# root     /usr/share/nginx/html;
	# ssl证书配置:
	ssl_certificate      /home/cert/duweiyun.pem; # pem证书路径
	ssl_certificate_key  /home/cert/duweiyun.key; # key证书路径
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;

	location / {
	    proxy_pass http://localhost:9005/; # 代理前端服务
	    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;
        }
	location /system/login/admin/ {
	    proxy_pass http://localhost:9006/; # 代理前端服务
            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;
	  
        }
	location /offic {
	    proxy_pass http://offic; # 代理后端服务(location与工程名一致)
	    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;
	  
        }
	location /detail {
	    root /home/data/offic/html; # 普通html
	    index index.html index.htm;
        }

	#错误页转发:
        error_page 404 /404.html;
        location = /404.html { #自定义错误页404.html
	    root /home/server/html/error_page;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html { #自定义错误页50x.html 
	    root /home/server/html/error_page;
        }
    }

完整配置文件下载(一键启停脚本+自定义错误页面)

常见问题?

  1. 访问的时候报403 Forbidden 解决方法

◆修改目标目录和文件的安全策略

如果是centos,看一下selinux是否关闭

查看SELinux状态:

#  /usr/sbin/sestatus -v     

如果SELinux status参数为enabled即为开启状态,则执行修改目录策略命令

#  chcon -R -t httpd_sys_rw_content_t /home/server/

 

◆打开nginx.conf配置,把 user 用户名改为 root 或 其它高权限的用户即可