我自己的错误做法:(如有雷同,纯属巧合)
首先: 进入vi /usr/local/nginx/nginx.conf 进行编辑配置
输入:
server {
listen 80;
server_name jakexin.top,www.jakexin.top; #绑定的域名
## 开启gzip
# gzip on;
## 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
# gzip_min_length 1k;
## gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
# gzip_comp_level 2;
## 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
# gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
## 是否在http header中添加Vary: Accept-Encoding,建议开启
# gzip_vary on;
## 禁用IE 6 gzip
# gzip_disable "MSIE [1-6]\.";
## 配置缓存
# location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
# access_log off;
# expires 30d;
# }
# location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
# access_log off;
# expires 24h;
# }
# location ~* ^.+\.(html|htm)$ {
# expires 1h;
# }
location /
{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginXroot-Proxy true;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:3000; #对应该的Nodejs程序端口
}
access_log /mnt/log/www/jakexin_access.log; #网站访问日志
}
结果报错了:
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 显示如下图:
纠结了很久,网上查了很多资料 ,总结如下
1. 有的说语法错误 很仔细的检查了几遍 ,没有~~~~~~排除;
2. 有的说是权限错误 我也通过很多方式 改权限 ,结果 也不行 ~~~~~排除;
3. 有的还说 用nginx -t -c /etc/nginx/nginx.conf 检查下状态啊什么的, 结果 是 对的 ~~~~排除;
最后,我在网上找了一个答案就是,我不去改nginx.conf,我去/etc/nginx/nginx.d 目录下 创建一个自定义config文件,输入以下代码
upstream dp{
server 127.0.0.1:8088; # 这里的端口号写你node.js运行的端口号,也就是要代理的端口号,我的项目跑在8081端口上
keepalive 64;
}
server {
listen 8089; #这里的端口号是你要监听的端口号
server_name 47.*.*.*2; # 这里是你的服务器名称,也就是别人访问你服务的ip地址或域名,可以写多个,用空格隔开
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://dp; # 这里要和最上面upstream后的应用名一致,可以自定义
}
}
然后,回到命令行 执行 service nginx reload ;
执行没问题。最终也监听到了8088端口。。。完美的解决了该问题。
最后,写几个命令:
常用命令:
systemctl status nginx.service // 查看nginx服务状态
netstat -tulpn 查看网络状态
每天记两个 linux 命令 ,总有一天 你会记很多的 ~加油!
关注一波!喜欢一波!本人是前端菜鸟,正在做自己的个人博客邓鹏的博客, 使用的技术 vue + koa2 + mysql + php + nginx!
网友评论