nginx 1.18.0版本的安裝請移步:https://www.cnblogs.com/nickchou/p/12978724.html
直接使用yum方式安裝的ngninx默認是不支持ssl的,所以需要從代碼編譯安裝
一、查看要安裝的版本
http://nginx.org/en/download.html
這里我們還是選擇的穩定版1.16.1
二、先安裝依賴
yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
三、下載源碼
切換到/usr/local/src目錄下,下載源代碼解壓
cd /usr/local/src
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz
四、編譯源代碼
cd /usr/local/src/nginx-1.16.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
編譯成功后的截圖
編譯報錯的解決辦法,沒有報錯直接跳過
-
報錯:./configure: error: the HTTP rewrite module requires the PCRE library.
問題原因:編譯安裝nginx需要pcre包,未安裝的話會報錯
解決辦法:
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel -
報錯:File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:
問題原因:yum采用python作為命令解釋器,原來系統自帶的python解釋器為python2.7,系統默認的解釋器為python3.7
解決辦法:
vim /usr/bin/yum
修改第一行為:#!/usr/bin/python2.7
vi /usr/libexec/urlgrabber-ext-down
修改第一行為:#!/usr/bin/python2.7 -
報錯:File "/bin/yum-config-manager", line 135 except yum.Errors.RepoError, e:
問題原因:yum采用python作為命令解釋器,原來系統自帶的python解釋器為python2.7,系統默認的解釋器為python3.7
解決辦法:
vim /bin/yum-config-manager
修改第一行為:#!/usr/bin/python2.7 -
報錯:./configure: error: SSL modules require the OpenSSL library.
問題原因: 缺少SSL庫
解決辦法:yum -y install openssl openssl-devel
五、安裝nginx
如果nginx已經安裝了的話用指令
make
如果沒有安裝或者已卸載的話
make && make install
六、查看nginx的版本信息
查看編譯后的nginx版本
/usr/local/src/nginx-1.16.1/objs/nginx -V
查看安裝后的nginx版本
/usr/local/nginx/sbin/nginx -V
七、更新nginx,這一步是為裝過nginx更新bin文件用的,安裝的話忽略
cp objs/nginx /usr/local/nginx/sbin/
復制bin文件后再核對下版本
/usr/local/nginx/sbin/nginx -V
八、配置開機自啟動
vim /lib/systemd/system/nginx.service
復制以下內容保存(按ESC后:wq保存退出)
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
設置開機自啟動
systemctl enable nginx
啟動、查看狀態、重啟nginx,指令3件套
systemctl start nginx
systemctl status nginx
systemctl restart nginx
可以reboot重啟機器后再查看nginx狀態
九、配置nginx環境變量
一般修改配置后用 nginx -s reload 重啟
nginx -s reload
出現以下提示是沒有配置環境變量
打開/etc/profile
vim /etc/profile
在最后一行 追加下面2行配置(ESC :wq 保存退出)
PATH=$PATH:/usr/local/nginx/sbin
export PATH
使配置生效后,就可以用nginx -s reload
source /etc/profile
十、阿里雲證書配置
把阿里雲申請的證書放到目錄 /usr/local/nginx/conf/cert (文件也可以自己指定)
配置域名解析
vi /usr/local/nginx/conf/nginx.conf
增加配置,把下面的www.yuming.com改成自己的域名
server {
listen 80;
server_name www.yuming.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl; // nginx1.15之后用這個語法
server_name wwww.yuming.com;
ssl_certificate cert/www.yuming.com.pem;
ssl_certificate_key cert/www.yuming.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:8001;
proxy_redirect off;
}
}