Thứ hai, 21/10/2013 | 00:00 GMT+7

Cách phân phát nhiều blog ma trên một VPS bằng cách sử dụng server block Nginx

Ghost là một nền tảng blog mới tuyệt vời giúp đơn giản hóa quá trình cài đặt và chạy blog. Nó tự hào có một giao diện sạch sẽ và một giao diện dễ sử dụng.


Trong bài viết này, ta sẽ thảo luận về phương pháp sử dụng một VPS để lưu trữ nhiều blog. Ta sẽ cấu hình hai domain sẽ giải quyết các trường hợp Ghost khác nhau được lưu trữ trên cùng một hệ thống.

Yêu cầu


Hướng dẫn này giả định bạn đang bắt đầu trên một server mới đã được cấu hình bằng hình ảnh Ma một lần nhấp. Để biết hướng dẫn về cách tạo blog Ghost trên DigitalOcean , hãy nhấp vào đây.

Điều này cũng giả định bạn có hai domain riêng biệt mà bạn sẽ sử dụng cho mỗi blog của bạn . Cả hai đều phải được chỉ vào version VPS của bạn mà bạn đã tạo cho blog Ghost của bạn . Để tìm hiểu cách cấu hình domain của bạn một cách chính xác , hãy nhấp vào đây.

Cuối cùng, ta giả định bạn đã đăng nhập vào server Ghost của bạn với quyền là user root .

Dừng chạy dịch vụ


Trước khi bắt đầu, ta nên dừng dịch vụ Ghost để tránh các sự cố xảy ra:

service ghost stop 

Điều này sẽ đảm bảo ta không di chuyển các file được mở bằng quá trình Ghost.

Ta muốn làm điều tương tự với nginx, chỉ để an toàn:

service nginx stop 

Sửa đổi cấu hình Nginx


Điều đầu tiên ta cần làm là điều chỉnh cấu hình nginx. Hiện tại, nginx ( web server của ta ) được cấu hình để chuyển tất cả các yêu cầu đến một vị trí duy nhất. Ta cần tạo các đường dẫn khác nhau tùy thuộc vào trang web mà khách truy cập của ta đang cố gắng tiếp cận.

Bắt đầu bằng cách chuyển đến folder nginx nơi Ghost được cấu hình. Ta sẽ đổi tên file cấu hình Ghost để mô tả domain đầu tiên của ta , sau đó sao chép nó vào file đại diện cho domain thứ hai của ta . Những tên này chỉ để ta tham khảo, vì vậy bạn có thể thay đổi chúng theo ý muốn:

<pre>
cd / etc / nginx / sites-enable
mv ghost <span class = “highlight”> firstsite.conf </span>
cp <span class = “highlight”> firstsite.conf </span> <span class = “highlight”> secondsite.conf </span>
</pre>

Mở cấu hình của trang web đầu tiên bằng editor bạn chọn:

<pre>
nano <span class = “highlight”> firstsite.conf </span>
</pre>

Thay đổi thông số server_name để trùng với domain trang web đầu tiên của bạn. Điều quan trọng là phải làm đúng phần này, bởi vì đó là cách duy nhất để nginx biết cá thể Ghost nào cần chuyển quyền điều khiển.

<pre>
server_name <span class = “highlight”> firstsite.com </span>
</pre>

Lưu và đóng file .

Tiếp theo, ta cần thực hiện một thao tác tương tự trên cấu hình trang web thứ hai của bạn . Mở nó bằng editor của bạn:

<pre>
nano <span class = “highlight”> secondsite.conf </span>
</pre>

Ta cần thay đổi lại tham số server_name để trùng với domain của trang web thứ hai của ta . , hãy đảm bảo điều này là chính xác:

<pre>
server_name <span class = “highlight”> secondsite.com </span>
</pre>

Ta cũng cần thay đổi cổng sẽ được sử dụng cho trang web thứ hai của ta . Ngay bây giờ, cấu hình này sẽ gửi tất cả lưu lượng truy cập đến cùng một version node.js, thay vì phân tách nó giữa hai trang web.

Thay đổi thông số proxy_pass . Ta cần thay đổi số cổng ở cuối thành một số khác. Nó có thể là bất kỳ số cổng nào không được quá trình khác sử dụng.

<pre>
proxy_pass http: // localhost: <span class = “highlight”> 2777 </span>
</pre>

Lưu và đóng file .

Khởi động lại nginx bằng lệnh :

service nginx restart 

Thay đổi cấu hình Ghost


Bây giờ, ta cần phản chiếu các thay đổi của bạn trong các file cấu hình Ghost. Đi tới folder root của web:

cd /var/www 

Ta cần tạo một folder cho mỗi trang web Ghost của ta :

<pre>
mkdir <span class = “highlight”> firstsite.com </span>
mkdir <span class = “highlight”> secondsite.com </span>
</pre>

Bây giờ, ta cần di chuyển folder Ghost vào từng folder mới:

<pre>
cp -r ghost <span class = “highlight”> firstsite.com </span>
mv ghost <span class = “highlight”> secondsite.com </span>
</pre>

Bây giờ, ta có thể mở cấu hình Ghost của trang web đầu tiên:

<pre>
nano / var / www / <span class = “highlight”> firstsite.com </span> /ghost/config.js
</pre>

Tìm phần production bằng cách tìm kiếm phần production: { chuỗi production: { . Thay đổi thông số url để trùng với tên của trang web đầu tiên của bạn:

<pre>

production : {
url: 'http: // <span class = "highlight"> firstsite.com </span>'

</pre>

Lưu và đóng file .

Tiếp theo, mở file phù hợp cho trang thứ hai:

<pre>
nano / var / www / <span class = “highlight”> secondsite.com </span> /ghost/config.js
</pre>

, hãy tìm phần production: { . Thay đổi thông số url để trùng với domain của trang web thứ hai:

<pre>

production : {
url: 'http: // <span class = "highlight"> secondsite.com </span>'

</pre>

Tiếp theo, cuộn xuống một chút đến phần server: { của khối production . Thay đổi thông số port để trùng với số bạn đã chọn cho cổng proxy trong cấu hình nginx của trang web thứ hai:

<pre>
cổng: '<span class = "highlight"> 2777 </span>'
</pre>

Lưu và đóng file .

Tạo tập lệnh khởi động


Cách dễ nhất để quản lý các bản cài đặt Ghost riêng biệt là thông qua các tập lệnh Upstart. Điều này sẽ cho phép bạn bắt đầu, dừng, khởi động lại và kiểm tra trạng thái của từng trang web riêng lẻ.

Hiện tại, có một script init System V được đặt tại /etc/init.d/ghost . Nếu bạn đang làm theo hướng dẫn này, hãy xóa tập lệnh System V cũ. Điều này sẽ giúp tránh nhầm lẫn và có thể ngăn dịch vụ bắt đầu với cài đặt sai:

rm /etc/init.d/ghost 

Ta sẽ tạo một cấu hình mới cho mỗi trang web. Ta sẽ sử dụng một giải pháp thay thế cho System V có tên là Upstart, vì nó có cú pháp đơn giản hơn.

Thay đổi folder nơi Upstart giữ các tập lệnh của nó:

cd /etc/init 

Tạo một file cho trang web đầu tiên của bạn:

<pre>
nano ghost- <span class = “highlight”> firstsite </span> .conf
</pre>

Bên trong, ta sẽ đặt mã sau. Thay đổi các giá trị màu đỏ để phù hợp với cấu hình trang web đầu tiên của bạn:

<pre>

ghost- <span class = “highlight”> firstsite </span>

bắt đầu khởi động

kịch bản
cd / var / www / <span class = “highlight”> firstsite.com </span> / ghost
npm start –production
tập lệnh kết thúc
</pre>

Lưu và đóng file .

Ta sẽ tạo file cấu hình của trang web thứ hai bằng cách sao chép file ta vừa tạo:

<pre>
cp ghost- <span class = “highlight”> firstsite </span> .conf ghost- <span class = “highlight”> secondsite </span> .conf
</pre>

Mở file mới và điều chỉnh các giá trị bằng màu đỏ để trùng với trang thứ hai:

<pre>

ghost- <span class = “highlight”> secondsite </span>

bắt đầu khởi động

kịch bản
cd / var / www / <span class = “highlight”> secondsite.com </span> / ghost
npm start –production
tập lệnh kết thúc
</pre>

Lưu và đóng file .

Bây giờ, bạn có thể đưa từng trang web trực tuyến bằng lệnh :

<pre>
dịch vụ ghost- <span class = “highlight”> firstsite </span> bắt đầu
dịch vụ ghost- <span class = “highlight”> secondsite </span> bắt đầu
</pre>

Nếu bạn truy cập từng domain của bạn , bạn sẽ thấy trang đích của Ghost blog.

Trang đích ma

Tạo account user của bạn và đăng nhập bằng cách truy cập:

<pre>
<span class = “highlight”> firstsite.com </span> / ghost / signup
</pre>

Thêm nội dung khác nhau vào mỗi trang web để xác minh chúng thực sự riêng biệt.

Trang web ma đầu tiên

Trang web thứ hai ma

Kết luận


Đến đây bạn sẽ có hai blog riêng biệt được phục vụ từ một server duy nhất. Bạn có thể mở rộng kỹ thuật này để phục vụ các trang web bổ sung, khi tài nguyên của bạn cho phép.

Xem các bài viết khác của ta để tìm hiểu cách thay đổi chủ đề và cài đặt , cách cấu hình email và kiểm tra các thay đổi cấu hình cũng như cách quản lý nội dung .

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Cách cài đặt Drupal với Nginx trên VPS Ubuntu 13.04
2013-10-16
Cách cài đặt TTRSS với Nginx cho Debian 7 trên VPS
2013-10-07
Cách biên dịch Nginx từ Nguồn trên VPS CentOS 6.4 x64
2013-09-23
Cách biên dịch Nginx từ Nguồn trên VPS CentOS 6.4 x64
2013-09-23
Cách lưu trữ nhiều ứng dụng Node.js trên một VPS duy nhất với nginx, forever và crontab
2013-09-04
Cách tối ưu hóa Nginx với PHP Pools trên VPS Ubuntu 13.04
2013-08-21
Cách cấu hình ghi log và xoay vòng log trong Nginx trên VPS Ubuntu
2013-08-20
Cách cài đặt và cấu hình Django với Postgres, Nginx và Gunicorn
2013-08-14
Cách phát trực tuyến video với Nginx và JWPlayer trên CentOS 6
2013-05-31
Cách thiết lập xác thực HTTP với Nginx trên Ubuntu 12.10
2013-04-30