本文最后更新于:August 29, 2019 pm
                
              
            
            
              记录一下个人博客的web服务器从apache换成nginx的过程。
 
0、前言 关于apache和nginx的对比有很多,小七就不在这里赘述了,之前大一搭建博客的时候还没有接触过nginx就用了apache,后来考RHCE的时候也学习配置的是apache,最近开始学习nginx,考虑到对于小七自己的静态博客和渣渣服务器性能来说,nginx应该更合适一些,因此这里就把web服务器换成了nginx。
1、备份快照 在阿里云的官网控制台里面创建快照备份。如果不小心翻车了,还能用快照恢复。
2、停用apache服务 $ systemctl stop httpd.service  $ systemctl disable  httpd.service  Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
 
3、安装nginx 3.1 导入yum源 cat  >> /etc/yum.repo.d/nginx.repo << EOF [nginx]  name=nginx repo  baseurl=http://nginx.org/packages/mainline/centos/7/x86_64/ gpgcheck=0  enabled=1  EOF  yum clean all yum repolist yum install nginx -y
 
这里小七使用的是nginx提供的yum源,因此版本可能会稍微新一点。
想要安装最新版的同学可以前往官网下载源码进行编译安装。
官网地址:http://nginx.org/en/download.html 
 
3.2 启用nginx服务并设置开机启动 $ system ctl enable nginx.service  Created symlink from /etc/system d/system /multi-user .target.wants/nginx.service to /usr/lib/system d/system /nginx.service. $ system ctl start nginx.service
 
访问服务器IP。可以看到nginx已经开始工作。
这里有可能会出现Failed to read PID from file /run/nginx.pid的错误
原因是nginx还没有完全启动,systemd就去读取该进程的PID导致无法读取报错,解决方法是让systemd晚一点读取。
mkdir  /etc/systemd/system/nginx.service.dcat  >> /etc/systemd/system/nginx.service.d/override.conf << EOF [Service] ExecStartPost=/bin/sleep 0.1 EOF  systemctl daemon-reload systemctl restart nginx.service systemctl status nginx.service 
 
 
4、配置nginx 由于小七安装的版本里面的配置文件默认并没有nginx的web的相关配置,所以我们一次把http、https和http自动跳转https配好。
4.1 查看版本 
4.2 配置https 从申请ssl认证的供应商那里下载nginx服务器对应的https认证证书,并存放在/etc/pki/CA/certs目录下。(如果没有就新建该目录)
如果不知道怎么申请的可以查看这篇博客:
阿里云轻量级应用服务器CentOS系统Apache配置Https 
 
4.3 编辑配置文件: 这里小七直接放出整个配置文件给大家参考:
默认的配置文件位于/etc/nginx/nginx.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79  user  nginx; worker_processes  1; error_log  /var/log/nginx/error.log warn; pid        /var/run/nginx.pid; events {     worker_connections  1024; } http {     include       /etc/nginx/mime.types;     default_type  application/octet-stream;     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                        '$status $body_bytes_sent "$http_referer" '                        '"$http_user_agent" "$http_x_forwarded_for"' ;     access_log  /var/log/nginx/access.log  main;     sendfile        on;          keepalive_timeout  65;          include /etc/nginx/conf.d/*.conf;     server { 		listen       80 default_server;         listen       443 ssl;         listen       [::]:443 ssl;                  server_name  tiny777.com www.tiny777.com;          		if  ($server_port  = 80) { 			 			return  301 https://$host$request_uri ; 		} 		         root         /etc/nginx/html; 		index index.html index.htm; 		 		         ssl_certificate "/etc/pki/CA/certs/tiny777.com.pem" ;         ssl_certificate_key "/etc/pki/CA/certs/tiny777.com.key" ;                  ssl_session_cache shared:SSL:1m;         ssl_session_timeout  10m;                  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;         ssl_prefer_server_ciphers on;                  include /etc/nginx/default.d/*.conf;         location / { 			root	/etc/nginx/html; 			index index.html index.htm;         }         error_page 404 /404.html;             location = /40x.html {         }         error_page 500 502 503 504 /50x.html;             location = /50x.html {         }     } }
 
最后我们重启nginx服务,就能查看到博客已经可以正常工作了。