源码包安装
1. 安装 gcc 环境
# nginx 编译时依赖 gcc 环境
$ sudo yum -y install gcc gcc-c++
2. 安装 pcre
# 让 nginx 支持重写功能
$ sudo yum -y install pcre*
3. 安装 zlib
# zlib 库提供了很多压缩和解压缩的方式,nginx 使用 zlib 对 http 包内容进行 gzip 压缩
$ sudo yum -y install zlib zlib-devel
4. 安装 openssl
# 安全套接字层密码库,用于通信加密
$ sudo yum -y install openssl openssl-devel
以上安装完成后,进行 nginx 安装。
5. 下载nginx文件,解压,编译,安装
nginx官网:nginx.org/en/download…
$ mkdir nginx
$ cd nginx
$ wget https://nginx.org/download/nginx-1.20.2.tar.gz #下载
$ tar -zxvf nginx-1.20.2.tar.gz #解压
在完成解压缩后,进入 nginx-1.20.2
目录进行源码编译安装。
$ cd nginx-1.20.2
# 检查平台安装环境。--prefix=/usr/local/nginx 是 nginx 编译安装的目录(推荐),安装完后会在此目录下生成相关文件 --with-http_ssl_module (ssl相关模块 https)
$ ./configure --prefix=/usr/local/nginx --with-http_ssl_module
进行源码编译并安装 nginx
$ make # 编译
$ make install # 安装
查看nginx配置
$ /usr/local/nginx/sbin/nginx -t
6.nginx制作软连接
nginx下载完成之后,并不能直接执行 nginx命令
所以制作软连接
$ ln -s /usr/local/nginx/sbin/nginx nginx # 创建软连接
$ nginx #启动
$ ps -ef|grep nginx #查看nginx服务进程
$ nginx -s stop #关闭
$ ps -ef|grep nginx #再次查看 进程已关闭
7.nginx配置相关
vim 进入nginx默认配置
vim /usr/local/nginx/conf/nginx.conf
在底部增加配置项(Vim使用教程)(vim中带上结尾分号)
include /root/nginx/*.conf; #表示该配置文件引入/root/nginx文件下的所有.conf配置文件
并且修改主配置的80端口为 9000(主要等会被引入的配置,会添加80端口,防止冲突。9000可以是其他端口)
然后文件夹/root/nginx 中创建并打开nginx.conf文件,添加配置
$ cd nginx
$ vim nginx.conf
nginx.conf添加如下配置,:wq保存退出。配置中server_name指向的localhost;测访问公网ip。如果server_name指向的域名,测访问对应域名
# node项目
server{
# 端口
listen 80;
# 域名
server_name localhost;
# 转发
location / {
# 将listen监听的端口转发到内网的3000端口
# 例如:启动本地项目,项目运行端口为3000,此时外界访问服务器公网地址的80端口,将可以访问项目运行的3000
proxy_pass http://localhost:3000;
}
}
# web项目 todo 未验证
server {
listen 80;
server_name localhost;
# 资源地址
root /root/nginx/dist;
# 目录浏览
autoindex on;
# 缓存处理
add_header Cache-Control "no-cache,must-revalidate";
# 请求配置
location / {
# 跨域
add_header Access-Control-Allow-Origin *;
}
}
启动nginx或重启nginx。验证配置是否成功:进入项目目录pm2 start app
启动项目,浏览器访问域名或公网ip。
或者加入环境变量启动线上运行NODE_ENV=production pm2 start app --update-env
8.nginx相关命令(已制作软连的情况)
nginx #启动Nginx
nginx -s reopen #重启Nginx
nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx
nginx -s stop #强制停止Nginx服务
nginx -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务)
nginx -t #检测配置文件是否有语法错误,然后退出
nginx -?,-h #打开帮助信息
nginx -v #显示版本信息并退出
nginx -V #显示版本和配置选项信息,然后退出
nginx -t #检测配置文件是否有语法错误,然后退出
nginx -T #检测配置文件是否有语法错误,转储并退出
nginx -q #在检测配置文件期间屏蔽非错误信息
nginx -p prefix #设置前缀路径(默认是:/usr/share/nginx/)
nginx -c filename #设置配置文件(默认是:/etc/nginx/nginx.conf)
nginx -g directives #设置配置文件外的全局指令
killall nginx #杀死所有nginx进程
nginx 配置ssl (https)
腾讯云教程:Nginx 服务器 SSL 证书安装部署
以 loud.tencent.com 为例子
- 申请ssl证书(每个服务商都有各自渠道 搜ssl证书即可)
- 下载ssl证书
- Nginx 服务器 SSL 证书安装部署
- 使用 filezilla(本地与远程计算机间的复制文件工具)登录远程服务器,
- 将已获取到的
cloud.tencent.com_bundle.crt
证书文件和cloud.tencent.com.key
私钥文件从本地目录拷贝到 Nginx 服务器的/usr/local/nginx/conf
目录(此处为 Nginx 默认安装目录,请根据实际情况操作)下。 - 登录原创服务器,vim /usr/local/nginx/conf/nginx.conf 打开并编辑nginx.con文件
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name cloud.tencent.com;
#证书文件名称
ssl_certificate cloud.tencent.com_bundle.crt;
#私钥文件名称
ssl_certificate_key cloud.tencent.com.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站运行目录在/etc/www下,则填写/etc/www。
proxy_pass http://localhost:3000;
}
}
由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为
nginx/1.15.0
以上请使用listen 443 ssl
代替listen 443
和ssl on
。
重启 Nginx,即可使用 https://cloud.tencent.com
进行访问。
HTTP 自动跳转 HTTPS 的安全配置
Nginx 支持 rewrite 功能。若您在编译时没有去掉 pcre,您可在 HTTP 的 server 中增加 return 301 https://$host$request_uri;
,即可将默认80端口的请求重定向为 HTTPS
server {
listen 443 ssl;
#填写绑定证书的域名
server_name cloud.tencent.com;
#证书文件名称
ssl_certificate cloud.tencent.com_bundle.crt;
#私钥文件名称
ssl_certificate_key cloud.tencent.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.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站运行目录在/etc/www下,则填写/etc/www。
root html;
index index.html index.htm;
}
}
server {
listen 80;
#填写绑定证书的域名
server_name cloud.tencent.com;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}
重启 Nginx。即可使用 http://cloud.tencent.com
进行访问。
todo 未完**********************
web项目配置 todo nginx目录下创建 dist文件夹,dist中创建index.html进行测试
$ mkdir /nginx/dist
$ cd dist
$ vim index.html
index.html中写入测试代码:<h1>hello world</h1>
,:wq保存退出~~