前言

ngxin的所有功能,一般都是在nginx的配置文件中完成的。

所以这同样也是一篇nginx配置文件的熟练过程。

虚拟主机

nginx使用虚拟主机来配置站点:每个虚拟主机使用server { } 来配置

server {
# listen用来配置监听端口,server_name为虚拟主机服务名称
listen 443 ssl;
server_name dingshaohua.com; # 证书位置
ssl_certificate /etc/letsencrypt/live/dingshaohua.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dingshaohua.com/privkey.pem; #证书校验(通用)
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on; # 路由
location / {
root /home/webroot/book-ding;
}
}

虚拟主机服务匹配机制,当server_name 都没有匹配上的时候,会默认走配置的第一个虚拟主机

这可能会导致别人的域名恶意解析到你得服务器上,所以你可以这么做:

server {
listen 80 default_server;
listen 443 ssl default_server;
server_name _;
ssl_reject_handshake on;
return 444;
}

根路径

当浏览器访问nginx服务的时候,默认的页面路径,

一般安装方式不同,根路径也不同

编译包的路径一般在:/usr/local/nginx/html
yum 安装的一般在: /usr/share/nginx/html

当然这个是可以后期改的,进入nginx.conf,如下就把根路径改成了/home/website

location / {
# root html;
root /home/website;
index index.html index.htm;
}

root和alias

root和alias都是系统文件路径的设置,root用来设置根目录,而alias用来重置当前文件的目录。

#若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件
location /img/ {
  alias /var/www/image/;
}
#若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件。
location /img/ {
  root /var/www/image;
}

日志输出

缺省安装下,浏览器是无法访问日志的。

在编译的时候附带参数安装此模块(安装后记得make和make install)

./configure --prefix=/usr/local/nginx --with-http_stub_status_module

然后再配置一下访问地址

location /status {
stub_status on;
access_log /usr/local/nginx/logs/access.log;
auth_basic "NginxStatus";
}

然后浏览器里输入http://ip/status即可访问。

报错集

缺少SSL模块

如果项目里用到了ssl,之后在nginx启动却从报错:

nginx https protocol requires SSL support in

说明你用到了ssl,比如https等,那么编译安装的时候加如下模块即可(安装后记得make和make install)

./configure --prefix=/usr/local/nginx --with-http_ssl_module

nginx.pid丢失

这文件一不小心就丢了,丢了之后就无法启动

nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

解决办法如下,执行命令重新生成该文件即可,完成后再次尝试重启nginx 一般就即成功

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

ngxinx基本使用的更多相关文章

  1. ngxinx 配置

    vim 复制操作 1.复制 1)单行复制 在命令模式下,将光标移动到将要复制的行处,按“yy”进行复制: 2)多行复制 在命令模式下,将光标移动到将要复制的首行处,按“nyy”复制n行: 其中n为1. ...

  2. docker+fastdfs+nginx 实现分布式大文件存储系统以及视频缓存播放

    废话不多说,直接开撸 首先是一些准备工作: 1.关闭防火墙 service iptables stop --- fastdfs虽然在docker部署,但是使用的是主机网络,所以关闭防火墙. 2  下载 ...

  3. linux学习五

    一.系统服务管理 1.概念 服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程 序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是 ...

  4. TIME_WAIT状态全是3306解决办法

    刚吃完晚饭,手机短信一直响个不停,打开一看全是告警信息,立即打开电脑查看,发现很多网页很不稳定  一会能打开,一会打不开 登录服务器查看负载情况,cpu.内存 .磁盘io 负载都不高,查看日志发现ng ...

随机推荐

  1. Armbian 安装与更换为国内软件源

    Armbian 是为 ARM 架构的单板计算机(如树莓派.NanoPi.Orange Pi 等)提供的开源镜像系统,它基于 Debian 或 Ubuntu 系统.在使用 Armbian 进行开发.调试 ...

  2. spring cloud alibaba的小坑:Caused by: com.alibaba.nacos.api.exception.NacosException: endpoint is blank报错问题,

    一.是因为加添spring cloud alibaba配置中心依赖和bootstrap.xml又不使用的问题

  3. OAuth2.0 学习

  4. 使用python批量爬取wallhaven.cc壁纸站壁纸

    偶然发现https://wallhaven.cc/这个壁纸站的壁纸还不错,尤其是更新比较频繁,用python写个脚本爬取 点latest,按照更新先后排序,获得新地址,发现地址是分页展示的,每一页24 ...

  5. python之random函数,随机取值

    如 a =['辣椒炒肉','红烧肉','剁椒鱼头','酸辣土豆丝','芹菜香干'] 需要从a数组中随机取出一个值打印出来 具体脚本 import random a =['辣椒炒肉','红烧肉','剁椒 ...

  6. nodejs获取一个可用的端口,检查端口是否被占用(完美方案)

    nodejs检查端口是否被占用,先看个运行效果: E:\wamp64\www\tmpPro\tryuseport>node t.js 端口:8022被占用 端口:8023被占用 端口:8024可 ...

  7. 小白也能行【手撕ResNet代码篇(附代码)】:详解可复现

    目录 前言 model BasicBlock 和Bottleneck ResNet ResNet18\34\50\101\152 data train test 代码运行以及测试结果 前言 之前已经给 ...

  8. Java--事务,操作数据库,实现转账

    更新:2019/3/29 目录 简介 事务的四个特性 一个小Demo 目录结构 jdbc.properties JDBCUtil.java TestTransaction.java[核心代码] 数据库 ...

  9. Codeforces Round 978 (Div. 2) A-D1 题解

    A. Bus to Pénjamo 题意 有一辆车上面有 \(r\) 排座位,每排有 \(2\) 个座位,现在共 \(n\) 个家庭出行坐公交车,每个家庭 \(a_i\) 个人(保证 \(2r\ge ...

  10. FHQ treap(无旋treap)

    平衡树 平衡树作为一种中级数据结构,有着广泛的使用场景.其平衡性的维护方式灵活多变,而其中的无旋treap更以简单著称 P3369 [模板]普通平衡树 题意: 需维护以下操作: 插入一个数 x. 删除 ...