什麼是Nginx?html
Nginx ("engine x") 是一個高性能的 HTTP 和 反向代理 服務器,也是一個 IMAP/POP3/SMTP 代理服務器,在高鏈接併發的狀況下Nginx 是 Apache 服務器不錯的替代品.其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好.目前中國大陸使用nginx網站用戶有:新浪、網易、 騰訊,另外知名的微網誌Plurk也使用nginx。nginx
Nginx的安裝web
模塊依賴性Nginx須要依賴下面3個包跨域
1. gzip 模塊須要 zlib 庫 ( 下載: http://www.zlib.net/ )服務器
2. rewrite 模塊須要 pcre 庫 ( 下載: http://www.pcre.org/ )session
3. ssl 功能須要 openssl 庫 ( 下載: http://www.openssl.org/ )併發
Nginx包下載: http://nginx.org/en/download.html性能
依賴包安裝順序依次爲:openssl、zlib、pcre, 而後安裝Nginx包.網站
圖解教程spa
第一步: 下載安裝所需包,版本能夠更改。
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
首先執行以下命令生成一個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就大功告成了
配置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