如何在SUSE Linux Enterprise Server 12上安装Nginx

时间:2020-01-09 10:39:24  来源:igfitidea点击:

如何在SuSe Enterprise Linux服务器(SLES)12 SP 3版本上安装和设置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

输出示例:

--2016-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      
 
2016-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服务特定的配置文件,以使用文本编辑器(例如vi命令)打开端口80

$ 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和箭头键导航YaST。
在YaST中,导航到"允许的服务",然后按Enter键:使用TAB导航到"允许服务"并按向下箭头键选择" 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 Web服务器:

$ 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。
打开浏览器并执行:

http://serve_IP
http://your-domain
http://192.168.122.43

另一种选择是运行curl命令:

$ curl -I 192.168.122.43

输出示例:

HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Sat, 03 Feb 2016 19:18:53 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 17 Oct 2016 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/Hyman/mysite-files/*.html /usr/share/nginx/html
$ scp ~/projects/theitroad.local/static/*.html [email protected]:/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