新兵实战搭建CentOS7下docker+springboot项目+nginx反向代理 (三)

新兵实战搭建CentOS7下docker+springboot项目+nginx反向代理

接下来开始部署springboot项目。 把打包好的spingboot jar包文件通过securexftp 工具上传到任意文件夹下,构建docker 镜像。

mvn package docker:build

运行docker Image

docker run -p 5808:8080 -t dockertest/engine_three --restart=always

左边5808是docker暴露给外部的端口 右边8080的是项目的端口,restart=always代表自动重启。

新兵实战搭建CentOS7下docker+springboot项目+nginx反向代理 (三)_第1张图片

使用docker ps 查看是否docker容器已启动。
图片2

在浏览器中输入网址验证是否成功。
新兵实战搭建CentOS7下docker+springboot项目+nginx反向代理 (三)_第2张图片

接下来使用nginx设置反向代理

  • 查看nginx路径
    图4

进入/etc/nginx路径下
新兵实战搭建CentOS7下docker+springboot项目+nginx反向代理 (三)_第3张图片

nginx.conf是总的配置文件。

user  root;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/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  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/server/*.conf;
}

其中注意 第一列 user root; 系统默认用户是nginx,这样会经常导致访问网页permission deny的错误 。这里把user指定为root用户。

http配置中 添加server文件夹下的conf配置作为用户自定义配置文件。

新建server文件夹 在该文件夹下新建default.conf 文件。配置如下。
也可以参考这个博客

https://my.oschina.net/floristgao/blog/488161

upstream tomcat{
  server 127.0.0.1:5808 max_fails=1 fail_timeout=60s weight=10;

}



server {
    listen       80;        #监听80端口
    server_name  192.168.150.129; #监听的域名
    location /docker {            #转发或处理
        proxy_pass      http://tomcat/;
#       proxy_redirect   off;
#       proxy_set_header    X-Real-IP       $remote_addr;
 #       proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    error_page   500 502 503 504  /50x.html;#错误页
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

在该文件中设置反向代理。可以实现通过访问192.168.150.129:80/docker 映射到192.168.150.129:5808端口。保存文件,并重启nginx。

systemctl restart nginx.service

如果此时重启失败 那就需要检查default.conf文件中是否ip地址配置正确。

检查nginx服务没问题后打开浏览器测试。

systemctl status nginx.service

发现页面报错 error page, 打开nginx日志文件看下原因吧

默认的日志文件路径在 /var/log/nginx 文件夹下。

打开error.log文件。

图4

发现错误是

connect() to 127.0.0.1:5808 failed (13: Permission denied)

很纳闷 也查了很多资料 ,发现是SeLinux的导致的 。这个还不太懂是什么 。按照这篇博客做法可以解决。

https://blog.csdn.net/oydaybreak/article/details/46594639

setsebool -P httpd_can_network_connect 1

再次重启nginx 发现浏览器可以成功访问了 简单的反向代理就完成了。这篇文章是将selinx是什么的 可以有空的时候看看

https://blog.csdn.net/yanjun821126/article/details/80828908

新兵实战搭建CentOS7下docker+springboot项目+nginx反向代理 (三)_第4张图片

下一步还想把前端代码加入到springboot中 。或者再起一个docker 放node.js环境。先占坑。

你可能感兴趣的:(技术)