本文介绍一下在 openSUSE
下如何安装 nginx
,以及对 nginx
做一些简单的配置。
安装环境:
openSUSE Leap 42.2
安装步骤
1. 添加软件源
安装 nginx
有几种方式,包括源码编译安装,或者直接通过添加软件源,进行在线安装等方式。后者要简单方便一些,因为它能自动解决依赖关系,并且方便我们升级维护。
打开 nginx
的官网下载地址 地址在此 ,可以看到 nginx
为不同的 linux
发行版都添加了软件源信息,我们使用的是 openSUSE
系统,因此可以使用 SLES
相关的软件源:
进入到 linux
系统中,执行上述命令,添加软件源。
2. 使用 YaST2
工具进行安装
打开 系统-->添加/移除软件:
然后搜索 nginx
:
可以看到,第一个就是从刚才添加的软件源中读取到的软件信息,勾选,点击右下角的接受,进行安装。
安装完毕后 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
指令用于分析检测配置文件的语法,并且会打印配置文件的位置:
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
试一下:
配置一个虚拟站点
因为nginx.conf
中 已包含了conf.d/
目录下的所有配置文件( include /etc/nginx/conf.d/*.conf;
),因此我们可以拷贝一份default.conf
,随便命名为site1.conf
,修改里面的端口和根目录即可。别忘了 重新加载配置文件和在根目录下放置一个idnex.html
文件,不然可能会发生403
拒绝访问,出现403
还有一个原因,就是权限问题,修改一下根目录的权限,把他赋给nginx
即可。
比如配置一个88
的端口: