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(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框架搭建的.除此以外,使用了indigo 做爲網站的前端模板.nginx
Hexo 是一個快速、簡潔且高效的博客框架。Hexo 使用 Markdown(或其餘渲染引擎)解析文章,在幾秒內,便可利用靚麗的主題生成靜態網頁。c++
而inidigo模板主要有如下的特點git
- 僅支持 IE10+ 等現代瀏覽器。
- 去 jQuery,更輕。相信現代瀏覽器的原生兼容性。
- 使用 Less 做爲 css 預處理器,須要安裝
hexo-renderer-less
。- 添加了英文字體支持 Roboto。
- 添加了一些波紋效果。By Waves
- 無前端依賴的分享實現。
- 基於靜態數據的站內搜索,無第三方侵入。
- 支持文章打賞。
目前,網站經過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以後,咱們的博客服務就能夠完美地運行了