前置准备
安装 ubuntu 16.04 服务器版本
步骤 1:安装 nginx 服务器
1、nginx 是一个先进的、资源优化的 web 服务器程序,用来向因特网上的访客展示网页。我们从 nginx 服务器的安装开始介绍,使用 apt 命令 从 ubuntu 的官方软件仓库中获取 nginx 程序。
$ sudo apt-get install nginx
在 ubuntu 16.04 安装 nginx
2、 然后输入 netstat 和 systemctl 命令,确认 nginx 进程已经启动并且绑定在 80 端口。
$ netstat -tlpn
检查 nginx 网络端口连接
$ sudo systemctl status nginx.service
检查 nginx 服务状态
当你确认服务进程已经启动了,你可以打开一个浏览器,使用 http 协议访问你的服务器 ip 地址或者域名,浏览 nginx 的默认网页。
http://ip-address
步骤 2:启用 nginx http/2.0 协议
3、 对 http/2.0 协议的支持默认包含在 ubuntu 16.04 最新发行版的 nginx 二进制文件中了,它只能通过 ssl 连接并且保证加载网页的速度有巨大提升。
要启用nginx 的这个协议,首先找到 nginx 提供的网站配置文件,输入下面这个命令备份配置文件。
$ cd /etc/nginx/sites-available/ $ sudo mv default default.backup
备份 nginx 的网站配置文件
4、然后,用文本编辑器新建一个默认文件,输入以下内容:
server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; root /var/www/html; index index.html index.htm index.php; server_name 192.168.1.13; location / { try_files $uri $uri/ =404; } ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; ssl_protocols tlsv1 tlsv1.1 tlsv1.2; ssl_prefer_server_ciphers on; ssl_ciphers eecdh+chacha20:eecdh+aes128:rsa+aes128:eecdh+aes256:rsa+aes256:eecdh+3des:rsa+3des:!md5; ssl_dhparam /etc/nginx/ssl/dhparam.pem; ssl_session_cache shared:ssl:20m; ssl_session_timeout 180m; resolver 8.8.8.8 8.8.4.4; add_header strict-transport-security "max-age=31536000; #includesubdomains" always; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; } } server { listen 80; listen [::]:80; server_name 192.168.1.13; return 301 https://$server_name$request_uri; }
启用 nginx http 2 协议
上面的配置片段向所有的 ssl 监听指令中添加 http2 参数来启用 http/2.0。
上述添加到服务器配置的最后一段,是用来将所有非 ssl 的流量重定向到 ssl/tls 默认主机。然后用你主机的 ip 地址或者 dns 记录(最好用 fqdn 名称)替换掉 server_name 选项的参数。
5、 当你按照以上步骤编辑完 nginx 的默认配置文件之后,用下面这些命令来生成、查看 ssl 证书和密钥。
用你自定义的设置完成证书的制作,注意 common name 设置成和你的 dns fqdn 记录或者服务器 ip 地址相匹配。
$ sudo mkdir /etc/nginx/ssl $ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt $ ls /etc/nginx/ssl/
生成 nginx 的 ssl 证书和密钥
6、 通过输入以下命令使用一个强 dh 加密算法,这会修改之前的配置文件 ssl_dhparam 所配置的文件。
$ sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
创建 diffie-hellman 密钥
7、 当 diffie-hellman 密钥生成之后,验证 nginx 的配置文件是否正确、能否被 nginx 网络服务程序应用。然后运行以下命令重启守护进程来观察有什么变化。
$ sudo nginx -t $ sudo systemctl restart nginx.service
检查 nginx 的配置
8、 键入下面的命令来测试 nginx 使用的是 http/2.0 协议。看到协议中有 h2 的话,表明 nginx 已经成功配置使用 http/2.0 协议。所有最新的浏览器默认都能够支持这个协议。
$ openssl s_client -connect localhost:443 -nextprotoneg ''
测试 nginx http 2.0 协议
第 3 步:安装 php 7 解释器
通过 fastcgi 进程管理程序的协助,nginx 能够使用 php 动态语言解释器生成动态网络内容。fastcgi 能够从 ubuntu 官方仓库中安装 php-fpm 二进制包来获取。
9、 在你的服务器控制台里输入下面的命令来获取 php7.0 和扩展包,这能够让 php 与 nginx 网络服务进程通信。
$ sudo apt install php7.0 php7.0-fpm
安装 php 7 以及 php-fpm
10、 当 php7.0 解释器安装成功后,输入以下命令启动或者检查 php7.0-fpm 守护进程:
$ sudo systemctl start php7.0-fpm $ sudo systemctl status php7.0-fpm
开启、验证 php-fpm 服务
11、 当前的 nginx 配置文件已经配置了使用 php fpm 来提供动态内容。
下面给出的这部分服务器配置让 nginx 能够使用 php 解释器,所以不需要对 nginx 配置文件作别的修改。
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; }
下面是的截图是 nginx 默认配置文件的内容。你可能需要对其中的代码进行修改或者取消注释。
启用 php fastcgi
12、 要测试启用了 php-fpm 的 nginx 服务器,用下面的命令创建一个 php 测试配置文件 info.php。接着用 http://ip_or domain/info.php 这个网址来查看配置。
$ sudo su -c 'echo "<?php phpinfo(); ?>" |tee /var/www/html/info.php'
创建 php info 文件
检查 php fastcgi 的信息
检查服务器是否宣告支持 http/2.0 协议,定位到 php 变量区域中的 $_server[‘server_protocol'] 就像下面这张截图一样。
检查 http2.0 协议信息
13、 为了安装其它的 php7.0 模块,使用 apt search php7.0 命令查找 php 的模块然后安装。
如果你想要 安装 wordpress 或者别的 cms,需要安装以下的 php 模块,这些模块迟早有用。
$ sudo apt install php7.0-mcrypt php7.0-mbstring
安装 php 7 模块
14、 要注册这些额外的 php 模块,输入下面的命令重启 php-fpm 守护进程。
$ sudo systemctl restart php7.0-fpm.service
第 4 步:安装 mariadb 数据库
15、 最后,我们需要 mariadb 数据库来存储、管理网站数据,才算完成 lemp 的搭建。
运行下面的命令安装 mariadb 数据库管理系统,重启 php-fpm 服务以便使用 mysql 模块与数据库通信。
$ sudo apt install mariadb-server mariadb-client php7.0-mysql $ sudo systemctl restart php7.0-fpm.service
安装 mariadb
16、 为了安全加固 mariadb,运行来自 ubuntu 软件仓库中的二进制包提供的安全脚本,这会询问你设置一个 root 密码,移除匿名用户,禁用 root 用户远程登录,移除测试数据库。
输入下面的命令运行脚本,并且确认所有的选择。参照下面的截图。
$ sudo mysql_secure_installation
mariadb 的安全安装
17、 配置 mariadb 以便普通用户能够不使用系统的 sudo 权限来访问数据库。用 root 用户权限打开 mysql 命令行界面,运行下面的命令:
$ sudo mysql mariadb> use mysql; mariadb> update user set plugin='‘ where user='root'; mariadb> flush privileges; mariadb> exit
mariadb 的用户权限
最后通过执行以下命令登录到 mariadb 数据库,就可以不需要 root 权限而执行任意数据库内的命令:
$ mysql -u root -p -e 'show databases'
查看 mariadb 数据库
以上是在Ubuntu中如何为Nginx服务器安装LEMP环境的详细内容。更多信息请关注PHP中文网其他相关文章!

NGINXisessentialformodernwebapplicationsduetoitsrolesasareverseproxy,loadbalancer,andwebserver,offeringhighperformanceandscalability.1)Itactsasareverseproxy,enhancingsecurityandperformancebycachingandloadbalancing.2)NGINXsupportsvariousloadbalancingm

通过Nginx配置SSL/TLS来确保网站安全,需要以下步骤:1.创建基本配置,指定SSL证书和私钥;2.优化配置,启用HTTP/2和OCSPStapling;3.调试常见错误,如证书路径和加密套件问题;4.应用性能优化建议,如使用Let'sEncrypt和会话复用。

Nginx是高性能的HTTP和反向代理服务器,擅长处理高并发连接。1)基本配置:监听端口并提供静态文件服务。2)高级配置:实现反向代理和负载均衡。3)调试技巧:检查错误日志和测试配置文件。4)性能优化:启用Gzip压缩和调整缓存策略。

Nginx缓存可以通过以下步骤显着提升网站性能:1)定义缓存区和设置缓存路径;2)配置缓存有效期;3)根据不同内容设置不同的缓存策略;4)优化缓存存储和负载均衡;5)监控和调试缓存效果。通过这些方法,Nginx缓存能减少后端服务器压力,提升响应速度和用户体验。

使用DockerCompose可以简化Nginx的部署和管理,通过DockerSwarm或Kubernetes进行扩展是常见的做法。1)使用DockerCompose定义和运行Nginx容器,2)通过DockerSwarm或Kubernetes实现集群管理和自动扩展。

Nginx的高级配置可以通过服务器块和反向代理实现:1.服务器块允许在一个实例中运行多个网站,每个块独立配置。2.反向代理将请求转发到后端服务器,实现负载均衡和缓存加速。

Nginx性能调优可以通过调整worker进程数、连接池大小、启用Gzip压缩和HTTP/2协议、使用缓存和负载均衡来实现。1.调整worker进程数和连接池大小:worker_processesauto;events{worker_connections1024;}。2.启用Gzip压缩和HTTP/2协议:http{gzipon;server{listen443sslhttp2;}}。3.使用缓存优化:http{proxy_cache_path/path/to/cachelevels=1:2k

Nginx安全强化可以通过以下步骤实现:1)确保所有流量通过HTTPS传输,2)配置HTTP头增强通信安全性,3)设置SSL/TLS加密数据传输,4)实施访问控制和速率限制防范恶意流量,5)使用ngx_http_secure_link_module模块防范SQL注入攻击,这些措施能有效提升Nginx服务器的安全性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Dreamweaver Mac版
视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能