انجمنهای فارسی اوبونتو
کمک و پشتیبانی => شبکه و سرویس دهندهها => نویسنده: amir133 در 18 امرداد 1400، 06:36 بظ
-
سلام
من با کانفیگ زیر در nginx ترافیک را از سرور ۱ به سرور۲ که در شبکه داخلی ام هست انتقال دادم.
server {
listen 80;
server_name server1.xxxx.ir;
location / {
proxy_pass “http://192.168.1.10” ;
}
}
اما مشکلی که وجود دارد این است که من با کاربران session ایجاد می کنم و آی پی کاربر خیلی برام مهم است. اتفاقی که می افتد برای تمام کاربران آی پی شبکه داخلی سرور اولی(مثلا 192.168.1.9) را نمایش می دهد.
آیا راهی هست که nginx مثلا به عنوان تونل عمل کند و کاربر مستقیم با سرور داخلی در ارتباط باشد و آی پی کاربر بدست من برسد.
یا هر روش دیگری که ارتباط من را با سرور داخلی حفظ و آی پی کاربر هم قابل دسترسی باشد.
البته سرور داخلی من به اینترنت دسترسی دارد ولی من یک Ip static بیشتر ندارم.
-
اگر سوال رو درست متوجه شده باشم، در قسمت location نیاز به اعمال یک سری تنظیمات دارید. کافیه این خط رو اضافه کنید:
include /etc/nginx/proxy_params;
میتونید مستقیم هم محتوای فایل رو در بخش location وارد کنید ولی من ترجیح میدم include کنم. محتوای فایل رو ببینید:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
-
بله تشکر ظاهرا تنها راه ، راهی است که شما معرفی کردید
-
دوستان یک سوال دیگه
من الان reverse proxy رو برای زیر دامنه هام ست کردم و تماما درست کار می کنند.
حالا من می خواهم برای دامنه اصلی این کار را بکنم ولی کار نمی کنه و خود nginx جواب می ده.
در واقع می خواهم درخواست های example.com را به IIS برسونم.
یا اگر بشه یک کار دیگه هم کرد خیلی خوبه
اونم اینکه تمام درخواست های example.com رو به www.example.com تغییر بده.
اگر راهنمایی بفرمایید ممنون می شم.
کد من :
server {
listen 80;
server_name example.com;
location / {
proxy_pass “http://192.168.1.10” ;
}
}
-
اون IIS رو تنظیم کردی که روی این نشونی جواب بده؟
-
آره IIS تنظیم هست