服务器部署2 - nginx、mysql、权限

393 阅读3分钟

一、nginx

Nginx是一个高性能的HTTP和反向代理服务器

只能root监听80端口,当我们将1中1.8处端口改成80时,将出现此错误:Error: listen EACCES: permission denied 0.0.0.0:80

方式一:用root用户监听80端口
方式二:root启动nginx,nginx转发到node上

(1) 安装nginx ( root用户下 )

apt-get install nginx

(2) nginx命令

名称 命令
启动nginx nginx -c /etc/nginx/nginx.conf
关闭 nginx nginx -s stop
重读配置文件 nginx -s reload kill -HUP nginx
常用命令 service nginx {start | stop | status | restart | reload | configtest}

(3) nginx配置

/etc/nginx/nginx.conf可修改如下配置:

include /etc/nginx/conf.d/*.conf; 配置nginx本身
include /etc/nginx/sites-enabled/*; 配站点(根目录默认指向/var/www/html,可删除默认default)

cd /etc/nginx/sites-enabled
sudo vi webserver

# 配置如下
server {
    listen 80;
    server_name 47.103.198.148;
    location / {    #配置路由
        proxy_pass http://47.103.198.148:8080;
    }
}

sudo nginx -s reload    #重启nginx
server.listen(8080) #server.js文件端口需要改成8080
pm2 start server.js --name 'webserver'

http://47.103.198.148 访问页面看看结果呢

(4) 简单集群

root权限,在home/juejin/web目录下

cp server.js server2.js #修改端口号为7777
pm2 start server2.js --name 'webserver2'

集群配置

按轮回:每个服务器一次发请求
按权重:十核和一核的服务器,每十一个请求,前者请求十次,后者请求一次
按负载:请求cpu更空闲的服务器

cd /etc/nginx/sites-enabled
vi webserver.js
upstream webserver {    #配置负载均衡
    server 47.103.198.148:8080;
    server 47.103.198.148:7777;
}
server {
  listen 80;
  server_name 47.103.198.148;
  location / {
    proxy_pass http://webserver;
  }
}

二、mysql

(1) 安装mysql

sudo apt-get install mysql-server   #安装mysql(安装成功后通过mysql -uroot测试是否成功)
apt install mysql-client
apt install libmysqlclient-dev

上传项目至home/juejin/web下
导出数据库(选中所有表->存储SQL文件)

  1. mysql -uroot
  2. CREATE DATABASE jiagou1 DEFAULT CHARSET=utf8; #创建数据库
  3. use jiagou1;
  4. 复制SQL文件中的执行语句
  5. show tables; #看表表
  6. 执行update中index.js. node index.js (如果有权限问题需要刷新Linux权限)
mysql -uroot
CREATE DATABASE jiagou1 DEFAULT CHARSET=utf8;   #创建数据库
use jiagou1;
复制SQL文件中的执行语句

三、配置负载均衡

把项目上传到github,在服务器通过git clone把github拉下来

cd  /etc/nginx/sites-enabled
vim juejin

# 修改配置如下
upstream webserver {
   server 47.103.198.148:8080;
   server 47.103.198.148:7777;
}
server {
  listen 80;
  server_name 47.103.198.148;
  location / {
    proxy_pass http://webserver;
  }
}

# 配置域名的话配置如下
upstream juejin {
  server 47.103.198.148:8899;
}
server {
  listen 80;
  server_name juejin.cn;
  location / {
    proxy_pass http://juejin;
  }
}
service nginx reload

47.103.198.148 juejin.cn #修改host文件

四、权限

如图:

权限项 执行 执行 执行
字符表示 r w x r w x r w x
数字表示 4 2 1 4 2 1 4 2 1
权限分配 文件所有者 文件所属组 其他用户

chmod命令

  • 格式1:chomd [ugoa] [+.=] [rwx] 文件或目录
  • 格式2:chomd nnn文件或目录

常用递归命令选项

  • -R:递归修改制定目录虾所有子项的全新
chmod 700 hello #修改文件所有者权限为rwx修改权限 
chmod -x hello  #文件所有者、文件所属组、其他用户减去x权限
chmod +x hello  #文件所有者、文件所属组、其他用户加上x权限
chmod u-x hello #文件所有者减去x权限    
chmod -R 777 hello #修改hello及其所有子目录的权限
 #u表示文件所有者、g表示文件所属组、o表示其他人