我在同一个Linux RH7 EC2主机上安装了Angular站点和Tomcat Web服务应用程序。我正在尝试从Array
(
[0] => uploads/projects/pathtofile.jpg
[1] => uploads/thumb/projects/pathtofile.jpg
)
提供网站,并通过SSL将/
上的任何内容重定向到我的tomcat实例。
通过SSL服务的静态站点工作正常。此外,如果我点击/service
也可以正常工作。尝试通过http://mydomain:8080/mytomcatapp
设置tomcat应用程序的反向代理,但会产生502个响应。我见过的其他样本对标题等有更多花哨的设置,不确定我是否需要它,建议会很方便。另外我在mytomcatapp的web服务也需要获取参数,所以不确定是否还需要特殊的东西。
nginx conf片段
https://mydomain/service/mytomcatapp
tomcat server.xml代码段
server {
listen 80;
server_name mydomain ;
root /var/www;
index index.html index.htm;
location / {
# index index.html index.htm;
try_files $uri $uri$args $uri/index.html /index.html =404;
}
location /service {
proxy_pass http://mydomain:8080;
}
...
注意:nginx conf中的mydomain已从我的真实域中交换(不想在此处发布)。此外,我尝试使用<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
proxyPort="443"
scheme="https"
/>
属性集的server.xml配置组合,但似乎没有影响它。
谢谢!
答案 0 :(得分:0)
您是否已实施SSL证书?如果您想使用HTTPS,则需要证书。
答案 1 :(得分:0)
结束了阻止代理的SELinux的增强安全状态。参见:
https://www.nginx.com/blog/nginx-se-linux-changes-upgrading-rhel-6-6/
您需要通过运行以下命令将其设置为许可模式:setenforce 0
作为参考,我在nginx配置中的最终位置块对于其他任何尝试的人来说都是如此,花了一些时间来做对。请注意,location
和proxy_pass
变量的尾部斜杠非常很重要。
location /service/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://example.com:8080/;
}