install nginx on ubuntu

本文提供了一套简洁明了的Ubuntu 14.04服务器安装及基本配置流程,包括使用Root用户登录、创建普通用户、赋予用户Root权限、通过SSH密钥实现安全登陆、配置sshd服务以禁止root ssh远程登录,最终安装并管理nginx服务,以增强服务器安全性并简化日常操作。

引子
当我们安装了一个Ubuntu14.04 server的时候,我们需要简单的配置步骤来为服务的安装做些准备,这样做可以提高服务器的安全性和易用性,也是为后续的操作提供基础。

第一步:使用Root用户登录
登录server,你当然要知道server的IP地址和root用户密码,然后使用root用户登录。首先,客户端使用putty或者xshell登录,请注意root权限是Linux系统的最高权限,谨防使用root用户做一些修改。
第二步:创建一个用户,需要回答几个问题。使用如下命令:

adduser nginx
第三步:给新用户附上root权限
这时候可以使用nginx这个用户了,但是只是普通的用户。我们在操作过程中经常用到root的权限来完成某种操作,频繁的使用 sudo….的,并且还要输入命名,挺消耗时间。为了操作的方便性,我们给这个用户附上root权限,可以使用如下命令:

gpasswd -a nginx sudo
第四步:使用证书文件添加登陆校验
如果你还没有证书文件,那么你需要手动生成,ubuntu内置的ssh-keygen命令可以帮到你,

ssh-keygen -t rsa –C user.email//请将user.email替换成具体的email。rsa 采用ras加密方式的公匙/私匙对,初了ras还有das方式。email 是对这个公匙/私匙对的一个注释和说明。你也可以省略参数执行该命令
然后输出如下内容,问你是否重新输入文件名,如果不想修改文件名,enter键继续。

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/nginx/.ssh/id_rsa):
接下来会询问你是否设置密码,如果设置密码,登陆的时候需要这个密码,请牢记。这时候会在用户的home目录.ssh文件夹下生成公钥id_rsa.pub和私钥文件id_rsa,
第五步,在本机上使用命令ssh-copy-id将公钥拷贝到服务器的authorized_keys文件中

ssh-copy-id -i ~/.ssh/id_rsa.pub nginx@ip
第六步,配置ssh Daemon
ssh Daemon允许用户从远处登录,但是不能允许root账户登录,下面会介绍到。
编辑sshd_config文件

vi /etc/ssh/sshd_config
找到如下行:

/etc/ssh/sshd_config (before)
PermitRootLogin yes //配置是否允许root ssh远程登录
将PermitRootLogin 设置为no。强烈建议讲每一台server的该选择都修改点来进一步提升服务器的安全性。
然后重启下ssh服务

service ssh restart
有了基础的工作后。我们就可以在ubuntu上装nginx了。
在ubuntu上我们可以使用apt包管理工具轻松的安装工具和第三方库,在安装nginx前,先将系统更新到最新,然后安装

sudo apt-get update
sudo apt-get install nginx
nginx安装后,会默认启动,可以通过服务器的ip可以检验下nginx是否安装成功

http://server_domain_name_or_IP
如果成功安装,将会看到nginx的默认加载页,看起来是这样的,
default_page

nginx在不用的时候我们总是希望它不要启动,其实很简单,只要将对应的服务停止,重启都是可以的,我一并将这些命令都贴到下面,应用很简单。

sudo service nginx stop //stop
sudo service nginx start //start
sudo service nginx restart //restart
不过,作为服务器我们总是希望它随着系统启动而启动,我们该怎么做呢,可以参考如下命令:

sudo update-rc.d nginx defaults
最后,nginx是个高性能的web服务器和反向代理服务器,有效使用nginx可以减轻客户都的跨越访问和资源托管,有兴趣的可深入的学习。

### 配置 NginxUbuntu 上支持 HTTPS 要在 Ubuntu 系统中配置 Nginx 以支持 HTTPS,需完成以下几个方面的操作: #### 1. 安装必要的软件包 确保已安装 OpenSSL 和其他依赖项。如果尚未安装 Nginx,则可以通过以下命令安装: ```bash sudo apt update && sudo apt install nginx openssl -y ``` #### 2. 启用 SSL 模块 在编译 Nginx 时需要启用 `--with-http_ssl_module` 参数[^2]。大多数情况下,默认的 Nginx 软件包已经包含了此模块。可通过以下命令验证是否启用了该模块: ```bash nginx -V 2>&1 | grep -- '--with-http_ssl_module' ``` 如果没有找到相关内容,则可能需要重新编译 Nginx 或者通过官方源安装。 #### 3. 获取 SSL/TLS 证书 获取有效的 SSL/TLS 证书对于 HTTPS 至关重要。可以选择 Let's Encrypt 提供的免费证书或其他商业 CA 的证书。以下是使用 Certbot 自动化工具申请 Let's Encrypt 证书的方法: ```bash sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install python-certbot-nginx sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com ``` 这会自动创建并部署所需的证书文件到 `/etc/letsencrypt/live/yourdomain.com/` 下[^4]。 #### 4. 创建 Diffie-Hellman 参数文件 为了增强加密强度,推荐生成一个自定义的 Diffie-Hellman 参数文件: ```bash sudo openssl dhparam -out /etc/nginx/dhparam.pem 2048 ``` 注意:上述过程可能会花费几分钟时间来计算[^1]。 #### 5. 修改 Nginx 配置文件 编辑站点对应的虚拟主机配置文件(通常位于 `/etc/nginx/sites-available/default`),添加如下内容以便加载新证书以及优化安全设置: ```nginx server { listen 80; server_name yourdomain.com www.yourdomain.com; # Redirect all HTTP requests to HTTPS with a permanent redirect (status code 301). return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name yourdomain.com www.yourdomain.com; ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; ssl_dhparam /etc/nginx/dhparam.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256'; ssl_prefer_server_ciphers on; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } error_page 497 https://$host:$server_port$request_uri; } ``` 以上代码片段设置了强制重定向至 HTTPS 并指定了具体的 SSL 设置参数。 #### 6. 测试配置并重启服务 保存更改后的配置文件后,测试语法正确性再启动服务: ```bash sudo nginx -t sudo systemctl restart nginx ``` 最后确认防火墙允许端口 443 访问即可正常工作。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值