NGINX安装和配置

Nginx(”engine x”)是俄罗斯人编写的HTTP服务工具

1,环境准备

  1. yum -y install vim //安装vim编辑器
  2. yum list | grep bash //查询名字和bash有关的软件包
  3. yum -y install bash-completion //安装支持tab键的软件包,装好之后,使用exit退出,重新登录才生效
  4. Yum -y install net-tools //安装网络相关软件包
  5. yum -y install psmisc //安装支持killall命令的软件
  6. yum -y install gcc make //安装编译工具
  7. yum -y install pcre-devel //安装可以让nginx支持正则的软件包
  8. yum -y install openssl-devel //安装可以让nginx支持安装加密网站的软件包

tar -xf nginx-1.17.6.tar.gz //释放nginx cd nginx-1.17.6/ //进入nginx目录 ./configure —prefix=/usr/local/nginx —user=nginx —with-http_ssl_module //配置,—prefix是指定安装路径,—user是指定用户 —with-http_ssl_module //安全网站模块 make && make install //编译安装

ls /usr/local/nginx/ //检测看到4个目录则成功

conf 存放配置文件 sbin 存放主程序 html 存放网站页面 logs 存放日志

开启服务并测试

cd /usr/local/nginx useradd nginx -s /sbin/nologin //创建用户 /usr/local/nginx/sbin/nginx //开启服务 sbin/nginx //使用相对路径开启服务也可以 netstat -ntulp | grep nginx //检测服务是否正常开启 sbin/nginx -V //查看nginx版本以及安装时带了哪些参数和模块 systemctl stop firewalld //关闭防火墙 使用真机的火狐浏览器打开192.168.99.5要看到nginx默认页面 sbin/nginx -s stop //关闭服务 sbin/nginx -s reload //重加载配置文件,服务必须是开启状态

2,测试网站页面:

  1. echo "abc-test~~~" > html/abc.html //创建新页面
  2. http://192.168.99.5/abc.html //访问新页面
  3. 火狐访问192.168.99.5/abc.html //如果无效,可以按ctrl+f5强制刷新
  4. 测试成品网站页面:
  5. [root@proxy nginx]# yum -y install unzip //安装解压缩工具
  6. [root@proxy nginx]# unzip ~/lnmp_soft/www_template.zip //解压缩网站模板
  7. [root@proxy nginx]# cp -r www_template/* html/ //拷贝网站模板文件到nginx的网页目录,如果有覆盖提示就输入 y 回车
  8. 最后火狐访问192.168.99.5
  9. --------------------------------------------------------------------------------
  10. 为nginx增加网站认证功能
  11. 修改nginx配置文件,在40、41行添加两句
  12. vim conf/nginx.conf
  13. auth_basic "password"; //网页弹出的提示信息,此信息可能会根据不同浏览器显示效果不一,有的浏览器甚至不显示,但不影响认证功能
  14. auth_basic_user_file "/usr/local/nginx/pass"; //存放网站账户的文件
  15. sbin/nginx -s reload //重加载配置,检验之前配置,没有任何信息即可
  16. yum -y install httpd-tools //之后安装软件包
  17. htpasswd -c pass tom //创建pass文件,里面创建tom账户,之后会要求输入两次密码
  18. 然后用火狐浏览器访问192.168.99.5,可以看到输入用户名密码的对话框、输入用户名tom以及密码即可
  19. htpasswd pass jerry //追加一个账户,名字是jerry
  20. 如果要反复测试网站认证功能,需要清空浏览器的历史记录
  21. --------------------------------------------------------------------------------------
  22. 做完上述实验之后,可以按下列方法恢复nginx为默认状态
  23. [root@proxy nginx]# cp conf/nginx.conf.default conf/nginx.conf //恢复nginx配置文件为默认状态
  24. cp:是否覆盖"conf/nginx.conf" ? y
  25. --------------------------------------------------------------------------------------

创建虚拟主机

  1. <virtualhost *:80>
  2. servername www.a.com
  3. documentroot /var/www/html
  4. </virtualhost>
  5. <virtualhost *:80>
  6. servername www.b.com
  7. documentroot /var/www/b
  8. </virtualhost>

nginx配置虚拟主机

  1. http {
  2. server { //第1个虚拟主机
  3. listen 80;
  4. server_name www.a.com;
  5. root html;
  6. index index.html;
  7. }
  8. server { //第2个虚拟主机
  9. 。。。。
  10. 。。。。
  11. }
  12. }
  1. 打开nginx主配置文件在34~39行添加:
  2. server {
  3. listen 80; //监听端口号
  4. server_name www.b.com; //域名,默认的虚拟主机改成www.a.com
  5. root html_b; //存放网页的目录
  6. index index.html; //默认页名字
  7. }
  8. sbin/nginx -s reload //之后重新加载配置文件,服务必须是开启状态
  9. [root@proxy nginx]# mkdir html_b //创建b网站的目录
  10. echo "nginx-A~~~" > html/index.html //创建a网站测试页
  11. echo "nginx-B~~~" > html_b/index.html //创建b网站测试页
  12. vim /etc/hosts //修改hosts文件添加ip和域名的映射关系
  13. 192.168.99.5 www.a.com www.b.com
  14. curl www.a.com //检测a网站或b网站都可以看到页面
  15. 另外:
  16. windows环境配置hosts文件
  17. C:\Windows\System32\drivers\etc\hosts
  18. 右键---属性---安全---编辑---users---完全控制打钩
  19. 然后用文本打开hosts,在最后添加
  20. 192.168.99.5 www.a.com www.b.com
  21. --------------------------------------------------------------------------
  22. 四,搭建安全网站
  23. 对称算法 AES DES 单机数据加密 使用相同字符串加密和解密
  24. 非对称算法 RSA DSA 网络数据加密 利用公钥(锁)加密,私钥(钥匙)解密
  25. 信息摘要md5 sha256 数据校验
  26. 修改配置,实现安全加密网站
  27. [root@proxy nginx]# vim conf/nginx.conf //修改大概103~120行,如果配置恢复了,就找98~115行
  28. server { //此处的虚拟主机自带ssl安全加密功能,将其范围的注释取消即可
  29. listen 443 ssl;
  30. server_name localhost;
  31. ssl_certificate cert.pem; //证书,包含公钥
  32. ssl_certificate_key cert.key; //私钥
  33. ssl_session_cache shared:SSL:1m;
  34. ssl_session_timeout 5m;
  35. ssl_ciphers HIGH:!aNULL:!MD5;
  36. ssl_prefer_server_ciphers on;
  37. location / {
  38. root https; //这里修改页面存储目录
  39. index index.html index.htm;
  40. }
  41. }
  42. [root@proxy nginx]# mkdir https //创建安全网站的目录
  43. [root@proxy nginx]# echo "https~~~~ " > https/index.html //创建安全网站的页面
  44. 创建私钥与证书
  45. [root@proxy nginx]# openssl genrsa > conf/cert.key //创建私钥
  46. [root@proxy nginx]# openssl req -x509 -key conf/cert.key > conf/cert.pem
  47. //创建证书,证书中包含公钥,生成过程会询问诸如你在哪个国家之类
  48. 的问题,可以随意回答,但要走完全过程
  49. Country Name (2 letter code) [XX]:dc 国家名
  50. State or Province Name (full name) []:dc 省份
  51. Locality Name (eg, city) [Default City]:dc 城市
  52. Organization Name (eg, company) [Default Company Ltd]:dc 公司
  53. Organizational Unit Name (eg, section) []:dc 部门
  54. Common Name (eg, your name or your server's hostname) []:dc 服务器名称
  55. Email Address []:dc@dc.com 电子邮件
  56. 启动服务并测试
  57. [root@proxy nginx]# sbin/nginx //服务没开的话开服务
  58. [root@proxy nginx]# sbin/nginx -s reload //已经开了的话重加载配置
  59. [root@proxy nginx]# curl -k https://192.168.99.5 //检验,-k是忽略风险
  60. https~~~~ //看到这个内容就说明实验成功
  61. [root@proxy nginx]# systemctl stop firewalld //如果用真机的火狐浏览器测试需要
  62. 关闭防火墙,然后输入https://192.168.99.5