CentOS与nginx指南(直面工作教程)

文章面向工作而写,都是工作中遇到的问题,也都是经过实际的考验,因为是回顾而写的文章,有时候可能会漏掉一些重要的细节,如果你有发现,还请几时告诉我,我来修改。

今天领导的任务是把一台windows服务器改成CentOS,之前在ubuntu上搭建过nginx,发现有所不同,于是就写一篇笔记。

需求:nginx服务器,https(ssl证书)

1.下载

wget http://nginx.org/download/nginx-1.8.0.tar.gz
wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz
wget http://zlib.net/zlib-1.2.11.tar.gz
//下面这个包在其他文章里面我下载的时候是不能用的,所以我换成了别的下载链接,但是我忘记了是哪个地址了,不过影响不大,你可以随便搜一下都有。
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
yum install gcc-c++

2.安装

openssl

tar zxvf openssl-fips-2.0.10.tar.gz
cd openssl-fips-2.0.10
./config && make && make install

pcre()

//下面这个包在其他文章里面我下载的时候是不能用的,所以我换成了别的下载链接,但是我忘记了是哪个地址了,不过影响不大,你可以随便搜一下都有。
tar zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure && make && make install

zlib

tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure && make && make install

nginx

tar zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure && make && make install

3.配置:

nginx的安装目录在centos在/usr/local/nginx下面,也可以通过whereis nginx来查找

配置文件有一个conf/nginx.conf和conf/nginx.conf.default,default这个不需要管,只改前面这个。

因为我之前用的是ubuntu,nginx有一个sites-available和sites-enabled,感觉拆分虚拟主机感受十分好,所以我也引用了进来。

3.1拆分虚拟主机:

在nginx同级的目录下新建 sites-available sites-enabled两个文件夹,在sites-available里touch一个default文件。

通过软连接把available的default文件映射到enabled里面。

ln -s /usr/nginx/sites-available/default /usr/nginx/sites-enabled/default

3.2引入enabled

http {
    include       mime.types;
    include /usr/local/nginx/sites-enabled/*;
    default_type  application/octet-stream;

3.3编码default

server {

     listen 443 ssl;
     server_name xxx.cn www.xxx.cn;

     ssl on;

     //本来想再讲讲ssl证书的,但证书不是我买的,我就是在阿里云下载完了,放入nginx/cert
     ssl_certificate  /usr/local/nginx/cert/2214484.pem;
     ssl_certificate_key /usr/local/nginx/cert/2214484.key;

     ssl_session_cache shared:SSL:1m;
     ssl_session_timeout 5m;

     ssl_ciphers  HIGH:!aNULL:!MD5;
     ssl_prefer_server_ciphers  on;

     location / {
         root html/website;
         index index.html index.htm;
     }
}

 3.4 遇到了nginx的ssl模块的问题

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37

先查询一下nginx配置参数,如果没有参数的话肯定是错了。

/usr/local/nginx/sbin/nginx -V

进入到nginx的文件夹(*nginx安装完后是在/usr/local下的,但是解压完后的文件夹依然在你下载的文件夹内,我们要进入解压完后的文件夹,执行

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_modul

) 

然后记得需要make一下。

make

最后执行,把objs里新的nginx复制到老的nginx,最后启动就成功安装了ssl了!

cp ./objs/nginx /usr/local/nginx/sbin/

最后conf下面的nginx.conf很简单。 

//nginx.conf 配置ssl只要这些 
server {
       listen       80;
       server_name  meina.cn www.meina.cn;
       rewrite ^(.*)$ https://${server_name}$1 permanent;//所有通过http进来的请求转发到https
}

nginx -s reload开启愉快的nginx之旅!

相关链接:

入门

配置

拆分server

ssl证书

nginx ssl模块

猜你喜欢

转载自blog.csdn.net/weixin_42450794/article/details/103184054