linux之nginx安装与简单配置

第一部分:nginx安装

什么是Nginx?

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下Nginx 是 Apache 服务器不错的替代品.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。

Nginx的安装

模块依赖性Nginx需要依赖下面3个包

1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )

2. rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )

3. ssl 功能需要 openssl 库 ( 下载: http://www.openssl.org/ )

Nginx包下载: http://nginx.org/en/download.html

依赖包安装顺序依次为:openssl、zlib、pcre, 然后安装Nginx包.

 

图解教程

第一步: 下载安装所需包,版本可以更改。

openssl-fips-2.0.2.tar.gz
zlib-1.2.7.tar.gz
pcre-8.21.tar.gz
nginx-1.2.6.tar.gz

  

第二步:依次安装openssl-fips-2.0.2.tar.gz, zlib-1.2.7.tar.gz, pcre-8.21.tar.gz, nginx-1.2.6.tar.gz

1.安装openssl-fips-2.0.2.tar.gz

[root@localhost mrms]# tar -zxvf openssl-fips-2.0.2.tar.gz 
[root@localhost mrms]# cd openssl-fips-2.0.2
[root@localhost openssl-fips-2.0.2]# ./config 
[root@localhost openssl-fips-2.0.2]# make
[root@localhost openssl-fips-2.0.2]# make install 

2.安装zlib-1.2.7.tar.gz

2.安装zlib-1.2.7.tar.gz

[root@localhost mrms]# tar -zxvf zlib-1.2.7.tar.gz
[root@localhost mrms]# cd zlib-1.2.7
[root@localhost zlib-1.2.7]# ./configure 
[root@localhost zlib-1.2.7]# make
[root@localhost zlib-1.2.7]# make install

  

3.安装pcre-8.21.tar.gz

[root@localhost mrms]./nginx -s stop
[root@localhost mrms]./nginx -s reload

  

# tar -zxvf pcre-8.21.tar.gz [root@localhost mrms]# cd pcre-8.21 [root@localhost pcre-8.21]# ./configure [root@localhost pcre-8.21]# make [root@localhost pcre-8.21]# make install

4.安装 nginx-1.2.6.tar.gz

[root@localhost mrms]# tar -zxvf nginx-1.2.6.tar.gz 
[root@localhost mrms]# cd nginx-1.2.6
[root@localhost nginx-1.2.6]# ./configure --with-pcre=../pcre-8.21 --with-zlib=../zlib-1.2.7 --with-openssl=../openssl-fips-2.0.2
[root@localhost nginx-1.2.6]# make
[root@localhost nginx-1.2.6]# make install

至此Nginx的安装完成!

第三步:检测是否安装成功

[root@localhost nginx-1.2.6]# cd  /usr/local/nginx/sbin

[root@localhost sbin]# ./nginx -t

启动nginx

[root@localhost sbin]# ./nginx

查看端口

[root@localhost sbin]# netstat -ntlp

关闭和重启nginx

[root@localhost mrms]./nginx -s stop
[root@localhost mrms]./nginx -s reload

第二部分:ssl证书制作

首先执行如下命令生成一个key

openssl genrsa -des3 -out ssl.key 1024 
输入密码:123456

然后他会要求你输入这个key文件的密码。不推荐输入。因为以后要给nginx使用。每次reload nginx配置时候都要你验证这个PAM密码的。  

由于生成时候必须输入密码。你可以输入后 再删掉。

 mv ssl.key 123456.key
 openssl rsa -in 123456.key -out ssl.key
 rm 123456.key

 然后根据这个key文件生成证书请求文件

openssl req -new -key ssl.key -out ssl.csr

   以上命令生成时候要填一下东西, 一个个看着写吧(可以随便,毕竟这是自己生成的证书) 

最后根据这2个文件生成crt证书文件

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

这里365是证书有效期 推荐3650哈哈。这个大家随意。最后使用到的文件是key和crt文件。
如果需要用pfx 可以用以下命令生成

openssl pkcs12 -export -inkey ssl.key -in ssl.crt -out ssl.pfx 

在需要使用证书的nginx配置文件的server节点里加入以下配置就可以了。

ssl on;
ssl_certificate /home/ssl.crt;
ssl_certificate_key /home/ssl.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

然后重启nginx就大功告成了

第三部分:nginx.conf文件配置

配置http与https转发

#昌吉车辆监控系统 web
upstream vms_server { server 127.0.0.1:8080; } server{ listen 59020; server_name localhost; location /vms_server/ { proxy_pass http://vms_server/VMS/rest/; #设置允许跨域 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "POST, GET, OPTIONS"; add_header Access-Control-Allow-Headers "Origin,Authorization,Accept"; add_header Access-Control-Allow-Credentials true; } }

# HTTPS server
server {
listen 59018 ssl;
server_name www.hejj.com;

resolver 8.8.8.8;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 20m;
ssl on;
ssl_certificate_key D:ssl/ssl.key;
ssl_certificate D:ssl/ssl.crt;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

#车辆监控 https
location /vms_server/ {
proxy_pass http://vms_server/VMS/rest/;
#设置允许跨域
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "POST, GET, OPTIONS";
add_header Access-Control-Allow-Headers "Origin,Authorization,Accept";
add_header Access-Control-Allow-Credentials true;
}
}

遇到问题

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

这个不能被注释,否则nginx访问出现403

参照博客:https://www.cnblogs.com/kingsy/p/7879115.html

参照博客:https://blog.csdn.net/dyllove98/article/details/8892509  

原文地址:https://www.cnblogs.com/hejj-bk/p/11611218.html