## nginx作指南



## 常用命令

```shell
# 测试配置文件是否正确生效
nginx -t

# 重启
nginx -s reload

# 启动
nginx
```



## SSL证书

1. SSL证书的申请可以通过certbot申请一个免费的
2. SSL证书更新后，需要nginx重启/重新加载才能生效
3. http块与server块同时配置了SSL配置的话，server块中的优先级更高，http块属于全局配置



## http重定向https

在配置文件中下面的内容

```shell
# 将所有HTTP请求通过rewrite指令重定向到HTTPS。
server {
  listen       80 default_server;
  listen       [::]:80 default_server;
  server_name  _;
  rewrite ^(.*)$ https://$host$1; 
}
```





## 问题



### 启动报错：nginx: [emerg] open() "/run/nginx/nginx.pid" failed (2: No such file or directory)

原因：可能是配置文件中的user指令中的用户直接操作/run目录的权限不足，导致无法创建；

* 解决方法1：在nginx.conf配置文件中，增加如下指令，修改pid文件目录绕过权限不足的问题

  ```shell
  # 指定nginx的pid文件位置
  pid /var/run/nginx/nginx.pid;
  ```

  说明：/var/run是/run的一个软连接入口

* 解决方法2：使用系统级命令进行启动

  ```shell
  # alpine系统
  rc-service nginx start
  ```



