[Case Study] – bị thay đổi IP VPS và Nginx không hoạt động

Mới đây mình gặp 1 case khi nhà cung cấp thông báo đổi IP cho list rất nhiều VPS, và kết quả sau khi đổi là máy chủ Nginx sẽ không hoạt động do IP cũ và IP mới cần phải config và replace lại chúng mới hoạt động bình thường được và bài này là case để bạn đổi nhanh IP từ cũ sang mới để máy chủ Nginx hoạt động trở lại bình thường.

Trước tiên nếu bạn test Nginx sẽ ra lỗi sẽ gặp thông báo lỗi ví dụ như: nginx -t

nginx: [warn] protocol options redefined for 216.73.158.23:443 in /etc/nginx/fastpanel2-sites/vts_usr/vutruso.com.conf:67
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] bind() to 216.73.158.23:80 failed (99: Cannot assign requested address)
nginx: configuration file /etc/nginx/nginx.conf test failed

Kiểm tra tình trạng Nginx status cũng sẽ báo lỗi như sau: sudo systemctl status nginx

root@vps394:~# sudo systemctl status nginx
× nginx.service - nginx - high performance web server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Thu 2024-03-07 19:14:00 PST; 3min 24s ago
       Docs: https://nginx.org/en/docs/
    Process: 1841 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)
        CPU: 8ms

Để giải quyết vấn đề đổi từ IP A sang IP B thì bạn có thể chạy các lệnh sau:

Trước tiên bạn có thể tìm được các file đang config listen IP với lệnh sudo grep -R "216.73.158.183" /etc/nginx/

root@vps394:~# sudo grep -R "216.73.158.23" /etc/nginx/
/etc/nginx/panel2-sites/vutruso_usr/vutruso.com.conf:    listen 216.73.158.183:443 ssl  http2 ;
/etc/nginx/panel2-sites/vutruso_usr/vutruso.com.conf:    listen 216.73.158.183:80;
/etc/nginx/panel2-sites/vutruso_usr/vutruso.com.conf:    listen 216.73.158.183:80;
/etc/nginx/panel2-sites/vutruso_usr/vutruso.com.conf:    listen 216.73.158.183:443 ssl http2 ;

Sau đó bạn có thể chạy lệnh phía dưới để tìm kiếm và thay thế IP cũ thành IP VPS mới

sudo find /etc/nginx/ -type f -name "*.conf" -exec grep -l "216.73.158.183" {} \; | xargs sudo sed -i 's/216.73.158.183/83.147.43.217/g'

Ví dụ IP cũ là 216.73.158.183 và IP mới là 83.147.43.217

Giờ bạn có thể khởi chạy Nginx với lệnh sudo systemctl start nginx sau đó enable nginx lên sudo systemctl enable nginx

Sau khi chạy Nginx bạn có thể xem tình trạng Nginx với lệnh sudo systemctl status nginx

Vậy là xong, hy vọng bài viết sẽ giúp ích cho nhiều người đang sử dụng VPS chạy trên và gặp tình trạng bị nhà cung cấp đổi IP đột ngột.

Nếu bạn thấy bài viết có ích hãy sao chép link và chia sẻ bài viết
user

Yêu thích Võ thuật và Công nghệ thông tin, thích viết và chia sẽ về 2 lĩnh vực này thế thôi :D

Bài viết liên quan