安装 nginx
服务器环境:CentOS 7.6 64位
yum install nginx -y //安装 nginx
nginx //启动nginx
直接打开 192.168.1.2 (此处是你自己服务器的ip)
修改nginx 配置文件
vim /etc/nginx/nginx.conf
# 将如下 文件内容 写入 配置文件,报错退出即可
# vim 基本操作
i 开始写入(进入编辑模式)
esc 退出编辑模式
:wq 保存并退出
cat /etc/nginx/nginx.conf 查看文件内容
配置内容(此处是实现一个静态服务器的功能)
- 配置文件内容
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
# 注意:将 root 对应的目录改一下即可,其他都没有变
root /data/www;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- 创建文件
// 创建你的项目目录
mkdir -p /data/www
// 并在/data/www目录下创建一个html文件让nginx访问
touch index.html
// index.html代码为
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>hello world </title>
</head>
<body>
Hello world!
nginx successful
</body>
</html>
- 重启
nginx -s reload
- 配置域名
很简单,只需要修改一个数据即可
# 修改nginx 的配置文件
server_name www.baidu.com;
# 重启 nginx
service nginx stop
service nginx start
效果
几个nginx基本命令
#查看 nginx 的配置文件地址 与 检验 nginx 的语法是否正确
nginx -t
nginx 启动
nginx stop 停止
踩坑:
nginx 配置文件中 对 格式要求比较严,分号要加,换行也要按照格式来,因为我们写 nginx的配置文件基本都是 vim 中写的,所以要多多注意,建议您在外面写好,复制粘贴过去
- 因为 ; 没有加,报错(踩过坑)
- 因为 端口 设置两个相同了,所以 nginx 在启动时报错
综上所述:使用 nginx -t 来检查并看提示即可
nginx 配置 https 证书
- 证书下载
说明:
点击 nginx 右侧的 下载
点击帮助,里面都讲解的非常详细
下载下来有两个文件 .key 与 .pem
-
上传到服务器 使用工具将这两个文件上传到服务器上 具体这个软件如何使用,如有必要单独开一篇文章
-
nginx 文件配置修改
# 注意:下面的 配置是额外添加的,不是修改之前的
server {
listen 443 ssl;
server_name www.baidu.com;
ssl_certificate ./certxxx.pem; # 文件路径
ssl_certificate_key ./cert/xxx.key; # 文件路径
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:80/; # 代理到当前服务器的 80 端口
}
}
nginx 启动express服务 绑定到 对应域名
前置条件:我们需要安装 node npm git等
-
前提配置
# 安装 node yum install -y nodejs # pm2 npm install -g pm2 --registry https://registry.npm.taobao.org # git yum install git -
创建一个项目
mkdir demo cd demo npm init touch express_demo.js vim express_demo.js # 写入如下代码 var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('this is api use express'); }) var server = app.listen(1234, function () { var host = server.address().address var port = server.address().port console.log("应用实例,访问地址为 http://%s:%s", host, port) }) # 安装包 npm install --registry https://registry.npm.taobao.org -
启动 express 服务
# 方法一express_demo.js(当然选择第一种) # 此方法是常驻线程,也就是说 命令行关闭,服务依旧在 # 此处可能报错,因为 node 版本问题,请移步最下面 pm2 start express_demo.js # 方法 二 # 此方法命令行关闭服务就不在了 node express_demo.js # 上面的步骤设置过,直接可以通过 ip:端口(192.168.1.1:1234) 访问 express 服务 -
设置 nginx配置
server { listen 80; server_name api.xxx.cn; #需要绑定的接口域名 root /xx/xxx; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } -
重启
service nginx stop service nginx start -
成功
-
参考链接
-
避坑指南
-
pm2 express_demo.js 报错
#报错内容 node_modules/pm2/node_modules/chalk/source/index.js:103 #原因: node 的版本过低 node -v 查看下 (6.多) #解决 升级 node npm install -g n # n 是专门管理 n 的一个工具 # 升级到最新的 node 版本 n latest # 注意成功后 需要关闭 远程窗口,重新登录 node -v (v14.7.0) -
nginx restart 报错
-
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details. 执行 systemctl status nginx.service 一般都是端口报错,说明 nginx 配置的有问题
- 按照这个 帖子试过 www.cnblogs.com/hhyf/p/1151…
- 再次检查一遍 nginx 的配置是否有问题
试了很多办法还是不行
#解决: 强制 kill nginx 的进程 pkill -9 nginx 重启 nginx
[nginx报错](https://www.cnblogs.com/hhyf/p/11518919.html)