桟橋のプロキシとしてnginxを設定しようとしています。 この回答 で説明されているように何かをしたいのですが、Jettyの場合は鳴りません。
.war
を作成し、それを~/jetty/jetty-dist/webapps/web_test-0.1.0-SNAPSHOT-standalone.war
に配置しました
たとえば、IPアドレス198.51.100.0のドメインexample.comを使用したいとします。
また、/etc/nginx/sites-available/default
をファイルexample.com
にコピーし、同じディレクトリに置いています。
私の場合、nginxをjettyのプロキシとして構成するのを手伝ってもらえますか?これを行う方法についてオンラインで多くの参照があることを私は知っていますが、それらはすべて異なり、私は混乱しました。
Nginxでどのような特定の変更を加える必要がありますか? jetty.xmlにどのような変更を加える必要がありますか?他に変更を加える必要がありますか?私のアプリはexample.com/index.htmlで提供されますか?
Nginxの現在の状態は以下にコピーされます:
upstream jetty {
server 127.0.0.1:8080 fail_timeout=0
}
server {
listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
proxy_pass http://jetty
try_files $uri $uri/ =404;
}
[〜#〜]編集[〜#〜]
Jettyを使う必要があるのかと思っていました。 この設定 では、彼はリングを使用していますが、これは非常に簡単に思えますか?桟橋を使用すると何が得られますか?
Javaサーバーで動作するようにnginxを構成する方法。この例では、Jettyが使用されています。
編集/etc/nginx/sites-available/hostname
:
server {
listen 80;
server_name hostname.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_Host;
}
}
ポート8080への外部アクセスを無効にすることを検討してください。
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 8080 -j REJECT --reject-with tcp-reset
Jetty構成の例(jetty.xml
)は次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.Eclipse.org/jetty/configure_9_0.dtd">
<!--
| http://Eclipse.org/jetty/documentation/current/configuring-connectors.html
+-->
<Configure id="Server" class="org.Eclipse.jetty.server.Server">
<New id="httpConfig" class="org.Eclipse.jetty.server.HttpConfiguration">
<Set name="secureScheme">https</Set>
<Set name="securePort"><Property name="jetty.tls.port" default="8443" /></Set>
<Set name="outputBufferSize">65536</Set>
<Set name="requestHeaderSize">8192</Set>
<Set name="responseHeaderSize">8192</Set>
</New>
<Call name="addConnector">
<Arg>
<New class="org.Eclipse.jetty.server.ServerConnector">
<Arg name="server"><Ref refid="Server" /></Arg>
<Arg name="acceptors" type="int"><Property name="http.acceptors" default="-1"/></Arg>
<Arg name="selectors" type="int"><Property name="http.selectors" default="-1"/></Arg>
<Arg name="factories">
<Array type="org.Eclipse.jetty.server.ConnectionFactory">
<Item>
<New class="org.Eclipse.jetty.server.HttpConnectionFactory">
<Arg name="config"><Ref refid="httpConfig" /></Arg>
</New>
</Item>
</Array>
</Arg>
<Set name="Host"><Property name="jetty.Host" default="localhost" /></Set>
<Set name="port"><Property name="jetty.port" default="8080" /></Set>
</New>
</Arg>
</Call>
</Configure>
これにより、Jettyはlocalhost:808をリッスンし、nginxはリクエストをdomain.com:8からJettyサーバーにリダイレクトします。