我是如何搭建起這個網站的


title: 我是如何搭建起這個網站的
date: 2017-7-24 19:51:15
tags: [網站維護,Linux,Hexo]
---javascript

本文只是作個記錄php

(老博客平臺)css

前期準備

域名

域名(Domain Name),是由一串用點分隔的字符組成的Internet上某一臺計算機或計算機組的名稱,用於在數據傳輸時標識計算機的電子方位(有時也指地理位置,地理上的域名,指代有行政自主權的一個地方區域)。域名是一個IP地址上有「面具」 。一個域名的目的是便於記憶和溝通的一組服務器的地址(網站,電子郵件,FTP等)。html

這個博客使用的域名爲(blog.yanximin.site)是從阿里雲上直接購買獲得. 第一年四塊錢(很實惠有沒有), 可是今年就已經變成了40塊錢(坑...).前端

VPS

VPS(Virtual Private Server 虛擬專用服務器)技術,將一臺服務器分割成多個虛擬專享服務器的優質服務。實現VPS的技術分爲容器[1] 技術,和虛擬化技術[2] 。在容器或虛擬機中,每一個VPS均可分配獨立公網IP地址、獨立操做系統、實現不一樣VPS間磁盤空間、內存、CPU資源、進程和系統配置的隔離,爲用戶和應用程序模擬出「獨佔」使用計算資源的體驗。VPS能夠像獨立服務器同樣,重裝操做系統,安裝程序,單獨重啓服務器。VPS爲使用者提供了管理配置的自由,可用於企業虛擬化,也能夠用於IDC資源租用。java

VPS服務器是在搬瓦工上購買,一個月十塊錢(1000G流量,10G硬盤). 當服務器的同時,還能順便FQ,能夠說至關划算. VPS上直接使用Bandwagon提供的鏡像,安裝了CentOS 6. 順便說一下,他們家的VPS提供了安裝ShawdowSocks的腳本,一鍵安裝,十分方便.node

博客搭建

Hexo

本博客使用Hexo框架搭建的.除此以外,使用了indigo 做爲網站的前端模板.nginx

Hexo 是一個快速、簡潔且高效的博客框架。Hexo 使用 Markdown(或其餘渲染引擎)解析文章,在幾秒內,便可利用靚麗的主題生成靜態網頁。c++

而inidigo模板主要有如下的特點git

  1. 僅支持 IE10+ 等現代瀏覽器。
  2. 去 jQuery,更輕。相信現代瀏覽器的原生兼容性。
  3. 使用 Less 做爲 css 預處理器,須要安裝 hexo-renderer-less
  4. 添加了英文字體支持 Roboto。
  5. 添加了一些波紋效果。By Waves
  6. 無前端依賴的分享實現。
  7. 基於靜態數據的站內搜索,無第三方侵入。
  8. 支持文章打賞。

Nginx

目前,網站經過Hexo生成靜態頁面,部署在Nginx上.(以前部署在Apache上面,可是存在着一些性能和權限的問題).

使用以下的腳本在Cent OS上安裝Nginx

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#安裝依賴環境
yum install -y patch openssl make cmake gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel vim-minimal nano fonts-chinese gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap diffutils
#安裝PCRE
wget http://downloads.sourceforge.net/project/pcre/pcre/8.36/pcre-8.36.tar.gz
tar zxf pcre-8.36.tar.gz
cd pcre-8.36/
./configure && make && make install
cd ../
#安裝NGINX
wget http://nginx.org/download/nginx-1.6.3.tar.gz
tar zxf nginx-1.6.3.tar.gz
cd nginx-1.6.3/
./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-http_spdy_module
make && make install
cd ../

ln -s /usr/local/lib/libpcre.so.1 /lib
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
rm -f /usr/local/nginx/conf/nginx.conf
mkdir -p /home/wwwroot/default
chmod +w /home/wwwroot/default
mkdir -p /home/wwwlogs
chmod 777 /home/wwwlogs
chown -R nobody:nobody /home/wwwroot/default

wget -c http://soft.vpser.net/lnmp/ext/init.d.nginx
cp init.d.nginx /etc/init.d/nginx
chmod +x /etc/init.d/nginx
chkconfig --level 345 nginx on
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables-save
ldconfig
wget -c http://redbook.qiniudn.com/nginx.conf
mv nginx.conf /usr/local/nginx/conf/
/etc/init.d/nginx start

執行完上述腳本以後,還得修改/usr/local/nginx/conf/nginx.conf文件,修改結果以下:

user  root;

worker_processes auto;

error_log  /home/wwwlogs/nginx_error.log  crit;

pid   /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 51200;

events
        {
                use epoll;
                worker_connections 51200;
                multi_accept on;
        }

http
        {
                include       mime.types;
                default_type  application/octet-stream;

                server_names_hash_bucket_size 128;
                client_header_buffer_size 32k;
                large_client_header_buffers 4 32k;
                client_max_body_size 50m;

                sendfile on;
                tcp_nopush     on;

                keepalive_timeout 60;

                tcp_nodelay on;

                gzip             on;
                gzip_comp_level  4;
                gzip_min_length  1k;
                gzip_buffers     4 16k;
                gzip_proxied     any;
                gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

                server_tokens off;

                fastcgi_connect_timeout 300;
                fastcgi_send_timeout 300;
                fastcgi_read_timeout 300;
                fastcgi_buffer_size 64k;
                fastcgi_buffers 4 64k;
                fastcgi_busy_buffers_size 128k;
                fastcgi_temp_file_write_size 256k;

                proxy_connect_timeout      5;
                proxy_read_timeout         60;
                proxy_send_timeout         5;
                proxy_buffer_size          16k;
                proxy_buffers              4 64k;
                proxy_busy_buffers_size    128k;
                proxy_temp_file_write_size 128k;

                 log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';

server
        {
                listen 80 default;
                #listen [::]:80 default ipv6only=on;
                server_name since1989.org geek.wasai.org;
                index index.html index.htm index.php;
                root  /root/hexo/public;

                #error_page   404   /404.html;
                location ~ [^/]\.php(/|$)
                        {
                                # comment try_files $uri =404; to enable pathinfo
                                try_files $uri =404;
                                fastcgi_pass  unix:/tmp/php-cgi.sock;
                                fastcgi_index index.php;
                                include fastcgi.conf;
                                #include pathinfo.conf;
                        }

                location /nginx_status {
                        stub_status on;
                        access_log   off;
                }

                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                                expires      30d;
                        }

                location ~ .*\.(js|css)?$
                        {
                                expires      12h;
                        }

                access_log  /home/wwwlogs/access.log  access;
        }
include vhost/*.conf;
}

重啓Nginx以後,咱們的博客服務就能夠完美地運行了

相關文章
相關標籤/搜索