解决nginx中proxy_pass到tomcat的session丢失问题
引言
一直以来我都是用nginx1.5.7来作为web服务器和代理服务器来使用,一直都是一个应用对应一个Tomcat也就是一个端口,也只对应一个域名。
今天把服务器上的Tomcat整合了一下,5个应用共用一个Tomcat。
最先出现的问题是,用户等进入后台时出现异常,找不到登录的用户信息!
经调试发现是request请求变成了多个,并且session也不一致,感觉就像是另一个浏览器在访问,得出结论:肯定是session丢失了!
原因
经过认真的分析,得出结论:问题出在Nginx的配置上!
<code>server_name www<span>.</span>weixin4j<span>.</span>org; charset utf<span>-</span><span>8</span>; root /opt/apache<span>-tomcat</span><span>-</span><span>7.0</span><span>.53</span>/webapps/weixin4j<span>/</span>; location <span>/</span> { proxy_pass http:<span>//127.0.0.1:8180/weixin4j/;</span> proxy_set_header Host <span>$host</span>; proxy_set_header X<span>-Real</span><span>-IP</span><span>$remote_addr</span>; proxy_set_header X<span>-Forwarded</span><span>-For</span><span>$proxy_add_x_forwarded_for</span>; }</code>
此配置会导致cookie存储的位置不是基于“/”那么在第二次访问的时候会从新创建session,因此session中的信息丢失。
解决方案
修改cookie的存储路径
<code>server_name www<span>.</span>weixin4j<span>.</span>org; charset utf<span>-</span><span>8</span>; root /opt/apache<span>-tomcat</span><span>-</span><span>7.0</span><span>.53</span>/webapps/weixin4j<span>/</span>; location <span>/</span> { proxy_pass http:<span>//127.0.0.1:8180/weixin4j/;</span> proxy_set_header Host <span>$host</span>; proxy_set_header X<span>-Real</span><span>-IP</span><span>$remote_addr</span>; proxy_set_header X<span>-Forwarded</span><span>-For</span><span>$proxy_add_x_forwarded_for</span>; add_header From www<span>.</span>weixin4j<span>.</span>org; proxy_cookie_path /weixin4j<span>/</span><span>/</span>; proxy_set_header Cookie <span>$http_cookie</span>; }</code>
重启服务,测试!
通过!
以上就介绍了解决nginx中proxy_pass到tomcat的session丢失问题,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Untuk menggunakan projek JAR ke Tomcat, ikut langkah berikut: Muat turun dan nyahzip Tomcat. Konfigurasikan fail server.xml, tetapkan port dan laluan penggunaan projek. Menyalin fail JAR ke laluan penggunaan yang ditentukan. Mulakan Tomcat. Akses projek yang digunakan menggunakan URL yang disediakan.

Untuk membenarkan pelayan Tomcat mengakses rangkaian luaran, anda perlu: mengubah suai fail konfigurasi Tomcat untuk membenarkan sambungan luaran. Tambahkan peraturan tembok api untuk membenarkan akses kepada port pelayan Tomcat. Buat rekod DNS yang menunjukkan nama domain ke IP awam pelayan Tomcat. Pilihan: Gunakan proksi terbalik untuk meningkatkan keselamatan dan prestasi. Pilihan: Sediakan HTTPS untuk meningkatkan keselamatan.

Direktori pemasangan Tomcat: Laluan lalai: Windows: C:\Program Files\Apache Software Foundation\Tomcat 9.0macOS:/Library/Tomcat/Tomcat 9.0Linux:/opt/tomcat/tomcat9 Laluan tersuai: Anda boleh menentukannya semasa pemasangan. Cari direktori pemasangan: gunakan whereis atau locate arahan.

Untuk menggunakan berbilang projek melalui Tomcat, anda perlu mencipta direktori aplikasi web untuk setiap projek dan kemudian: Penggunaan automatik: Letakkan direktori aplikasi web dalam direktori aplikasi web Tomcat. Penggunaan manual: Gunakan projek secara manual dalam aplikasi pengurus Tomcat. Sebaik sahaja projek itu digunakan, ia boleh diakses dengan nama penggunaannya, contohnya: http://localhost:8080/project1.

Cara menyemak bilangan sambungan Tomcat serentak: Lawati halaman Pengurus Tomcat (http://localhost:8080/manager/html) dan masukkan nama pengguna dan kata laluan anda. Klik Status->Sesi dalam bar navigasi kiri untuk melihat bilangan sambungan serentak di bahagian atas halaman.

Direktori akar tapak web Tomcat terletak dalam subdirektori webapps Tomcat dan digunakan untuk menyimpan fail aplikasi web, sumber statik dan direktori WEB-INF ia boleh didapati dengan mencari atribut docBase dalam fail konfigurasi Tomcat.

Nombor port Tomcat boleh dilihat dengan menyemak atribut port elemen <Connector> dalam fail server.xml. Lawati antara muka pengurusan Tomcat (http://localhost:8080/manager/html) dan lihat tab "Status". Jalankan "versi catalina.sh" dari baris arahan dan lihat baris "Port:".

Menjalankan projek dengan nombor port yang berbeza pada pelayan Tomcat memerlukan langkah berikut: Ubah suai fail server.xml dan tambah elemen Penyambung untuk menentukan nombor port. Tambah elemen Konteks untuk menentukan aplikasi yang dikaitkan dengan nombor port. Buat fail WAR dan gunakannya ke direktori yang sepadan (webapps atau webapps/ROOT). Mulakan semula Tomcat untuk menggunakan perubahan.
