网站建站教程(一)
本篇教程将对网站的搭建过程进行较为详细的介绍,包括WEB、PHP、数据库以及建站工具的安装和配置,同时还将包含相关的域名服务、SSL服务的申请、配置等方面的内容。这里谈到的网站主要是指对信息的组织、管理、发布进行统一管理的信息平台,除了单独的个人以外,不同规模的公司网站也可以使用该教程介绍的方法进行搭建。教程中使用的系统、工具等都是主流的开源软件,因此没有购买成本。
Web服务安装配置
本教程主要以nginx为例介绍Web服务器的安装配置,当然也可以选择Apache、IIS等其它的Web服务器。Nginx以其代码规模小、可靠性和扩展性高、并发处理能力强、配置灵活等优点被广泛使用,规模不同的网站都可以适用。
Nginx系统可以下载源代码进行编译安装,或者也可以使用操作系统捆绑编译好的安装包进行安装,比如Debian可以使用如下的命令进行安装:
#apt-get install nginx
源代码编译安装的版本一般比操作系统自带的版本要新,操作系统自带的版本也可以正常使用。本教程使用系统自带版本进行安装,如要使用源代码编译的版本,网上有很多教程,请自行查找相关的文章。
安装完成后,需要对 nginx 进行相关的配置才能正常使用,主要就是对主配置文件 /etc/nginx/nginx.conf 以及相关的子配置文件(nginx.conf 中 http 部分的include语句来指定子配置文件名)做修改。下面给出一个例子并进行说明:
主配置文件 /etc/nginx/nginx.conf
user www-data; ##运行nginx子工作进程的用户名,可以修改为自己定义的用户名(用useradd命令创建)
worker_processes auto; ##工作进程数
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf; ##模块相关的配置文件
events {
worker_connections 768; ##每个工作进程连接数
multi_accept on; ##工作进程支持多个连接
}
http {
sendfile on; ##内核文件传输,提高性能
tcp_nopush on; ##sendfile on时有效,传输大文件时提高效率
tcp_nodelay on; ##提高数据包传输效率
keepalive_timeout 65; ##长连接超时(秒)
types_hash_max_size 2048;
server_tokens off; ##隐藏服务器版本信息
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log; ##访问日志
error_log /var/log/nginx/error.log; ##错误日志
gzip on; ##对传输内容进行压缩,内容类型在下面的 gzip_types 中定义
gzip_disable “msie6”;
gzip_min_length 1000;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
include /etc/nginx/conf.d/*.conf; ##子配置文件,在下面进行说明
include /etc/nginx/sites-enabled/*;
}
子配置文件 /etc/nginx/conf.d/example.conf
server {
listen 443 default_server ssl http2; ##SSL侦听端口,需要申请SSL证书
listen [::]:443 default_server ssl http2;
server_name www.example.com example.com;
ssl_certificate /home/username/certificate/fullchain.pem; ##证书链
ssl_certificate_key /home/username/certificate/privkey.pem; ##私钥
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_dhparam /home/username/certificate/dh4096.pem;
ssl_prefer_server_ciphers on;
ssl_session_tickets on;
ssl_session_cache shared:SSL:2m;
ssl_session_timeout 3600s;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /home/username/certificate/chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 15s;
include /home/username/www/blacklist.ip; ##ip黑名单
root /home/username/www/wordpress; ##网站根目录
index index.php index.html index.htm;
if ($request_method !~ ^(GET|HEAD|POST|OPTIONS)$ ) {
return 444;
}
location / {
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
try_files $uri $uri/ /index.php?$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ ../..php$ {
return 403;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000; ##php服务程序位置,这里是本机
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
}
server { ##http 重定向到 https
listen 80;
server_name www.example.com example.com;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
配置文件修改完成后,使用下面的命令启动或停止nginx服务程序:
#nginx
#nginx -s stop
上面就是Web服务器nginx的安装配置说明,这些配置参数具有一定的通用性,具体的参数请根据自己服务器的硬件参数以及连接情况做修改和设置。详细的配置参数请参考nginx官网的文档说明。
Web服务只能处理网站的静态内容(如html、图片文件等),动态内容(如访问数据库的代码)则需要相应的服务程序来处理。根据网站所采用的开发技术,这部分有多种技术实现方式,本教程使用了PHP的建站工具,这样就需要安装和配置PHP服务,详细说明请转到本教程第二部分的内容。