在Nginx代理后面的Vagrant上设置Spring启动应用程序

时间:2017-04-02 08:54:19

标签: nginx spring-boot centos vagrant

我有一个在Vagrant CentOS上运行的嵌入式Tomcat上运行的Spring启动应用程序。它在端口8080上运行,因此我可以在Web浏览器中访问应用程序。 我需要设置监听端口80的Nginx代理服务器并将其重定向到我的应用程序。

我在Nginx日志中收到此错误:

  

[暴徒] 2370#0:* 14 connect()到10.0.15.21:8080失败(13:权限)   连接到上游时,客户端:10.0.15.1,server :,   请求:“GET / HTTP / 1.1”,上游:“http://10.0.15.21:8080/”,主持人:   “10.0.15.21”

所有设置的示例看起来非常相似,我能找到的唯一答案可能是this one。但它并没有改变任何东西。

这是我的服务器配置,位于 /etc/nginx/conf.d/reverseproxy.conf

server {
    listen 80;
    location / {
        proxy_pass http://10.0.15.21:8080;
        proxy_set_header  X-Forwarded-Host $host;
        proxy_set_header  X-Forwarded-Server $host;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

这是我的 nginx.conf 文件'

user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    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;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

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

}

不知道这是否相关,但在journalctl -u nginx下我可以看到此日志。

  

systemd 1:无法从文件/run/nginx.pid读取PID:无效   参数

1 个答案:

答案 0 :(得分:1)

centos默认启用SELinux。

您需要通过运行

关闭
setsebool httpd_can_network_connect on

如果您想了解更多信息,请在互联网上提供相关信息。为了使它坚持你可以运行

setsebool -P httpd_can_network_connect on