在本文中,我们将学习如何在Ubuntu 16.04上安装Nginx以及如何从防火墙允许Nginx。此外,我们还将学习如何控制Nginx。
Nginx是一种流行的Web服务器,其中大多数网站都托管在Nginx上的真实世界中,在那里,它比Apache更友好,也可以用作反向代理。
在这种情况下(演示),我们将需要具有sudo特权的非root用户。
默认情况下,Nginx可用于默认的Ubuntu存储库,因此我们可以直接从命令行安装Nginx,也可以使用apt安装软件包,但是在安装Nginx之前,我们将更新并安装Nginx。
$ sudo apt-get updateOutPut: sudo apt-get update Hit:1 http://in.archive.ubuntu.com/ubuntu xenial InRelease Hit:2 http://security.ubuntu.com/ubuntu xenial-security InRelease Get:3 http://in.archive.ubuntu.com/ubuntu xenial-updates InRelease [95.7 kB] Hit:4 http://ppa.launchpad.net/ansible/ansible/ubuntu xenial InRelease Hit:5 http://in.archive.ubuntu.com/ubuntu xenial-backports InRelease Get:6 http://in.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [37 3 kB] Get:7 http://in.archive.ubuntu.com/ubuntu xenial-updates/main i386 Packages [368 kB] Get:8 http://in.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [319 kB] Get:9 http://in.archive.ubuntu.com/ubuntu xenial-updates/universe i386 Packages [316 kB] Fetched 1,471 kB in 4s (325 kB/s). Reading package lists... Done
Now we will install the Nginx using the below command - $ sudo apt-get install nginx Output: Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: libyaml-0-2 python-crypto python-ecdsa python-jinja2 python-markupsafe python-paramiko python-pkg-resources python-setuptools python-six python-yaml sshpass Use 'sudo apt autoremove' to remove them. The following NEW packages will be installed: nginx 0 upgraded, 1 newly installed, 0 to remove and 13 not upgraded. Need to get 3,498 B of archives. After this operation, 37.9 kB of additional disk space will be used. Get:1 http://in.archive.ubuntu.com/ubuntu xenial-updates/main amd64 nginx all 1.10.0-0ubuntu0.16.04.2 [3,498 B] Fetched 3,498 B in 0s (11.1 kB/s) Selecting previously unselected package nginx. (Reading database ... 92777 files and directories currently installed.) Preparing to unpack .../nginx_1.10.0-0ubuntu0.16.04.2_all.deb ... Unpacking nginx (1.10.0-0ubuntu0.16.04.2) ... Setting up nginx (1.10.0-0ubuntu0.16.04.2) ...
/ var / www / html:–是Nginx所有默认内容所在的文件夹。/ etc / nginx:Nginx配置文件夹,存储所有Nginx配置文件。
tc / nginx / nginx.conf:这是主要的Nginx配置,也称为Nginx全局配置。
/ etc / nginx / sites-available:这是所有单个服务器块的存储位置,除非且除非链接到启用了站点的文件夹,否则Nginx不会使用配置文件。
/ etc / nginx / sites-enabled /:这是存储已启用的站点或服务器块的文件夹,它们是通过链接站点可用文件夹中的服务器文件创建的。
/ etc / nginx / snippets:这是配置文件中可重复使用的配置文件或片段的文件夹,称为片段。
/var/log/nginx/access.log:对Nginx Web服务器的所有请求都记录在此日志中,否则,如果我们将Nginx配置更改为存储在另一个文件夹中。
/var/log/nginx/error.log:与Nginx Web服务器有关的所有错误都存储在此日志中。
在通过Web浏览器访问Nginx之前,我们将允许防火墙从外部访问服务。
要查看可用于防火墙的配置文件列表,请执行以下操作–
$ sudo ufw app listOutput: Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
Nginx Full:这将同时允许端口80和443。
Nginx HTTP:这将仅允许端口80。
Nginx HTTPS:这将仅允许端口443。
在此演示中,我们同时允许HTTP 80和HTTPS 443,以下是同时允许80和443协议的命令
$ sudo ufw allow 'Nginx HTTP' Rule added Rule added (v6)
如果我们检查防火墙的状态,我们现在可以看到IPv4和IPv6都允许Nginx Full。
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6)
默认情况下,在安装Ubuntu之后,它将启动Nginx,我们可以使用以下命令检查Nginx的状态–
$ systemctl status nginx nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2016-08-21 18:50:36 IST; 11min ago Process: 4370 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 4286 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS Main PID: 4387 (nginx) Tasks: 2 Memory: 8.0M CPU: 152ms CGroup: /system.slice/nginx.service ├─4387 nginx: master process /usr/sbin/nginx -g daemon on; master_process on └─4389 nginx: worker process Aug 21 18:50:35 ubuntu16 systemd[1]: Starting A high performance web server and a reverse proxy server... Aug 21 18:50:36 ubuntu16 systemd[1]: nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument Aug 21 18:50:36 ubuntu16 systemd[1]: Started A high performance web server and a reverse proxy server.
我们还可以使用curl命令检查Nginx服务器是否在运行,以下是使用服务器IP地址检查服务器状态的命令。
$ curl -4 192.168.0.9 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>
现在,我们可以从任何浏览器访问Nginx默认页面,以便我们可以确认Nginx正在运行并且可以从服务器外部访问。
http:// server_domain_name_or_IP
停止Nginx
$ sudo systemctl stop nginx
启动Nginx
$ sudo systemctl start nginx
重新启动Nginx
$ sudo systemctl restart nginx
在不删除现有连接的情况下重新加载配置
$ sudo systemctl reload nginx
在启动时启动Nginx
$ sudo systemctl enable nginx
在启动时禁用或停止Nginx。
$ sudo systemctl disable nginx
在完成本文和设置之后,我们将能够安装Nginx Web服务器,该服务器允许Nginx用于防火墙,并管理Nginx以启动,停止,启用,禁用和重新加载Nginx Web服务器。
本文向大家介绍Ubuntu16.04源码安装Mininet,包括了Ubuntu16.04源码安装Mininet的使用技巧和注意事项,需要的朋友参考一下 Mininet Mininet 是一个轻量级软件定义网络和测试平台;它采用轻量级的虚拟化技术使一个单一的系统看起来像一个完整的网络运行相关的内核系统和用户代码,也可简单理解为 SDN 网络系统中的一种基于进程虚拟化平台,它支持 OpenFlow、O
本文向大家介绍Ubuntu16.04安装MySQL5.7的教程,包括了Ubuntu16.04安装MySQL5.7的教程的使用技巧和注意事项,需要的朋友参考一下 安装主程序 主程序安装就我知道有两种方式: - 使用apt-get全自动安装 使用dpkg手动安装依赖包 至此,我们已经完成了主程序安装,并可以在本机使用MySQL -u root -p进行登录数据库了。 开放远程访问 开启root用户的全
本文向大家介绍Ubuntu16.04安装python3.6.5步骤详解,包括了Ubuntu16.04安装python3.6.5步骤详解的使用技巧和注意事项,需要的朋友参考一下 下载python3.6.5安装包 1. 上传安装包。打开终端,利用命令cd 进入文件所在文件夹里 2. 解压文件 tar xfzPython-3.6.5.tgz 注意:这里使用xfz命令,而不建议使用-xvzf命令,
问题内容: 如何在AWS ElasticBeanstalk上安装和配置Redis?有人知道如何编写.ebextension脚本来实现这一目标吗? 问题答案: AWS Elastic Beanstalk确实通过.ebextensions文件夹提供了资源配置。本质上,除了应用程序之外,您还需要告诉Elastic Beanstalk您还希望提供什么。用于置备到默认vpc。你需要 创建一个.ebexten
问题内容: 我希望在我的Linux笔记本电脑上安装MSBuild,以便可以构建我的C#OSS项目。我将如何去做呢?我遇到几个导游,如本该建议安装的NuGet包,但它似乎并没有官方或积极维护。 我可以从中安装MSBuild的官方软件包源吗? 问题答案: 是的,CoreFX团队托管了一个这样的程序包作为MyGet提要。要安装,请在终端上运行: 从技术上讲,此方法仅应用于构建.NET Core存储库,但
我正在创建我的第一个项目Java EE7,但我遇到了麻烦。感谢任何帮助。 Tomcat 7.0.34 JSF 2.2 PrimeFaces 3.5 javaee-api-7.0.jar 当应用程序启动时,Tomcat日志显示以下消息: Java EE 6@javax.annotation.managedBean vs@javax.inject.named vs@javax.faces.manage