` nginx(二) | 听云轩

nginx(二)

nginx的安装

  • yum源安装(可根据官方的提示来做:官方教程
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
yum install -y yum-utils

创建/etc/yum.repos.d/nginx.repo,内容为:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key

然后:
yum makecache fast
yum install -y nginx

启动测试:
systemctl start nginx
systemctl enable nginx
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
  • 源码安装

安装pcre依赖环境

1
2
3
4
5
yum install -y gcc gcc-c++ zlib-devel
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
tar -zxvf pcre-8.43.tar.gz
./configure --prefix=/usr/local/pcre //进入到pcre的解压缩文件夹下
make && make install

下载源码包并解压:

1
2
wget http://mirrors.sohu.com/nginx/nginx-1.9.8.tar.gz
tar -zxvf nginx-1.9.8.tar.gz

创建一个nginx用户:

1
useradd -s /sbin/nologin nginx

编译:

1
2
./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/src/pcre-8.43 --user=nginx
make && make install

启动并放行防火墙:

1
2
3
/usr/local/nginx/sbin/nginx
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload

AsBYb6.md.png

给nginx配置https

我们此时需要一个证书,可以去申请,这里的话我用openssl自己签发一个。

1、安装openssl

1
yum install -y openssl openssl-devel

2、创建服务器私钥,默认会让输入一个口令,以后重启nginx都需要,但是可以等创建好后移除

1
openssl genrsa -des3 -out server.key 1024

3、创建签名请求的证书(csr),颁发证书

1
2
3
4
5
6
7
8
9
10
11
openssl req -new -key server.key -out server.csr 
会出现:
Country Name (2 letter code) [XX]:CN //您所在国家的ISO标准代号,中国为CN
State or Province Name (full name) []:Jiangsu //您单位所在地省/自治区/直辖市
Locality Name (eg, city) [Default City]:Zhenjiang //您单位所在地的市/县/区
Organization Name (eg, company) [Default Company Ltd]:ujs // //您单位/机构/企业合法的名称
Organizational Unit Name (eg, section) []:ujs //部门名称
Common Name (eg, your name or your server's hostname) []:www.dyh.com 通用名,例如:www.itrus.com.cn。此项必须与您访问提供SSL服务的服务器时所应用的域名完全匹配
Email Address []: //邮箱名

后面的都可以直接回车

4、去除生成私钥时的所需要的密码

1
2
cp server.key server.key.org 
openssl rsa -in server.key.org -out server.key

5、自签发根证书

1
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

6、配置nginx配置文件,让其包含证书和私钥(针对yum安装的,源码安装的下面会说)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#vim /etc/nginx/nginx.conf(在http里面添加)

server {
listen 443; //监听端口为443
server_name www.dyh.com;
ssl on; //开启ssl
ssl_certificate /etc/nginx/key/server.crt; //证书位置
ssl_certificate_key /etc/nginx/key/server.key; //私钥位置
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1; //指定密码为openssl支持的格式
ssl_ciphers HIGH:!aNULL:!MD5; //密码加密方式
ssl_prefer_server_ciphers on; //依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
location / {
root html; //根目录的相对位置
index index.html index.htm;
}
}

然后重启nginx服务。

AshysU.png

这个时候虽然是https,但是由于我们没有购买证书,所以对于浏览器还是不信任的。我们可以自己弄一个CA证书,然后安装在本地,使浏览器对该网站信任,但是对于别人而言还是不信任的。所以我们可以找一个ssl证书的颁发机构,去弄一个。

7、关于源码安装的nginx的配置

我们在生成私钥以及公钥后,对于源码安装的服务器而言,需要重新编译一遍。

我们先看以前编译的选项:

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

As5u9I.md.png

然后进入我们解压的nginx源码包

1
2
3
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module

make //这里不需要make install否则会覆盖

这个时候,本路径下的objs文件夹下将出现新的nginx启动程序,我们先备份以前的,然后使用新的启动程序。(先停止nginx服务)

1
2
3
4
5
6
/usr/local/nginx/sbin/nginx -s stop
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp objs/nginx /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -V
/usr/local/nginx/sbin/nginx

修改配置文件如上面就行。

------ 本文结束 ------
您的支持将鼓励我继续创作