Bagaimana cara membuat server web Jetty mendengarkan pada port 80?

13

Saya ingin menggunakan Jetty sebagai server web.

Saya telah mengedit file konfigurasi di /etc/default/jettydan mengatur:

# change to 0 to allow Jetty start
NO_START=0

# Listen to connections from this network host
# Use 0.0.0.0 as host to accept all connections.
JETTY_HOST=0.0.0.0

Sekarang saya dapat mencapai server web Jetty di http://192.168.1.10:8080tetapi saya ingin memiliki Jetty mendengarkan pada port 80.

Saya telah mencoba pengaturan ini dalam file konfigurasi yang sama:

# The network port used by Jetty
JETTY_PORT=80

dan kemudian mulai kembali Jetty dengan sudo service jetty restarttetapi tidak berhasil.

Bagaimana saya bisa berubah sehingga server web Jetty mendengarkan pada port 80?

Jonas
sumber
Anda dapat mengubahnya juga dari start.ini (jetty root), di sana Anda memiliki -> jetty.port - line, batalkan komentar dan beri nilai (defaultnya adalah 8080)
Rodislav Moldovan

Jawaban:

7

Anda perlu mengedit /etc/jetty/jetty.xmlfile. Cari paragraf yang mengatakan:

<Call name="addConnector">
      <Arg>
          <New class="org.mortbay.jetty.nio.SelectChannelConnector">
            <Set name="host"><SystemProperty name="jetty.host" /></Set>
            <Set name="port"><SystemProperty name="jetty.port" default="8090"/></Set>
            <Set name="maxIdleTime">30000</Set>
            <Set name="Acceptors">2</Set>
            <Set name="statsOn">false</Set>
            <Set name="confidentialPort">8443</Set>
        <Set name="lowResourcesConnections">5000</Set>
        <Set name="lowResourcesMaxIdleTime">5000</Set>
          </New>
      </Arg>
    </Call>

Ubah jetty.portProperti menjadi 80sebagai berikut:

<Set name="port"><SystemProperty name="jetty.port" default="80"/></Set>

Mulai ulang dermaga. Itu harus dilakukan.


Karena metode di atas tidak bekerja untuk OP, dan berjalan sebagai root tidak disarankan, ada metode alternatif, seperti yang disebutkan dalam dokumen ini .

theTuxRacer
sumber
Ini tidak berhasil. Saya juga memeriksa sudo netstat -nlptetapi Jetty tidak terdaftar.
Jonas
Mungkin karena dermaga tidak berjalan sebagai root. Saya mencoba pengaturan, dan akan memposting dalam beberapa saat.
theTuxRacer
Saya bisa mendapatkan halaman default dengan berlari sudo java -jar start.jardari /usr/share/jetty. Saya juga mengkonfigurasi /etc/jetty/jetty-setuid.xmluntuk memulai sebagai pengguna istimewa.
theTuxRacer
Sebagai tambahan lihatlah: menjalankan jetty sebagai pengguna non root .
theTuxRacer
1
Saya menjalankan sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080dan sekarang berfungsi dengan baik. Terima kasih!
Jonas
1

Cara paling rapi untuk melakukannya adalah dengan xinetd (Anda mungkin perlu menginstalnya di server Anda terlebih dahulu) lihat di sini: http://wiki.eclipse.org/Jetty/Howto/Port80

Edward
sumber
1

Saya menggunakan Jetty 9. Dalam file start.ini Anda dapat menemukan dan memodifikasi properti jetty.port. Maka Anda harus me-restart jetty.service.

Sul
sumber
Mungkin bermanfaat jika Anda memperluas jawaban dengan menentukan lokasi file start.ini, baris di start.ini yang harus dimodifikasi, dan teks yang dimodifikasi yang harus digunakan.
CentaurusA