Đám mây dành cho tổ chức từ thiện: Hướng dẫn di chuyển

Đám mây dành cho tổ chức từ thiện: Hướng dẫn di chuyển

Cách đây không lâu, Mail.Ru Cloud Solutions (MCS) và dịch vụ Dobro Mail.Ru đã khởi động dự án “Đám mây dành cho tổ chức từ thiện”, nhờ đó các tổ chức phi lợi nhuận có thể lấy tài nguyên của nền tảng đám mây MCS miễn phí. Quỹ từ thiện "Số học của lòng tốt» tham gia dự án và triển khai thành công một phần cơ sở hạ tầng dựa trên MCS.

Sau khi vượt qua quá trình xác thực, NPO có thể nhận được dung lượng ảo từ MCS, nhưng việc cấu hình thêm đòi hỏi phải có trình độ nhất định. Trong tài liệu này, chúng tôi muốn chia sẻ các hướng dẫn cụ thể về cách thiết lập máy chủ dựa trên Ubuntu Linux để chạy trang web nền tảng chính và một số tên miền phụ sử dụng chứng chỉ SSL miễn phí. Đối với nhiều người, đây sẽ là một hướng dẫn đơn giản nhưng chúng tôi hy vọng rằng kinh nghiệm của chúng tôi sẽ hữu ích cho các tổ chức phi lợi nhuận khác và không chỉ.

FYI: Bạn có thể nhận được gì từ MCS? 4 CPU, RAM 32 GB, ổ cứng 1 TB, hệ điều hành Ubuntu Linux, bộ nhớ đối tượng 500 GB.

Bước 1: khởi chạy máy chủ ảo

Hãy đi thẳng vào vấn đề và tạo máy chủ ảo của chúng tôi (còn gọi là “phiên bản”) trong tài khoản cá nhân MCS của bạn. Trong cửa hàng ứng dụng, bạn cần chọn và cài đặt ngăn xếp LAMP làm sẵn, đây là bộ phần mềm máy chủ (LAMP = Linux, Apache, MySQL, PHP) cần thiết để chạy hầu hết các trang web.

Đám mây dành cho tổ chức từ thiện: Hướng dẫn di chuyển
Đám mây dành cho tổ chức từ thiện: Hướng dẫn di chuyển
Đám mây dành cho tổ chức từ thiện: Hướng dẫn di chuyển
Chọn cấu hình máy chủ phù hợp và tạo khóa SSH mới. Sau khi nhấp vào nút “Cài đặt”, quá trình cài đặt máy chủ và ngăn xếp LAMP sẽ bắt đầu, quá trình này sẽ mất một chút thời gian. Hệ thống cũng sẽ đề nghị tải khóa riêng về máy tính của bạn để quản lý máy ảo thông qua bảng điều khiển, hãy lưu nó.

Sau khi cài đặt ứng dụng, chúng ta hãy thiết lập ngay tường lửa, việc này cũng được thực hiện trên tài khoản cá nhân của bạn: vào phần “Điện toán đám mây -> Máy ảo” và chọn “Cài đặt tường lửa”:

Đám mây dành cho tổ chức từ thiện: Hướng dẫn di chuyển
Bạn cần thêm quyền cho lưu lượng truy cập đến qua cổng 80 và 9997. Điều này là cần thiết trong tương lai để cài đặt chứng chỉ SSL và hoạt động với phpMyAdmin. Kết quả là, bộ quy tắc sẽ trông như thế này:

Đám mây dành cho tổ chức từ thiện: Hướng dẫn di chuyển
Bây giờ bạn có thể kết nối với máy chủ của mình thông qua dòng lệnh bằng giao thức SSH. Để thực hiện việc này, hãy nhập lệnh sau, trỏ đến khóa SSH trên máy tính và địa chỉ IP bên ngoài của máy chủ của bạn (bạn có thể tìm thấy lệnh này trong phần “Máy ảo”):

$ ssh -i /путь/к/ключу/key.pem ubuntu@<ip_сервера>

Khi kết nối với máy chủ lần đầu tiên, bạn nên cài đặt tất cả các bản cập nhật hiện tại trên đó và khởi động lại. Để thực hiện việc này, hãy chạy các lệnh sau:

$ sudo apt-get update

Hệ thống sẽ nhận được danh sách các bản cập nhật, cài đặt chúng bằng lệnh này và làm theo hướng dẫn:

$ sudo apt-get upgrade

Sau khi cài đặt các bản cập nhật, hãy khởi động lại máy chủ:

$ sudo reboot

Bước 2: Thiết lập máy chủ ảo

Nhiều tổ chức phi lợi nhuận cần duy trì một số miền hoặc miền phụ cùng lúc (ví dụ: một trang web chính và một số trang đích cho các chiến dịch quảng cáo, v.v.). Tất cả điều này có thể được đặt thuận tiện trên một máy chủ bằng cách tạo một số máy chủ ảo.

Đầu tiên chúng ta cần tạo cấu trúc thư mục cho các trang web sẽ được hiển thị cho khách truy cập. Hãy tạo một số thư mục:

$ sudo mkdir -p /var/www/a-dobra.ru/public_html

$ sudo mkdir -p /var/www/promo.a-dobra.ru/public_html

Và chỉ định chủ sở hữu của người dùng hiện tại:

$ sudo chown -R $USER:$USER /var/www/a-dobra.ru/public_html

$ sudo chown -R $USER:$USER /var/www/promo.a-dobra.ru/public_html

Biến $USER chứa tên người dùng mà bạn hiện đang đăng nhập (theo mặc định đây là người dùng ubuntu). Bây giờ người dùng hiện tại sở hữu các thư mục public_html nơi chúng tôi sẽ lưu trữ nội dung.

Chúng tôi cũng cần chỉnh sửa quyền một chút để đảm bảo rằng quyền truy cập đọc được phép vào thư mục web được chia sẻ cũng như tất cả các tệp và thư mục trong đó. Điều này là cần thiết để các trang của trang web hiển thị chính xác:

$ sudo chmod -R 755 /var/www

Máy chủ web của bạn bây giờ sẽ có các quyền cần thiết để hiển thị nội dung. Ngoài ra, người dùng của bạn hiện có khả năng tạo nội dung trong các thư mục được yêu cầu.

Đã có tệp index.php trong thư mục /var/www/html, hãy sao chép nó vào thư mục mới - bây giờ đây sẽ là nội dung của chúng tôi:

$ cp /var/www/html/index.php /var/www/a-dobra.ru/public_html/index.php

$ cp /var/www/html/index.php /var/www/promo.a-dobra.ru/public_html/index.php

Bây giờ bạn cần đảm bảo rằng người dùng có thể truy cập trang web của bạn. Để thực hiện việc này, trước tiên chúng tôi sẽ định cấu hình các tệp máy chủ ảo, tệp này xác định cách máy chủ web Apache sẽ phản hồi các yêu cầu đến các miền khác nhau.

Theo mặc định, Apache có tệp máy chủ ảo 000-default.conf mà chúng ta có thể sử dụng làm điểm bắt đầu. Chúng tôi sẽ sao chép tệp này để tạo tệp máy chủ ảo cho từng miền của chúng tôi. Chúng ta sẽ bắt đầu với một miền, định cấu hình miền đó, sao chép miền đó sang miền khác và sau đó thực hiện lại các chỉnh sửa cần thiết.

Cấu hình mặc định của Ubuntu yêu cầu mỗi tệp máy chủ ảo phải có phần mở rộng *.conf.

Hãy bắt đầu bằng cách sao chép tệp cho tên miền đầu tiên:

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/a-dobra.ru.conf

Mở tệp mới trong trình chỉnh sửa có quyền root:

$ sudo nano /etc/apache2/sites-available/a-dobra.ru.conf

Chỉnh sửa dữ liệu như sau, chỉ định cổng 80, dữ liệu của bạn cho ServerAdmin, ServerName, ServerAlias, cũng như đường dẫn đến thư mục gốc của trang web, hãy lưu tệp (Ctrl+X, rồi Y):

<VirtualHost *:80>
 
    ServerAdmin [email protected]
    ServerName a-dobra.ru
    ServerAlias www.a-dobra.ru
 
    DocumentRoot /var/www/a-dobra.ru/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
 
    <Directory /var/www/a-dobra.ru/public_html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
 
    <FilesMatch .php$>
        SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
    </FilesMatch>
 
</VirtualHost>

ServerName đặt tên miền chính phải khớp với tên máy chủ ảo. Đây phải là tên miền của bạn. Thứ hai, ServerAlias, xác định các tên khác nên được hiểu như thể đó là tên miền chính. Điều này thuận tiện cho việc sử dụng các tên miền bổ sung, ví dụ như sử dụng www.

Hãy sao chép cấu hình này cho một máy chủ khác và cũng chỉnh sửa nó theo cách tương tự:

$ sudo cp /etc/apache2/sites-available/a-dobra.ru.conf /etc/apache2/sites-available/promo.a-dobra.ru.conf

Bạn có thể tạo bao nhiêu thư mục và máy chủ ảo cho trang web của mình tùy thích! Bây giờ chúng ta đã tạo các tệp máy chủ ảo, chúng ta cần kích hoạt chúng. Chúng tôi có thể sử dụng tiện ích a2ensite để kích hoạt từng trang web của mình như thế này:

$ sudo a2ensite a-dobra.ru.conf

$ sudo a2ensite promo.a-dobra.ru.conf 

Theo mặc định, cổng 80 bị đóng trong LAMP và sau này chúng tôi sẽ cần cổng này để cài đặt chứng chỉ SSL. Vì vậy, hãy chỉnh sửa ngay tệpports.conf và sau đó khởi động lại Apache:

$ sudo nano /etc/apache2/ports.conf

Thêm một dòng mới và lưu tệp để nó trông như thế này:

Listen 80
Listen 443
Listen 9997

Sau khi hoàn tất cài đặt, bạn cần khởi động lại Apache để tất cả các thay đổi có hiệu lực:

$ sudo systemctl reload apache2

Bước 3: Thiết lập tên miền

Tiếp theo, bạn cần thêm bản ghi DNS sẽ trỏ đến máy chủ mới của bạn. Để quản lý tên miền, Arithmetic of Good Foundation của chúng tôi sử dụng dịch vụ dns-master.ru, chúng tôi sẽ hiển thị nó bằng một ví dụ.

Việc thiết lập bản ghi A cho tên miền chính thường được chỉ định như sau (ký tên @):

Đám mây dành cho tổ chức từ thiện: Hướng dẫn di chuyển
Bản ghi A cho tên miền phụ thường được chỉ định như sau:

Đám mây dành cho tổ chức từ thiện: Hướng dẫn di chuyển
Địa chỉ IP là địa chỉ của máy chủ Linux mà chúng ta vừa tạo. Bạn có thể chỉ định TTL = 3600.

Sau một thời gian, bạn sẽ có thể truy cập trang web của mình, nhưng hiện tại chỉ thông qua http://. Trong bước tiếp theo, chúng tôi sẽ thêm hỗ trợ https://.

Bước 4: Thiết lập chứng chỉ SSL miễn phí

Bạn có thể nhận chứng chỉ SSL Let's Encrypt miễn phí cho trang web chính của mình và tất cả các tên miền phụ. Bạn cũng có thể định cấu hình tự động gia hạn, rất thuận tiện. Để có được chứng chỉ SSL, hãy cài đặt Certbot trên máy chủ của bạn:

$ sudo add-apt-repository ppa:certbot/certbot

Cài đặt gói Certbot cho Apache bằng cách sử dụng apt:

$ sudo apt install python-certbot-apache 

Bây giờ Certbot đã sẵn sàng để sử dụng, hãy chạy lệnh:

$ sudo certbot --apache -d a-dobra.ru -d www.a-dobra.ru -d promo.a-dobra.ru

Lệnh này chạy certbot, phím -d xác định tên của các miền mà chứng chỉ sẽ được cấp.

Nếu đây là lần đầu tiên bạn khởi chạy certbot, bạn sẽ được yêu cầu nhập địa chỉ email của mình và đồng ý với các điều khoản sử dụng dịch vụ. certbot sau đó sẽ liên hệ với máy chủ Let's Encrypt rồi xác minh rằng bạn thực sự kiểm soát miền mà bạn đã yêu cầu chứng chỉ.

Nếu mọi thứ đều ổn, certbot sẽ hỏi bạn muốn định cấu hình cấu hình HTTPS như thế nào:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Chúng tôi khuyên bạn nên chọn tùy chọn 2 và nhấn ENTER. Cấu hình sẽ được cập nhật và Apache sẽ được khởi động lại để áp dụng các thay đổi.

Chứng chỉ của bạn hiện đã được tải xuống, cài đặt và hoạt động. Hãy thử tải lại trang web của bạn bằng https:// và bạn sẽ thấy biểu tượng bảo mật trong trình duyệt của mình. Nếu bạn kiểm tra máy chủ của mình Kiểm tra máy chủ SSL Labs, anh ấy sẽ nhận được điểm A.

Chứng chỉ Let's Encrypt chỉ có hiệu lực trong 90 ngày, nhưng gói certbot chúng ta vừa cài đặt sẽ tự động gia hạn chứng chỉ. Để kiểm tra quá trình cập nhật, chúng tôi có thể chạy thử certbot:

$ sudo certbot renew --dry-run 

Nếu bạn không thấy bất kỳ lỗi nào do chạy lệnh này thì mọi thứ đều hoạt động!

Bước 5: Truy cập MySQL và phpMyAdmin

Nhiều trang web sử dụng cơ sở dữ liệu. Công cụ phpMyAdmin để quản lý cơ sở dữ liệu đã được cài đặt trên máy chủ của chúng tôi. Để truy cập nó, hãy truy cập trình duyệt của bạn bằng liên kết như:

https://<ip-адрес сервера>:9997

Mật khẩu để truy cập root có thể được lấy trong tài khoản cá nhân MCS của bạn (https://mcs.mail.ru/app/services/marketplace/apps/). Đừng quên thay đổi mật khẩu root trong lần đăng nhập đầu tiên!

Bước 6: Thiết lập upload file qua SFTP

Các nhà phát triển sẽ thấy thuận tiện khi tải tệp lên trang web của bạn thông qua SFTP. Để làm điều này, chúng tôi sẽ tạo một người dùng mới, gọi anh ấy là quản trị trang web:

$ sudo adduser webmaster

Hệ thống sẽ yêu cầu bạn đặt mật khẩu và nhập một số dữ liệu khác.

Thay đổi chủ sở hữu thư mục với trang web của bạn:

$ sudo chown -R webmaster:webmaster /var/www/a-dobra.ru/public_html

Bây giờ, hãy thay đổi cấu hình SSH để người dùng mới chỉ có quyền truy cập vào SFTP chứ không phải thiết bị đầu cuối SSH:

$ sudo nano /etc/ssh/sshd_config

Cuộn đến cuối tệp cấu hình và thêm khối sau:

Match User webmaster
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/www/a-dobra.ru
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Lưu tệp và khởi động lại dịch vụ:

$ sudo systemctl restart sshd

Bây giờ bạn có thể kết nối với máy chủ thông qua bất kỳ ứng dụng khách SFTP nào, chẳng hạn như thông qua FileZilla.

Tổng

  1. Bây giờ bạn đã biết cách tạo thư mục mới và định cấu hình máy chủ ảo cho trang web của mình trong cùng một máy chủ.
  2. Bạn có thể dễ dàng tạo các chứng chỉ SSL cần thiết - nó miễn phí và chúng sẽ được cập nhật tự động.
  3. Bạn có thể làm việc thuận tiện với cơ sở dữ liệu MySQL thông qua phpMyAdmin quen thuộc.
  4. Tạo tài khoản SFTP mới và thiết lập quyền truy cập không đòi hỏi nhiều nỗ lực. Những tài khoản như vậy có thể được chuyển cho các nhà phát triển web và quản trị viên trang web của bên thứ ba.
  5. Đừng quên cập nhật hệ thống định kỳ và chúng tôi cũng khuyên bạn nên tạo bản sao lưu - trong MCS, bạn có thể chụp “ảnh chụp nhanh” toàn bộ hệ thống chỉ bằng một cú nhấp chuột và sau đó, nếu cần, khởi chạy toàn bộ hình ảnh.

Các tài nguyên đã sử dụng có thể hữu ích:

https://www.digitalocean.com/community/tutorials/apache-ubuntu-14-04-lts-ru
https://www.digitalocean.com/community/tutorials/apache-let-s-encrypt-ubuntu-18-04-ru
https://www.digitalocean.com/community/tutorials/how-to-enable-sftp-without-shell-access-on-ubuntu-18-04

Ngẫu nhiên, đây Bạn có thể đọc trên VC cách tổ chức của chúng tôi triển khai nền tảng giáo dục trực tuyến cho trẻ mồ côi dựa trên đám mây MCS.

Nguồn: www.habr.com

Thêm một lời nhận xét