Nginx是一个高性能的http和反向代理web服务器,本篇在记录阿里云ECS中安装及配置Nginx的过程。Nginx作为系统关键服务,下面流程全部在root用户下完成。

  • 系统:CentOS 8.0 64位
  • Nginx:1.18.0版本

1 安装nginx依赖

Nginx的安装通过源码包编译完成,需要c++支持库,同时在Nginx运行过程中对于一些压缩、路由正则表达式、https支持等相关特性需要其他一些支持库。一般情况下,安装 gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel 这些依赖可满足基本要求,安装指令如下:

yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

上面指令是完整安装,如果服务器已安装部分依赖,可忽略,具体可执行yum info 依赖包名称查看是否已安装。如下图,本机只安装了部分未安装的依赖。


安装完成后,指令结果会列出已安装和更新的项,如下:

2 安装Nginx

2.1 下载解压源码包

从 Nginx官方 下载最新稳定版本源码,当前为 1.18.0 ,如下图。

下载及解压指令如下(解压目标目录自行指定):

wget http://nginx.org/download/nginx-1.18.0.tar.gztar -zxvf nginx-1.18.0.tar.gz


2.2 安装配置检查

解压完成后,进入到解压目录 执行安装检查,运行如下指令:

./configure



检查完成后,默认安装配置信息如上图所示。

2.3 安装

在解压目录下 执行下面指令,默认会安装到/usr/local/目录下

make && make install

2.4 配置别名

此步骤可选,目的是为了后续运行nginx操作指令方便。别名配置方式和当前使用的shell类型相关,这里使用zsh,所以在用户目录的.zshrc文件中加入如下别名 nginx 替代nginx执行文件的完整路径。

vim ~/.zshrc
source ~/.zshrc

2.5 安装结果验证

安装完成后,会生成nginx默认配置文件 /usr/local/nginx/conf/nginx.conf,内容如下:

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#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/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

可执行如下命令nginx配置检查,如果配置文件有错误会有相应提示。

nginx -t


如上图,nginx配置正确,下面指令启动nginx、查看nginx进程、并从本机测试可访问性(默认开启80端口,所以使用 localhost 访问即可),如下图:

nginx
ps -ef|grep nginx
curl localhost


上图中使用 curl 命令访问本机可正常返回页面信息,nginx安装完成。后续可进行其他域名相关的绑定配置。

3 阿里云ECS配置

如上面步骤nginx已成功安装,且在本机可访问。但是由于阿里云的安全机制,默认情况下无法使用公网IP进行访问,也就是无法在其他主机通过非域名方式访问。解决方式如下。

3.1 添加安全组

默认情况下,阿里云系统会给每个ESC主机关联一个默认的安全组(每个ECS实例也至少要关联一个安全组),该安全组默认开启了TCP协议中的223389端口,用于支持 sshmysql 操作,如下图。所以安装Nginx后,默认使用的 80 端口并未开放,所以无法访问。


这里建立一个新的安全组用于开放nginx使用的端口,如下图,入方向 开放 80443两个端口。(如果nginx使用了其他端口,可类似添加其他端口的规则)。

3.2 ECS实例加入新安全组

将安装nginx的ECS实例加入到刚才创建的安全组中,如下图。

3.3 测试公网IP访问

完成上面步骤后,在浏览器中,直接输入ECS的公网IP,可成功访问,如下图:

3.4 域名访问

国内主机不允许使用未备案的域名进行站点访问,所以,如果在nginx中将站点绑定到域名,无法正常访问,如下图。这种情况可对域名进行备案,或者将域名绑定到国外IP的主机。

阿里云ECS(Centos)中Nginx安装及配置相关推荐

  1. 阿里云centos mysql_阿里云ECS服务器CentOS7上安装MySql服务-阿里云开发者社区

    阿里云ECS服务器CentOS7上安装MySql服务 ---------------------------------------------- 使用root登录 1.确保服务器系统处于最新状态 [ ...

  2. 阿里云ecs实例中创建数据库

    阿里云ecs实例中创建数据库 安装mysql 创建数据库 1.登录 2.新建数据库 3.执行.sql文件 4.查询表,验证是否创建成功 4.退出数据库 安装mysql 参考https://blog.c ...

  3. 阿里云ECS服务器CentOS7上安装服务器安全狗Linux版

    阿里云ECS服务器CentOS7上安装服务器安全狗Linux版 ---------------- 使用root登录 1.确保服务器系统处于最新状态[root@localhost ~]# yum -y ...

  4. 阿里云 ECS 服务器如何一键安装宝塔面板

    阿里云 ECS 服务器和宝塔面板是最佳搭配伙伴,也是最适合新手.老手使用的一款云服务器搭配组合.无论 windows 服务器还是 linux 服务器,阿里云服务器都提供了对应版本的宝塔面板供大家取用, ...

  5. 阿里云ECS服务器配置LAMP时安装配置mysql数据库填坑(二)

    阿里云ECS服务器配置LAMP时安装配置mysql数据库填坑(二) 上篇文章讲到的是安装apache服务器时遇到的坑,经过排错总算是把Apache的坑填完了,没想到安装mysql又跳坑里了,真是不得不 ...

  6. 阿里云ECS服务器配置LAMP时安装配置PHP扩展填坑(三)

    阿里云ECS服务器配置LAMP时安装配置PHP扩展填坑(三) apache+mysql配置完成.问题解决后,接下来就是安装配置PHP了,按照阿里云官方lamp配置文档(https://help.ali ...

  7. CentOS中vsftp安装、配置、卸载

    CentOS中vsftp安装.配置.卸载 转载http://www.zjgsq.com/1509.html 转载于:https://blog.51cto.com/bbtao/1606816

  8. DotAsterisk(点星PBX)呼叫中心系统在阿里云ECS服务器上的安装部署

    最近有一项语音呼叫的业务需要将DotAsterisk(点星PBX)部署到阿里云ECS云主机上,正好这段时间发现阿里云做活动,ECS机器购买优惠力度很大,新用户只需要699元就可以购买一台2CPU 4G ...

  9. 阿里云ECS之下载与安装SSH(二)

    下载与安装SSH 其中SSH Secure Shell Client为文字界面,SSH Secure File Transfer Client为图形化界面 搭建环境 打开图像化界面,左边是window ...

最新文章

  1. 微信小程序实例开发教程之知乎新闻
  2. 某网络专业人士笔记(超级珍藏)
  3. Java虚拟机学习(7):对象内存分配与回收
  4. 信号与系统——微分方程与差分方程——编辑中
  5. Java中如何解决double和float精度不准的问题
  6. 浪潮I9000革新传统刀片 解决基础架构统一难题
  7. 细数家庭安防五大乱象 何时能步入正轨
  8. docker web程序本地化_Docker-01-Docker介绍
  9. linux shell 上传,下载ftp文件
  10. Java多线程学习四十:如何写一个必然死锁的例子
  11. Leave the world behind,山巅雪莲的再次绽放
  12. object怎么转list_PaddleOCR识别模型转Pytorch全流程记录
  13. 只存活了9天,谷歌AI伦理委员会解散了:严重低估员工的战斗力
  14. C/C++二维数组的用法
  15. 算法实践——改良的求解数独的暴力搜索法
  16. HDFView安装及使用教程
  17. 重装系统后没有网卡驱动
  18. 颜色对照表(五)(16进制、RGB、CMYK、HSV、中英文名)
  19. 解压ubi文件_ubi详解
  20. 域名邮箱用GMAIL,live

热门文章

  1. 微软发布6月份安全更新程序补丁(For Windows xp/2003/2000/vista和Office 2003/2007所有更新产品补丁)
  2. 图像不能包含 alpha 通道或透明度
  3. 必测的支付漏洞(二)支付流程中“幂等性”
  4. XYNUOJ 1190 行车路程
  5. 个人信息“裸奔”?超七成网民遭泄露
  6. 鸿蒙不支持nas,群晖Video Station不支持dts eac3的解决方案
  7. 广东计算机一级ps操作题,2017年计算机一级PS练习题及答案
  8. 如何在照片或者图片上增加文字
  9. 读书笔记《世界金融史》
  10. oracle表数据如何导出成dbf,怎么将EXCEL导成DBF?《dbf导出excel数据》