如何在 SUSE Linux Enterprise Server 12 上安装 Nginx
Nginx 是一款免费的开源软件。它是一款非常流行的 Web 服务器。您可以替换 Apache Web 服务器,并使用 Nginx 托管静态、动态站点和 Apache 的反向代理服务器。本页向您展示如何在 SUSE Linux Enterprise Server 版本 12.0 SP2 或 SP3 上安装 Nginx。
步骤 1 - 配置 Nginx 仓库
键入以下 zypper 命令以添加 SLES 的 zypper 存储库:
$ sudo zypper addrepo -G -t yum -c 'http://nginx.org/packages/sles/12' nginx
接下来,您必须验证数字签名以维护下载包的完整性和来源。 使用wget 命令获取 nginx 签名密钥:
$ wget http://nginx.org/keys/nginx_signing.key
示例输出:
--2018-02-03 23:48:48-- http://nginx.org/keys/nginx_signing.key Resolving nginx.org (nginx.org)... 206.251.255.63, 95.211.80.227, 2001:1af8:4060:a004:21::e3, ... Connecting to nginx.org (nginx.org)|206.251.255.63|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1561 (1.5K) [text/plain] Saving to: ‘nginx_signing.key’ 100%[==================================================>] 1,561 --.-K/s in 0s 2018-02-03 23:48:49 (117 MB/s) - ‘nginx_signing.key’ saved [1561/1561]
使用 rpm 命令将密钥导入到 rpm:
$ sudo rpm --import nginx_signing.key
第 2 步 - 如何在 SUSE Linux 上安装 Nginx
键入以下 zypper 命令:
$ sudo zypper install nginx
步骤 3 – 设置防火墙/打开端口 80
首先创建 Nginx 服务特定配置文件以打开端口 80 使用文本编辑器(如 vi 命令)
$ sudo vi /etc/sysconfig/SuSEfirewall2.d/services/nginx
附加以下配置:
## Name: Nginx web server ## Description: Open ports for Nginx Server # space separated list of allowed TCP ports TCP="http"
由于我还没有为我的服务器配置 SSL 证书,所以我只需要允许 TCP 端口号 80 上的流量。保存并退出 vi/vim 文本编辑器。现在,只需运行以下命令来打开端口 80:
$ sudo yast firewall
您必须使用TAB和arrow键导航到 YaST。在 YaST 中,导航到允许的服务,然后按Enter键:
使用TAB导航到要允许的服务并按Down箭头键选择Nginx Web 服务器,然后按Enter键。您必须按Alt-A将 Nginx 服务器添加到防火墙:
按Alt-N和Alt-F保存并完成 SLES 上的防火墙设置。返回到 shell 提示符后,列出SLES 上的所有 iptables 规则:
$ sudo iptables -S
示例输出:
-A input_ext -p tcp -m limit --limit 3/min -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-ACC-TCP " --log-tcp-options --log-ip-options -A input_ext -p tcp -m tcp --dport 80 -j ACCEPT
使用 sudo 命令和grep 命令的组合来查明 80 端口是否已打开:
sudo sh -c 'iptables -L -n -v | grep :80'
步骤 4 – 启动 Nginx 服务器
键入以下 systemctl 命令以在启动时启用 Nginx:
$ sudo systemctl enable nginx
启动您的 Nginx 网络服务器:
$ sudo systemctl start nginx
验证它:
$ systemctl status nginx
80端口开放了吗?
运行以下 netstat 命令或 ss 命令:
$ sudo netstat -tulpn | grep :80
$ sudo ss -tulpn | grep :80
如何管理Nginx Web服务器/服务进程
停止 Nginx Web 服务器:
$ sudo systemctl stop nginx
启动 Web 服务器:
$ sudo systemctl start nginx
再次重启服务:
$ sudo systemctl restart nginx
更改配置后重新加载 Ngnix:
$ sudo systemctl reload nginx
步骤 5 - 测试 Nginx 服务器
使用ip 命令找出你的 SLES ip 地址:
示例输出:
$ ip a s
$ ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:8a:3c:88 brd ff:ff:ff:ff:ff:ff inet 192.168.122.43/24 brd 192.168.122.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe8a:3c88/64 scope link valid_lft forever preferred_lft forever
记下服务器的 IP 地址 192.168.122.43。启动 Web 浏览器并输入:
另一个选项是运行 curl 命令:
示例输出:
http://serve_IP
http://your-domain
http://192.168.122.43
$ curl -I 192.168.122.43
HTTP/1.1 200 OK Server: nginx/1.12.2 Date: Sat, 03 Feb 2018 19:18:53 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 17 Oct 2017 13:30:50 GMT Connection: keep-alive ETag: "59e6060a-264" Accept-Ranges: bytes
步骤 6:在 SLES 上查找有关 Nginx 配置文件的信息
现在您已经启动并运行了 Nginx。是时候对其进行自定义了。
存储网站内容的实际路径
- /usr/share/nginx/html:您需要将所有 HTML/CSS/js/images 文件存储在这里。
您可以使用 scp 命令或cp 命令上传文件:
$ sudo cp /home/vivek/mysite-files/*.html /usr/share/nginx/html
$ scp ~/projects/example.com/static/*.html vivek@192.168.122.43:/usr/share/nginx/html
SLES 的服务器配置文件
- /etc/nginx/:默认的 nginx 配置目录
- /etc/nginx/nginx.conf:主 nginx 配置文件
- /etc/nginx/conf.d/default.conf:虚拟主机的默认 nginx 配置文件
再次使用文本编辑器编辑文件:
$ sudo vi /etc/nginx/nginx.conf
Nginx 服务器登录 SLES
- /var/log/nginx/access.log:所有用户访问者都存储在这里。
- /var/log/nginx/error.log:所有服务器错误都存储在这里。
使用tail命令或者grep命令或者cat命令查看日志文件:
$ sudo tail -f /var/log/nginx/access.log
$ sudo grep 'foo' /var/log/nginx/error.log