CVM + Nginx 搭建记录

2019-06-20  本文已影响0人  咩咩的毛球
  1. 学生优惠
    10 元*6 月 + 域名
    1C + 2G + ubuntu 16.04
  2. CVM + 域名 + CDN
    配置 CDN 时,域名要解析到 cname
  3. 问题:修改了 /var/www/html下的 index.html,现在按 ip 访问能展示这个页面,按域名访问还是 nginx 页面。
  4. 搭建流程和结果
    安装: $ apt install nginx
    启动:$ nginx
    重启:$ nginx -s reload
    访问域名看到:
    1.png 访问公网 IP:
    2.png
  1. 配置文件修改

    1. 如果启动了防火墙,则添加规则,允许nginx http:
      sudo ufw allow "Nginx HTTP"
      确认ufw状态:
      sudo ufw status
      ifconfig获取IP地址,curl看是否调出Nginx欢迎页面
    • 查看配置信息:$ nginx -t 返回配置信息的目录
      nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
      nginx: configuration file /etc/nginx/nginx.conf test is successful

    • 打开上面的文件:$ cd /etc/nginx
      $ cd sites-enabled 进入此文件夹
      $ vim default 编辑 default 文件
      将 root /var/www/html; 改为自己的域名,如 root /root/my.com;
      nginx默认启用一个nginx配置,配置为从目录/var/www/html中提供文档。

    • 若网站的文件放在了root目录下,或者访问出现了403错误,还要做下面一步:
      进入/etc/nginx,编辑nginx.conf文件:$ vi nginx.conf
      把第一行 user www-data 改成 user root

    • 改完配置后重启:$ nginx -s reload
      至此http服务器就跑起来了

  2. 一些依赖库

    • 安装 gcc g++ 依赖
      $ apt-get install build-essential
      $ apt-get install libtool

    • 安装 pcre 依赖库 http://www.pcre.org
      $ apt-get install libpcre3 libpcre3-dev

    • 安装 zlib依赖库 http://www.zlib.net
      $ apt-get install zlib1g-dev

    • 安装 ssl依赖库
      $ apt-get install openssl

  3. nginx 常用操作

    • 查看 nginx 进程 $ ps -ef | grep nginx
    • 查看 nginx 状态 $ systemctl status nginx
    • 启动 $ systemctl start nginx
    • 停止 $ systemctl stop nginx
    • 重启 $ systemctl restart nginx
    • 只是进行配置更改,可在不影响运行的情况下重新载入Nginx配置文件:systemctl reload nginx
    • 禁止开机启动:$ sudo systemctl disable nginx
    • 恢复开机启动:$ sudo systemctl enable nginx
  1. 遇到的问题

    问题一
    • 错误:nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed
    • 问题描述:
      $ /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
      $ nginx.service: Failed at step EXEC spawning /usr/local/nginx/conf/nginx: No such file or director
      

    使用nginx -c的参数指定nginx.conf文件的位置,提示:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

    • 问题原因:
      上述命令指定了/etc/nginx/nginx.conf作为nginx的配置文件,不过这个文件存放目录并不是这里,所以执行出错

    • 解决方法:
      step1: 查看自己的 nginx.conf 所在位置
      (/usr/local/nginx/conf/nginx.conf)
      step2:
      $ vi /lib/systemd/system/nginx.service
      修改 /lib/systemd/system/nginx.service,把 /etc/nginx/nginx 部分都改为 /usr/local/nginx/conf/nginx
      然后执行:
      $ systemctl daemon-reload
      $ systemctl start nginx
      其中,ExecStartPre是systemd启动服务前预执行的命令,通常用来检查配置或者设置环境变量

    问题二
    • 和上述相似的配置文件冲突,nginx 启动不了
    • apt get install 了一个 nginx,又自行安装了一个,两者冲突
    • 卸载干净,或者重装
  1. 备注
  1. 设置 nginx

没有意义:
/var/www/example.com/html/index.html

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

/etc/nginx/sites-enabled$ sudo vi example.com
server {
listen 80;
listen [::]:80;

    root /var/www/example.com/html;
    index index.html index.htm index.nginx-debian.html;

    server_name example.com www.example.com;

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

}

上一篇下一篇

猜你喜欢

热点阅读