Hỏi về cách cài đặt nginx reverse proxy

Discussion in 'Hỏi Đáp Kỹ Thuật' started by langriser, Feb 27, 2021.

  1. langriser

    langriser Sơ Nhập Giang Hồ

    Em ko rành code, chỉ được cái chịu khó google rồi next next. Hiện em mới làm 1 site phim nho nhỏ trên hetzner, cài đặt vppsim và cloudfare chạy ngon lành. Một ngày đẹp trời em đọc bài này https://cafemmo.club/threads/thao-luan-va-chia-se-cach-ignore-dmca.2334/, liên hệ bác chủ Top bác ấy bảo khi nào site lớn thì biết DMCA là gì. Nghe cũng có lý phòng hờ từ xa trước, nên hôm nay em qua veesp mua 1 VPS, rồi cũng cài đặt vppsim, sau khi cài xong truy cập vào IP nó sẽ ra trang này : Nginx Test Page - Server Setup by VPSSIM, rồi sau đó em vào sửa cái file vpssim.demo.conf trong /etc/nginx/conf.d, copy nội dung trong topic trên ra được cái file này :
    (domain phim.com là domain bên veesp, http://190.200.140.200 là địa chỉ web đang chạy bên hetzner)

    Code:
    server {
    listen 80;
    server_name phim.com ;
    access_log /var/log/nginx/access.log;
    
    location / {
    
    proxy_set_header Host $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;
    
    proxy_pass http://190.200.140.200;
    proxy_read_timeout 90;
    
    proxy_redirect http://190.200.140.200 http://phim.com;
    }
    }
    
    
    #///////////////////////////////////////////////////////
    #Run all the websites,if you use your rule, comment or delete the line below (AAA)
    include /etc/nginx/conf/all.conf;
    
    #If you use your rule, comment or delete above line, and  Uncoment 3 lines belows and set your rule within it..
    #location / {
    #Uncomment 3 lines and set your rules here!
    #}
    
    #security, sql injection Propeller ....(uncoment if you want to use). Because some website plugins do not run with this config, so vpssim to turn off default
    #include /etc/nginx/conf/block.conf;
    
    # Error Page
    #error_page 403 /errorpage_html/403.html;
    #error_page 404 /errorpage_html/404.html;
    #error_page 405 /errorpage_html/405.html;
    #error_page 502 /errorpage_html/502.html;
    #error_page 503 /errorpage_html/503.html;
    #error_page 504 /errorpage_html/504.html;
    #location ^~ /errorpage_html/ {
    #  internal;
    #  root /home/vpssim.demo;
    #  access_log  off;
    #}
      location ~ \.php$ {
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_connect_timeout 120;
      fastcgi_send_timeout 180;
      fastcgi_read_timeout 180;
      fastcgi_buffer_size 256k;
      fastcgi_buffers 4 256k;
      fastcgi_busy_buffers_size 256k;
      fastcgi_temp_file_write_size 256k;
      fastcgi_intercept_errors on;
      fastcgi_param SCRIPT_FILENAME /home/vpssim.demo/public_html$fastcgi_script_name;
      }
    
    include /etc/nginx/conf/staticfiles.conf;
    #include /etc/nginx/conf/phpstatus.conf;
    include /etc/nginx/conf/drop.conf;
    
    }
    server {
      listen  888;
      access_log  off;
      log_not_found  off;
      error_log  off;
      root /home/vpssim.demo/private_html;
      auth_basic "Authorization Required ( Get User & Password at /home/VPSSIM-manage-info.txt or Create new one by : VPSSIM menu -> Bao Mat Server & Website -> User & Password Mac Dinh )";
      auth_basic_user_file  /etc/nginx/.htpasswd;
      index index.php index.html index.htm;
      server_name vpssim.demo;
      location / {
      try_files $uri $uri/ /index.php;
      }
      location /nginx_status {
      stub_status on;
      access_log  off;
      }
      location /php_status {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME  /home/vpssim.demo/public_html$fastcgi_script_name;
      include /etc/nginx/fastcgi_params;
      }
      location ~ \.php$ {
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_connect_timeout 1000;
      fastcgi_send_timeout 1000;
      fastcgi_read_timeout 1000;
      fastcgi_buffer_size 256k;
      fastcgi_buffers 4 256k;
      fastcgi_busy_buffers_size 256k;
      fastcgi_temp_file_write_size 256k;
      fastcgi_intercept_errors on;
      fastcgi_param SCRIPT_FILENAME /home/vpssim.demo/private_html$fastcgi_script_name;
      }
      location ~* \.(bak|back|bk)$ {
      deny all;
      }
    }
    Kết quả là nó ko chạy, nên em post lên đây hỏi mấy bác có kinh nghiệm cài đặt nginx reverse proxy với vpssim giúp em với, em cảm ơn nhiều.
     
  2. Tạ hơi nặng

    Tạ hơi nặng Bang Chúng

    Tạo tên miền y chang vps gốc rồi chỉnh config của domain đó nhé k chỉnh demo
     
  3. langriser

    langriser Sơ Nhập Giang Hồ

    Bác thông cảm cho em hỏi lại cho kỹ. Hiện em đang có tên miền phim1.com và IP v1 đang chạy trên hetzner. Hôm nay em mua tên miền phim2.com và IP v2 của veesp. 2 domain em đều đã trỏ qua cloudfare. Mục tiêu của em là khi truy cập vào phim2.com nó sẽ trỏ tới VPS hetzner. Như trên tại veesp em setup vpssim, chưa cài website gì hết thì theo mặc định nó ra trang Nginx Test Page - Server Setup by VPSSIM và trong /etc/nginx/conf.d có file vpssim.demo.conf. Giờ theo bác thì trong /etc/nginx/conf.d, ta tạo 1 file mới là phim1.com.conf với nội dung như trên hả bác. Em hiểu là vậy để em test thử. Cảm ơn bác.
     
  4. Nai

    Nai MiddleMan Staff Member

    Hỏi kỹ gì mà khó hiểu quá thớt.
    Tính năng xịn xò chứ cấu hình đơn giản lắm, làm như bác @Tạ hơi nặng nói là đơn giản nhất.
    2 năm trước mình cũng tập tành làm site con nhà nghèo mà lên ko nổi nên bỏ rồi, lâu quá rồi ko nhớ, chỉ nhớ là nó rất đơn giản :D
    Mình có bookmark lại trang hướng dẫn này nên chắc là mình đã làm theo hướng dẫn này rồi
    https://viblo.asia/p/cau-hinh-reverse-proxy-tren-nginx-Az45bGxqKxY
     
  5. langriser

    langriser Sơ Nhập Giang Hồ

    Mình đã tạo 1 file mới và copy như vậy nhưng khi truy cập domain phim2.com nó vẫn chạy ra trang Nginx Test Page - Server Setup by VPSSIM, chứ ko chạy ra nội dng trang phim1.com. Mình đang nghi ngờ lỗi do thằng cloudflare nó chặn ở đâu đó.
     
  6. Nai

    Nai MiddleMan Staff Member

    Server gốc (chứa phim):
    - IP 190.200.140.200
    Server làm reverse proxy
    - IP x (103.123.456.789)
    Domain phimhot.com cấu hình DNS trỏ IP về 103.123.456.789
     
  7. langriser

    langriser Sơ Nhập Giang Hồ

    Sau 1 hồi vọc thì mình phát hiện ra VPS chính chứa database cài bằng vpssim nó đã chỉnh bảo mật gì đó, cổng 80 nó đóng từ hồi nào, giờ không biết nối qua bằng cổng gì nữa {beat_shot}
     
  8. Nai

    Nai MiddleMan Staff Member

    port 80 hoạt động thì gõ IP sẽ vào được trang thế này nếu cài vpssim
    upload_2021-2-27_23-40-45.png
     
  9. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Chi tiết thì anh đã nói hết ở topic này https://cafemmo.club/threads/thao-luan-va-chia-se-cach-ignore-dmca.2334/
    Tuy nhiên, mỗi người cài một script quản lý vps riêng, có bạn cài vpssim, hocvps, hay gì gì đó.
    Anh làm sao mà nắm rõ hết được. A chỉ hướng dẫn được vậy thôi.
    Hơn nữa, e cần nắm rõ nginx một chút thì dễ. A yêu cầu e tìm hiểu kỹ về nginx, cài script nào thì phải biết nginx của domain là file nào để sửa nhé. Chúc e thành công.
     
  10. langriser

    langriser Sơ Nhập Giang Hồ

    Khi cài vpssim nó có hỏi cái port php gì đó, khi cài xong vpssim thì nếu vào domain phim2.com, nó sẽ hiện ra trang chủ đó, còn nếu vào phim2.com:80 nó sẽ bị lỗi.

    Sau một hồi vọc ko ra, em thử lên google gõ script nginx reverse proxy, và ơ kìa, nó hiện ra kết quả có 1 script có thể setup reverse proxy là webinoly khi cài trên 2 máy. Thế là em cài lại domain 1 : phim1.com 1 web wordpress bằng script, domain 2 làm theo hướng dẫn của nó là
    sudo site phim2.com-proxy=xxx.xxx.xxx.xxx:80 ( với xxx là địa chỉ IP phim1.com) và nó éo chạy được, sau một lúc bối rối, em sửa lại là
    sudo site phim2.com-proxy=phim1.com:80 thì nó hoạt động. Giờ đây khi truy cập vào domain phim2.com nó sẽ hiện ra trang phim1.com. Em mừng ghê, nhưng mà từ từ, nó hiện ra trang phim1 với toàn bộ link bài viết đều thể hiện rõ địa chỉ phim1.com ??? như vậy sao giấu IP được...sau đó vào đọc tiếp hướng dẫn nó bảo vào chạy lệnh này để đổi IP
    real_ip_headerX-Forwarded-For;
    set_real_ip_from0.0.0.0/0;
    và ơ kìa, file cần sửa nó nằm ở /etc/nginx/sites-available/phim2.com chứ ko phải /etc/nginx/conf.d như một bài viết ở trang viblo hướng dẫn..lúc này em ngộ ra là mỗi script cái file nginx nó nằm ở chỗ khác nhau, như vpssim ko biết nó nằm ở đâu, trong khi cứ cắm đầu sửa file trong /etc/nginx/conf.d, còn với script webinoly, /etc/nginx/conf.d có 2 file chả liên quan gì tới phim2.com.
    Sau khi nhập xong, F5 và cái nội dung trang phim2.com nó vẫn như cũ, xem lại hướng dẫn và thấy cái ghi chú quên đọc : This article is for Amazon AWS only....
    Đó là kết quả em vọc tối qua đến giờ, để hôm nay rảnh em vọc tiếp.
     
  11. firefox

    firefox Bang Chúng

    Thật ra thì cái vps nginx làm proxy càng cài đồ có sẵn kiểu vpssim, panel này kia thì nó càng rối. Trong khi tự cài nó dễ vô cùng
     
    langriser and Thanh Nguyen like this.
  12. Nai

    Nai MiddleMan Staff Member

    TÓm lại là thớt sai cái phần mô hình rồi. Tại sao lại là là 2 domain phim1.com và phim2.com được, chỉ 1 domain duy nhất thôi
     
  13. langriser

    langriser Sơ Nhập Giang Hồ

    Đúng rồi bác, do mấy cái script nó có thêm bảo mật, nên nó cài nhiều thứ mà mình ko biết. Muốn chạy được cái này phải set 2 cái VPS, cái VPS proxy thì ko nói gì, cái VPS chính cài bằng script ko biết mò file chỗ nào. Có lẽ em nên tìm hiểu thêm về nghix.

    Bác nói đúng rồi. Do VPS chính cài bằng script như vpssim nó thiết lập cái gì đó mà mình vào IP chính ko được, nó sẽ hiện ra trang nginx, phải vào bằng domain thì mới ra web, nên ở trên lúc cài script webinoly em trỏ IP ko được, thay bằng domain thì lại vào được. Sáng nay em có vào IP web cài bằng script vpssim và webinoly nó cũng trả về trang nginx, chỉ có vào domain phim thì nó mới trả về trang wordpress.
    Tóm lại kết quả :
    - 1 VPS chính chạy script vpssim có web đang chạy, em tạo 1 VPS proxy cấu hình các kiểu nó ko vào được
    - 1 VPS chính chạy script webinoly có web đang chạy, em tạo 1 VPS cũng script webinoly rồi chạy reverse-proxy của script thì nó trả về web VPS chính, nhưng toàn bộ đường link trên web vẫn là địa chỉ của VPS chính, thế thì cũng như không.
    --- Double Post Merged, Feb 28, 2021, Original Post Date: Feb 28, 2021 ---
    Sau bao nhiêu lần vọc cuối cùng mình đã thành công, cảm ơn tất cả mọi người, đặc biệt là bác xmenvn2510 đã hướng dẫn tận tình. Tóm tắt ý chính :
    - Cài domain và Website lên VPS chính trước
    - Chuyển domain sang IP VPS phụ và cài proxy load về cái VPS chính.
    Đơn giản thế mà vọc mãi ko ra. Ai ko rành có thể dùng script Webinol nó có câu lệnh cài sẵn proxy https://webinoly.com/en/documentation/sites/.
     
    Hoa Mãn Lâu likes this.
  14. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Chúc mừng anh nhé. :D
     
    langriser likes this.
  15. Tạ hơi nặng

    Tạ hơi nặng Bang Chúng

    Chúc mừng bác; chắc tại quen chứ e cài ko đến 3 phút kkk
     
  16. Madkelele

    Madkelele Tân Thủ Thôn

    Mấy bác cho hỏi là dùng reverse proxy này delay có lâu không? Hiện tại server mình ở pháp, qua cloudflare thì by pass thôi chứ ko cache, mỗi request tầm 400ms-1.2s. Sợ dùng thằng này thì chậm thêm. Mà lâu lâu cũng dính report DMCA nên cũng sợ :((
    --- Double Post Merged, Mar 24, 2021, Original Post Date: Mar 24, 2021 ---
    Hỏi bác luôn là giờ request có chậm hơn nhiều khi không xài không? chắc cũng gấp rưỡi nhỉ
     
  17. Cái bang

    Cái bang Sơ Nhập Giang Hồ

    Nếu có chậm hơn thì user cũng không cảm nhận được. Cloudflare cũng là nginx proxy đó thôi.
     
  18. Madkelele

    Madkelele Tân Thủ Thôn

    Thank bác, mình hỏi luôn cái là mình có hơn 10 sites, hơn 50k user/ ngày thì xài VPS hay dedicated cho proxy và phần cứng như thế nào thì hợp lý ah?
     
  19. Cái bang

    Cái bang Sơ Nhập Giang Hồ

    VPS đủ rồi,nhưng nên dùng 2 con. Chủ yếu cần network ổn định, chứ ko cần đến CPU, RAM, hay HDD làm gì.
     
    Madkelele and kook like this.