انجمنهای فارسی اوبونتو
کمک و پشتیبانی => شبکه و سرویس دهندهها => نویسنده: elyas74 در 15 شهریور 1393، 04:54 بظ
-
- من یک پروژه node.js دارم که برای مثال روی پورت ۳۰۰۰ در حال اجراست، چطور میتونم از nginx برای کنترل ترافیک این پروژه استفاده کنم.
- توضیحات تکمیلی : در سایت های مختلفی راه های مختلفی بود که مفید نبود(یا حداقل من درست متوجه نشدم)، برای مثال لینک های زیر :
http://stackoverflow.com/questions/5009324/node-js-nginx-and-now/ (http://stackoverflow.com/questions/5009324/node-js-nginx-and-now/)
http://nginx.com/blog/websocket-nginx/ (http://nginx.com/blog/websocket-nginx/)
- ممنون میشم از دوستان اگه ایده ای دارن ارائه بدن.
-
همون لینک اولی توضیحات کافی داده دیگه، مشکل چیه؟
-
- مشکل اینه که بعد از انجام دادن کارهایی که در همون لینک گفته شده نمیتونم در http://localhost ببینم پروژه رو و همچنان به صفحه Welcome to nginx on Fedora! فرستاده میشم.حتما باید دامنه ست شده باشه؟(چون من دارم با یک اسم دامنه برای تست فعلا پیش میرم)
-
خروجی این دستور چیه؟
ls /etc/nginx/sites-enabled/
-
خروجی این دستور چیه؟
ls /etc/nginx/sites-enabled/
- همون لینکی هست که بوجود آوردم(طبق همون آموزش)(sim هم اسم پروژه هست)
lrwxrwxrwx. 1 root root 30 Sep 6 19:20 sim -> /etc/nginx/sites-available/sim
- این هم محتویاتش :
upstream app_yourdomain {
server 127.0.0.1:3000;
}
server {
listen 0.0.0.0:80;
server_name sim.com sim;
access_log /var/log/nginx/sim.log;
location / {
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;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://app_yourdomain/;
proxy_redirect off;
}
}
-
فقط همون یک فایل اونجا هست؟
در ضمن، server_name اسم هاستهایی هست که از طریق اون میتونید این صفحه رو ببینید. یعنی اگر میخواید از طریق localhost اون رو ببینید، باید localhost هم اونجا اضافه کنید.
-
فقط همون یک فایل اونجا هست؟
در ضمن، server_name اسم هاستهایی هست که از طریق اون میتونید این صفحه رو ببینید. یعنی اگر میخواید از طریق localhost اون رو ببینید، باید localhost هم اونجا اضافه کنید.
- بله فقط همون یک فایل هست.
- localhost رو اضافه کردم به قسمت server_name ولی همچنان صفحه پیش فرض nginx روی پورت ۸۰ است.
-
چطوری nginx رو ریستارت کردی؟
-
چطوری nginx رو ریستارت کردی؟
sudo systemctl restart nginx.service
-
توی این صفحه چی میبینید؟
http://localhost/?
-
توی این صفحه چی میبینید؟
http://localhost/?
- هیچی، unable to connect ... ،عکس هاشون رو هم گزاشتم.
- لازم نیست فایل etc/nginx/nginx.conf/ رو تغییر بدم؟
-
اون چیزی که توی localhost میبینی تنها یک Cache از صفحه اولی هست که قدیم باز کردی، nginx اصلا به درستی راه نیفتاده.
-
اون چیزی که توی localhost میبینی تنها یک Cache از صفحه اولی هست که قدیم باز کردی، nginx اصلا به درستی راه نیفتاده.
- حق با شما بود، حالا که درست اجراش کردم در آدرس ?/localhost صفحه زیر میاد. و همچنان در آدرس localhost همون صفحه قبلی.
-
- نهایتا این موضوع حل شد و باید توی آدرس زیر(مثلا فایلی به نام site_name.conf)
/etc/nginx/conf.d/site_name.conf
- همچین محتوایی داشته باشم :
server {
listen 80;
server_name localhost ;
access_log /var/log/nginx/3000.log;
location / {
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;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3000;
proxy_redirect off;
}
}
-
- بعد روی یک سرور دیگه به مشکل خوردم که نهایتا فهمیدم selinux اجازه دست رسی به nginx روی پورت های مورد نظرُ نمیداد. توی این لینک (http://stackoverflow.com/questions/23948527/13-permission-denied-while-connecting-to-upstreamnginx) کاملا توضیح داده داستان چیه.