阅读 594

Re从零开始的后端学习之配置Ubuntu+Ngnix+Nodejs+Mysql环境

前言

nodeJs是一条让前端更好地了解后端的捷径,网上的配置教程又比较分散,所以就重新统一组织了一下。

配置Nginx

  1. 安装Nginx
sudo apt-get install nginx
复制代码
  1. 配置Nginx
sudo vim /etc/nginx/sites-available/default
复制代码

前往nginx的安装目录进行配置,不用版本的目录可能有所不同,但大概都在差不多的地方,在sites-available目录下的default进行配置,我们会发现有sites-available,sites-enabled两个很相似的目录,那为什么要在sites-available目录下配置呢?那是因为sites-enabled只是一个软链接目录,类似于window的快捷方式,那肯定是不能去改快捷方式的。

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    
    # 如果要支持HTTPS,修改这里
    # 可以使用 https://letsencrypt.org 的免费SSL证书
    #listen 443 ssl;
    #ssl_certificate     www.example.com.crt;
    #ssl_certificate_key www.example.com.key;
    #ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    #ssl_ciphers         HIGH:!aNULL:!MD5;
    
    # 重定向所有HTTP到HTTPS
	# rewrite ^(.*)$ https://$host$1 permanent;

	# 网站根目录,根据需要修改
    root /usr/share/nginx/html;
    # 增加index.php
    index index.php index.html index.htm;

	# 假设域名是 www.brandf.cn
    server_name www.brandf.cn; #绑定域名

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}
复制代码
  1. 然后可以按照命令检测一下Nginx是否启动正常
// 查看apache状态
sudo service apache2 status
// 关闭apache
sudo service apache2 stop
// 查看apache状态
sudo service apache2 status
// 启动nginx
sudo service nginx start
// 查看nginx状态
sudo service nginx status
复制代码

Ps:如果apache2在运行,ngnix是无法运行的

  1. 网站优化配置
vim /usr/local/nginx/conf/nginx.conf
复制代码

Gzip

gzip on; //启用gzip压缩
gzip_min_length 1k; //小于1k的文件不压缩
gzip_buffers 4 16k;
#gzip_http_version 1.0; //这个注释掉
gzip_comp_level 5; //压缩等级分为1-10级,等级越高压缩的文件越小,时间也越长
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off; //跟缓存服务有关
gzip_disable "MSIE [1-6]\."; //禁用gzip服务的浏览器版本
复制代码

配置nodeJs

  1. 安装NodeJs
  • 网上大多都是以apt-get这种方式去下载安装的
  • 吐槽一下apt-get,这里的资源不知是多少年前的了,之前我安装的npm居然是1.1版本,nodejs是0.1版本。这里发现了一个有趣的插曲0.1版本使用的命令是nodejs,不是node,nodejs的一次社区分裂可能是问题的主要原因,有兴趣可以了解一下。
  • www.infoq.com/cn/articles…
  • 这直接导致nodejs版本太低导致npm无法安装包,就连npm install -g npm自身更新都无法进行,这就比较尴尬了。

经过不懈的努力,终于找到了一种普适的方法。

  1. 从node官网下载已编译好了的node
wget https://nodejs.org/dist/v4.6.0/node-v4.6.0-linux-x64.tar.xz
tar -xvf node-v4.6.0-linux-x64.tar.xz
cd node-v4.6.0-linux-x64.tar.xz
复制代码
  1. 拷贝安装
sudo cp -r bin include lib share /usr/local/
复制代码
  1. 测试安装情况
node -v
复制代码
  1. 更新npm
npm install -g npm
复制代码
  1. 安装nodejs版本管理工具n
npm install -g n
复制代码
  1. 更新nodejs到稳定版本
n stable
复制代码

OK,一切都准备就绪,还差mysql


配置Mysql

  1. 安装mysql
sudo apt-get install mysql-server mysql-client
复制代码
  1. 检测是否安装成功
sudo netstat -tap | grep mysql
复制代码
  1. 安装好mysql后,用navicat进行远程连接,不出意外,首先会碰到2003错误,这是因为mysql对地址进行了绑定,只允许本地操作,不急,这很好解决。
  • 找到 vim /etc/mysql/mysql.conf.d/mysqld.cnf 类似这样的配置文件,不同版本位置会有小小不同
  • 加#号注释 bind-address = 127.0.0.1
  • 重启服务 /etc/init.d/sudo mysql restart
  • www.cnblogs.com/patrickding…
  1. 在设置好之后就会碰到1045错误,不要问我为什么知道,那是mysql没有分配给你权限
  • 进入目录
cd /etc/init.d
复制代码
  • 进入mysql
mysql -h localhost -u root -p
// 输入安装时设置好的密码
复制代码
  • 进入mysql表
mysql>use mysql;
复制代码
  • 查看权限表
mysql>select host, user from user;
复制代码
  • 赋予地址为192.168.1.x的主机x权限,可进入x数据库,账号youruser,密码yourpassword
mysql>GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'192.168.1.*' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
复制代码
  • 刷新一下,让配置生效
mysql>FLUSH PRIVILEGES;
复制代码
  • 需要取消权限时
mysql>Delete from user where user = "user_name" and host = "host_name" ;
复制代码
  • 让配置生效
mysql>FLUSH PRIVILEGES;
复制代码

All done

至此已配置好服务器node开发环境,可以开心地部署node服务了

从零开始系列传送门

关注下面的标签,发现更多相似文章
评论