一、本文内容的包含

  1. Nginx的安装和使用
  2. Http和Https(80和443端口)的访问配置
  3. Http自动重定向到Https
  4. SSL证书的使用

二、前言

Nginx 是一款由俄罗斯的程序设计师 Igor Sysoev 所开发的高性能 Web反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,可以使用 Nginx 替代 Apache 服务器。

官网下载页地址

我选择使用官网上的最新稳定版 Stable version v1.22.0 版本 进行演示,目录请自由选择。


三、大致步骤

  • PS:如果需要 Rewrite 服务的话,需要先移步下面 “8. https依赖安装” 进行 PCRE 安装,方便安装 nginx 时一起配置

1. 拷贝压缩包并解压

# 可以打开链接下载后上传至服务器,也可以使用下载命令获取安装包
$ wget https://nginx.org/download/nginx-1.22.0.tar.gz# 目录请自由选择
$ cp nginx-1.22.0.tar.gz /usr/local/webserver/
$ cd /usr/local/webserver/
$ tar -zxvf nginx-1.22.0.tar.gz

2. 检查配置并指定安装参数

$ cd nginx-1.22.0/
$ ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/webserver/pcre-8.45

拆解一下上面的命令:

./configure 是编译前检查的命令,--prefix=/usr/local/webserver/nginx 是安装到指定目录,--with-http_stub_status_module --with-http_ssl_module 是安装ssl证书的两个模块,--with-pcre=/usr/local/src/pcre-8.35 是**PCRE**的安装位置(https相关,可选项,后面有说明)

注:如果没有安装过 gcc、ssl等,执行检查步骤可能会报错,需要先安装以下工具

$ yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel# 重新检查
$ ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/webserver/pcre-8.45

3. 编译 和 安装

$ make && make install
安装完成后,会在 /usr/local/webserver/ 目录下生成一个 nginx 的目录,这是我们指定的位置。
安装后生成的 nginx 里面有四个目录 (conf  html  logs  sbin),配置文件在 conf/nginx.conf, 启动文件在 sbin/nginx,先别着急启动,我们先完成http的配置

此时,/usr/local/webserver/nginx-1.22.0目录 就不会再用到了,可以对无用目录和文件进行删除

PS: 完成后可以按需删除安装包和解压目录

$ rm -f /usr/local/webserver/pcre-8.45.tar.gz
$ rm -f /usr/local/webserver/nginx-1.22.0.tar.gz# 安装后解压目录也可以删除,因为是文件夹,加上 -r 遍历删除
$ rm -rf /usr/local/webserver/nginx-1.22.0

4. 设置软链

$ ln -s /usr/local/webserver/nginx/sbin/nginx /usr/bin/# 设置软链后,可以尝试在其他目录使用以下命令看是否成功
$ nginx -v

5. 创建专属组和用户

$ /usr/sbin/groupadd nginx
$ /usr/sbin/useradd -g nginx nginx

6. 配置nginx.conf

为避免篇幅影响目录视觉,配置文件放在了最后,请移步至下面 “配置nginx的http和https” 进行配置完成后,再继续 第7步操作

7. 检查配置、启动、测试(查看进程、网页访问)

# 检查配置
$ nginx -t(检查nginx.conf配置是否正确)
$ nginx -s reload(重新载入配置文件,通常配合-t使用,在修改了nginx.conf且检查无误之后)

# 启动
$ nginx# 查看进程
$ ps -ef | grep nginx

# 其他的一些常用命令
$ nginx -s stop(停止 Nginx)
$ nginx -s reopen(重启 Nginx)$ systemctl status nginx.service(查看nginx服务状态,通常配合-t使用)
  • 错误:

途中遇到个这个错误,上网查说是nginx.conf文件格式不是utf-8导致的,我看文件120行明明是注释,这也能报错?结果我查看服务器上的文件后才发现,是因为本地修改文件后上传没有覆盖掉,而是每次上传时内容追加到文件里去了,应该是lrzsz使用不当导致的乌龙事件

nginx: [emerg] “worker_processes” directive is duplicate in /usr/local/webserver/nginx/conf/nginx.conf:120


8. https依赖安装(可选)

除此之外,如果需要 Rewrite 功能(将http访问转发到https),还需要安装 PCRE,我选择官使用网上目前最新且下载量最高的 v8.45 版本

安装之前如果服务器没有安装过gcc相关的编译工具和库文件,需要先进行安装,如果已安装会自动跳过并提示

$ yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

# 远程拉取安装包
$ cd /usr/local/webserver/
$ wget http://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz# 解压安装包:
$ tar -zxvf pcre-8.35.tar.gz# 进入安装包目录
$ cd pcre-8.35# 编译安装
$ ./configure
$ make && make install# 查看pcre版本,这时候已经可以全局使用下面的命令了
$ pcre-config --version

下面就是 nginx.conf 的配置了,httphttps 是在同一个文件里的


四、配置nginx的http和https

nginx.conf 文件内默认是有基础配置的,建议把配置文件下载到本地,用其他编辑器(例如 VS code)修改完后,再上传覆盖掉原来的文件,不用担心,同目录下有一个原始文件的备份(nginx.conf.default)

注意:

可操作项,根据实际项目修改,https不需要的可以注释掉
如果有Apache占用了80端口,将端口号改成其他端口
重点项在里面都标记了出来,http中有host配置,https中有host和ssl证书配置
修改完后,如果服务器已启动过,使用命令重载一下配置 `$ nginx -s reload`
完成以下配置后可以回到 **第7步继续**
$ vim /usr/local/webserver/nginx/conf/nginx.conf

nginx.conf

user nginx;
worker_processes  2; #设置与服务器CPU核心数一致, 也可以使用 autoerror_log  /logs/nginx/error.log crit; #日志位置和级别#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /logs/nginx/access.log  main;sendfile        on;tcp_nopush      on;tcp_nodelay     on;#keepalive_timeout  0;keepalive_timeout  65;gzip  on;# HTTP 服务server {listen       80;server_name  localhost; #重点1,修改为主机名或域名rewrite ^(.*)$ https://$server_name$1 permanent; #将所有HTTP请求通过rewrite指令重定向到 HTTPS#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html; #重点2,如要自定义路径请修改,默认是nginx/html/index  index.html index.htm; #根索引文件,也就是输入ip或域名后在浏览器访问的第一页面}error_page  404 /404.html;# redirect server error pages to the static page /50x.htmlerror_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}# HTTPS 服务server {listen       443 ssl;server_name  localhost; #重点1,修改为主机名或域名# 证书可以用openssl命令生成,也可以直接到购买的域名商里下载 Nginx使用的ssl证书,# 然后上传到 nginx.conf 同一目录下ssl_certificate      cert.pem; #重点2,ssl证书ssl_certificate_key  cert.key; #重点3,ssl证书keyssl_session_cache    shared:SSL:1m;ssl_session_timeout  10m; #超时# 加密协议等等ssl_protocols TLSv1 TLSv1.1 TLSv1.2;# ssl_ciphers PROFILE=SYSTEM;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_prefer_server_ciphers on;location / {root   html; #重点4,如要自定义路径请修改index  index.html index.htm;}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}}

五、结束

服务启动成功后,在浏览器访问服务器地址,如果修改了80或者443端口记得在访问时加上(如果配置了域名可以使用域名),另外在云服务器设置里设置网络防火墙 入规则 端口,开放http(80)和https(443)端口。如果使用域名访问记得在域名设置里 解析到当前服务器的ip上

阿里云服务器在:服务器实例 -> 网络与安全:安全组 -> 配置规则 -> 入方向

腾讯云服务器在:服务器实例 -> 防火墙

Linux Nginx的安装与配置(全程图文记录超详细)相关推荐

  1. VM虚拟机安装篇·VMware Workstation Pro(虚拟机)安装Win10操作系统(图文介绍超详细)

    VMware Workstation Pro(虚拟机)安装Win10操作系统(图文介绍适合小白) 文章目录 VMware Workstation Pro(虚拟机)安装Win10操作系统(图文介绍适合小 ...

  2. Nginx的安装基础配置(windows、linux)以及搭建图片服务器(windows、阿里云),文件上传

    Nginx的安装基础配置(windows.linux)以及搭建图片服务器(windows.阿里云),文件上传 本文目录 文章目录 Nginx的安装基础配置(windows.linux)以及搭建图片服务 ...

  3. 低配置系统安装 linux,Linux系统的安装和配置

    Linux系统的安装和配置 更新时间:2006年10月24日 00:00:00   作者: Linux,在今天的广大电脑玩家耳中已经不再是那个曾经陌生又遥远的名字,大家提起Linux时,不再是把它当做 ...

  4. nginx的安装与配置

    1.nginx的安装与配置 编译安装nginx需要实现安装开发包组"Development tools"和"Server Platform Development&quo ...

  5. linux安装DNS服务命令,Linux下的安装和配置DNS服务器

    Linux下的安装和配置DNS服务器 发布时间:2008-09-08 17:03:00   作者:佚名   我要评论 在Linux操作系统中使用BIND (Berkeley Internet Name ...

  6. 只需五步学会Maven 3.6.1OR 3.6.3及其他版本的下载安装与配置【图文详解】

    第一步,下载并解压缩包 ​第二步,配置两个环境变量 ​第三步,测试是否安装成功 ​第四步,指定本地仓库的路径 第五步,修改镜像仓库 第一步,下载并解压缩包 Maven官方下载地址:https://ma ...

  7. webmin升级php,Centos linux下webmin安装及配置

    Centos linux下webmin安装及配置 2012-1-30 18:14 Monday 分类:Linux 评论(49) 浏览(18247) webmin是一个用浏览器来管理系统的工具. 1.下 ...

  8. 在RedHat Linux系统中安装和配置snmp服务

    在RedHat Linux系统中安装和配置snmp服务 检查系统是否安装snmp服务 # rpm -qa|grep snmp net-snmp-5.3.2.2-17.el5 net-snmp-perl ...

  9. Ubuntu20.04中fastdfs,nginx的安装和配置(apt-get安装nginx添加fastdfs-nginx-module模块)

    Ubuntu20.04中fastdfs,nginx的安装和配置 环境准备: 编译环境: Ubuntu20.04 使用的系统软件: fastdfs-6.07 fastdfs-nginx-module-1 ...

最新文章

  1. 信息学复赛用linux,NOIP/CSPJ 复赛中noilinux里的atbiter测评机的使用(附数据)
  2. 别做菜鸟!莫让摄像头参数迷惑头脑
  3. 安装Ubuntu时,遇到自定义交换空间swap大小设置问题
  4. Windos消息驱动
  5. 我国将于今年春季发射空间站核心舱 空间站进入全面实施阶段
  6. 漫说中介者模式--创业公司成长记
  7. MyEclipse+Tomcat+MAVEN+Git项目完整环境搭建
  8. 动态时间规整_动态规划-数组系列(10%)
  9. Git 实用命令项目基操【合集】
  10. DDK build的时候C2220警告当错误处理
  11. 白板推导系列Pytorch-隐马尔可夫模型-学习问题
  12. 圈圈教你玩usb第一版件软件使用说明
  13. 无人机起降(2):AcFly飞控模块与M8N GPS模块的接口修改
  14. javaweb开发后端常用技术_java web后端开发技术
  15. 服务器在线测速系统源码
  16. win10/win11无损扩大C盘空间,跨盘合并C、E盘
  17. 学计算机办公文员软件,办公文员必须掌握的办公软件有哪些
  18. sam文件获取与解密
  19. Ubuntu 16.04下DNW的安装及使用
  20. Vue实现在线编辑excel

热门文章

  1. 分享我的电子藏书:工具手册系列(共10本)
  2. 掌上快递 APP 项目之概述篇
  3. Linux下的Makefile规则(隐式规则和模式规则)
  4. 大型机/IBM大型机 简介
  5. 用Excel、SQL、Python做数据分析有何不同?
  6. 2010年医师资格考试新变革
  7. 淘宝/天猫获得店铺的所有商品API接口
  8. 2018年最畅销的20本新书,你错过了几本? 1
  9. php redis 高并发队列,laravel+Redis简单实现队列通过压力测试的高并发处理
  10. 门禁系统管理服务器和工作站,谈谈门禁系统在地铁中的应用