注:本文仅针对Centos系统,其他系统的安装步骤类似。
1、安装Nginx
(1)下载Nginx安装包
根据需要在官网上下载所需版本的Nginx(本次以1.24.0为例):
https://nginx.org/en/download.html
(2)解压Nginx安装包
tar -zxvf nginx-1.24.0.tar.gz
(3)切换路径至解压后的Nginx文件夹
cd nginx-1.18.0
(4)安装OpenSSL库
yum -y install openssl openssl-devel
(5)安装依赖库gcc、gcc-c++、ncurses-devel
yum -y install make gcc gcc-c++ ncurses-devel
(6)安装依赖库pcre-devel
yum -y install pcre-devel
(7)添加添加这个ssl模块
./configure --with-http_ssl_module
(8)配置安装路径
注意:需要将 “/www/install/nginx” 目录修改为自己的安装路径
./configure --prefix=/www/install/nginx
(9)编译Nginx
make
(10)安装编译后的Nginx
make install
2、启动服务
(1)切换至Nginx安装目录sbin下
注意: “/home/nginx/sbin” 目录为自己的Nginx安装路径
cd /www/install/nginx/sbin
(2)启动nginx服务
./nginx
3、测试运行
(1)查看服务是否启动
ps -ef | grep nginx
(2)查看是否能访问nginx代理
注意:将 “192.168.231.128” 修改为部署Nginx服务器的IP地址
curl http://192.168.231.128
4、添加Nginx反向代理服务
(1)修改nginx.conf配置文件
修改worker_processes 1; 为:
worker_processes auto;
(2)添加网址配置路径(根据需要可不配置)
若需配置多个代理服务,为使配置简洁明了,建议采用此方式进行配置。
配置项目配置文件地址(/www/nginx_config/.conf;此处根据个人文件存放位置修改)
include /www/nginx_config/*.conf;
5、更新配置文件
(1)切换至Nginx文件路径
cd /home/nginx/sbin
(2)校验修改后的nginx.conf是否符合语法
./nginx -t
(3)重启nginx服务
./nginx -s reload
6、完整配置文件分享
(1)nginx.conf文件示例
#user nobody;
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 配置项目配置文件地址
include /www/nginx_config/*.conf; # Linux配置
#include conf.prj/*.conf; # Windows配置
}
(2)SSL服务配置示例
server {
listen 80;
server_name www.XXX.com;
rewrite ^(.*)$ https://$host$1 permanent; #将所有HTTP请求通过rewrite重定向到HTTPS。
}
# HTTPS server
server {
listen 443 ssl;
server_name www.XXX.com;
ssl_certificate /www/service/nginx_config/cert/www.XXX.com.pem; #将www.XXX.com.pem替换成您证书的文件名称。
ssl_certificate_key /www/service/nginx_config/cert/www.XXX.com.key; #将www.XXX.com.key替换成您证书的密钥文件名称。
ssl_session_cache shared:SSL:1m;
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 / {
root /www/wwwroot/www.XXX.com/dist;
index index.html index.htm;
proxy_connect_timeout 600;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
(3)网页前端代理配置示例
server {
listen 1080;
location / {
root /www/wwwroot/www.XXX.com/dist;
index index.html index.htm;
proxy_connect_timeout 600;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
(4)端口服务代理示例
server {
listen 80;
server_name www.XXX.com;
client_max_body_size 1000m;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
proxy_pass http://127.0.0.1:36000;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
7、其他问题
(1)无法访问VMware虚拟机上的Nginx
关闭本机防火墙(注意将 “3032/tcp” 修改为你要开放的端口和协议类型)
firewall-cmd --permanent --add-port=3032/tcp
firewall-cmd --reload
关闭防火墙
systemctl stop firewalld.service