1

本文介绍一下在 openSUSE 下如何安装 nginx ,以及对 nginx 做一些简单的配置。

安装环境:
openSUSE Leap 42.2


安装步骤

1. 添加软件源

安装 nginx 有几种方式,包括源码编译安装,或者直接通过添加软件源,进行在线安装等方式。后者要简单方便一些,因为它能自动解决依赖关系,并且方便我们升级维护。

打开 nginx 的官网下载地址 地址在此 ,可以看到 nginx 为不同的 linux 发行版都添加了软件源信息,我们使用的是 openSUSE 系统,因此可以使用 SLES相关的软件源:

clipboard.png

进入到 linux系统中,执行上述命令,添加软件源。

2. 使用 YaST2 工具进行安装

打开 系统-->添加/移除软件:

clipboard.png

然后搜索 nginx

clipboard.png

可以看到,第一个就是从刚才添加的软件源中读取到的软件信息,勾选,点击右下角的接受,进行安装。
安装完毕后 YaST2会自动退出。


nginx 常用命令

1. 启动 nginx

启动 nginx 直接执行nginx命令即可:

 nginx

1.1 加载指定的配置文件

nginx 启动时会默认加载 /etc/nginx/nginx.cnf 下的配置文件进行启动,如果你想加载其他的配置文件,可以使用 -c 指令:

nginx -c /etc/nginx/nginx.conf

1.2 找出默认的配置位置

如果你不知道默认的配置文件在什么地方,可以使用 -t 指令, -t 指令用于分析检测配置文件的语法,并且会打印配置文件的位置:

clipboard.png

2. 查看 nginx 的运行状态

ps -ef|grep nginx

信息如下:

linux-2wl8:~ # ps -ef|grep nginx
root     10132     1  0 16:58 ?        00:00:00 nginx: master process nginx
root     10133 10132  0 16:58 ?        00:00:00 nginx: worker process
root     10134 10132  0 16:58 ?        00:00:00 nginx: worker process
root     10136 10132  0 16:58 ?        00:00:00 nginx: worker process
root     10137 10132  0 16:58 ?        00:00:00 nginx: worker process
root     10140  8912  0 16:59 pts/0    00:00:00 grep --color=auto nginx

可以看到,nginx 已经成功启动,包含一个主进程(master process)和几个工作进程(work process)
如果没显示上述进程信息,表示 nginx未成功启动。


3. 停止 nginx

nginx 停止有两种方式:快速停止平滑停止

  • nginx -s stop :快速停止

  • nginx -s quit :平滑停止

平滑停止会等待所有的工作进程处理完所有的请求后,再进行停止,不是强制停止。


4. 重载配置文件

nginx 支持配置文件的热修改,无需重启服务也可重新加载配置文件,使用命令:

nginx -s reload

主进程接收到上述指令后,首先会检查配置文件的语法是否正确,确认无误后,会开启新的工作进程,然后向旧的工作进程发送关闭的指令,旧的工作进程收到指令后,并非立即停止,而是处理完当前的请求后再自行停止。通过这个步骤,来完成对配置文件的重新载入。

5. 查看 nginx的版本:

通过 -v来查看版本信息:

nginx -v

nginx 配置文件

通过 YaST 安装后,配置文件的默认位置为 /etc/nginx/nginx.conf.

下面是一些常见的配置信息。

    

# 定义用户组和用户
user  root root;

# 进程数,建议为CPU核心数
worker_processes  4;

# 
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

# 工作模式与连接数上限

events {
    worker_connections  1024;
}

#设定http服务器

http {
    include       /etc/nginx/mime.types; #文件扩展名与文件类型映射表
    
    default_type  application/octet-stream;#默认文件类型
    
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;
    
    # 把其他的配置信息包含进来
    include /etc/nginx/conf.d/*.conf;

}

如何更改根目录位置?

openSUSE中 默认的根目录在 usr/share/nginx 下,假如我们想放在/home/web 目录下。

打开配置文件 nginx.conf ,在http 节点下 有这么一句话 include /etc/nginx/conf.d/*.conf;打开 conf.d/ 目录,发现有一个 default.conf 文件,在该文件中配置了server节点。

server 节点中root表示根目录存放的位置,listen 表示要监听的端口,server_name表示主机名。
此时把root节点内容修改为 /home/web 即可,并在 /home/web 目录下放置一个 index.html.

然后执行 nginx -s reload 重新加载配置文件。在浏览器中访问 localhost 试一下:

clipboard.png


配置一个虚拟站点

因为nginx.conf 中 已包含了conf.d/ 目录下的所有配置文件( include /etc/nginx/conf.d/*.conf;),因此我们可以拷贝一份default.conf ,随便命名为site1.conf,修改里面的端口和根目录即可。别忘了 重新加载配置文件和在根目录下放置一个idnex.html文件,不然可能会发生403拒绝访问,出现403还有一个原因,就是权限问题,修改一下根目录的权限,把他赋给nginx即可。

比如配置一个88的端口:

clipboard.png


zhaot
1.2k 声望144 粉丝

努力让技术精进,灵魂有趣