Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx 可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版。 Nginx 的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 的源代码使用 2-clause BSD-like license。
Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:
在连接高并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。
1. 首先我们来安装Nginx(通过yum源)
1.1 添加yum源
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
1.2 执行yum命令安装nginx
yum install nginx
1.3 启动nginx服务器
service nginx start
1.4,然后进入浏览器,输入http://192.168.0.161:端口号,如果看到
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.
Thank you for using nginx.
恭喜你,你成功了!
如果不能连接到nginx,原因很多,但是可以先检查 1,nginx服务是否真的起来了;2,linux服务器防火墙是否打开
1.5 如果报端口权限问题,有两个办法可以解决这个问题
1.5.1 直接去sbin目录下启动nginx, 不同安装方式路径可能不同
启动命令: /usr/sbin/nginx
载入新配置: /usr/sbin/nginx -s reload
关闭命令: /usr/sbin/nginx -s stop
1.5.2 通过semanage修改端口权限
安装命令: yum -y install policycoreutils-Python
查看支持http的端口: semanage port -l|grep http
添加支持http的新端口: semanage port -a -t http_port_t -p tcp 81
这个时候就可以直接通过service nginx start启动不会报端口权限问题了
1.5.3 连接权限错误拒绝connect() to 127.0.0.1:8081 failed (13: Permission denied)
碰到类似错误有三种解决方法
1. 配置文件nginx.conf中一般默认是用户nginx, 修改为当前运行账号(比如root)。
2. 关闭selinux
3. 运行setsebool -P httpd_can_network_connect 1
2. Nginx反向代理配置
很简单, 没有什么难度, 如果系统内部有一些重定向的需要注意
server {
listen 80; //监听端口
server_name URL;
location / {
proxy_pass http://代理服务器名;
}
}
## Basic reverse proxy server ##
upstream 代理服务器名 {
server 172.22.1.150:8080;
#可以挂载多个server
}
3. https配置
思路是https反向代理到http端口, 所以配置和普通反向代理差不多
3.1 监听端口添加ssl标签
3.2 设置证书路径
server {
listen 443 ssl; //监听端口
server_name URL;
#设置密钥和证书路径
ssl_certificate /etc/nginx/conf.d/www.yuncangwl.com.crt;
ssl_certificate_key /etc/nginx/conf.d/www.yuncangwl.com.key;
location / {
proxy_pass http://代理服务器名;
}
}
## Basic reverse proxy server ##
upstream 代理服务器名 {
server 172.22.1.150:8080;
#可以挂载多个server
}
4. Nginx重定向配置
Nginx有强大的定向功能, 可以使用rewrite和return功能将http/https访问定位到任何地址
下例
4.1 将http访问重定向到https
4.2 统一重定向到www, 建议新增server重定向在第一次访问以后就解决问题, 而不是通过if每次访问都要判断
server {
listen 80;
server_name $scheme://yuncangwl.com$request_uri $scheme://www.yuncangwl.com$request_uri;
return 301 https://www.yuncangwl.com$request_uri;
}
5. 解决反向代理后访问显示监听端口的问题(如实际过程未遇到, 可以忽略)
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
6. 反向代理 + 安全证书 + 重定向举例
upstream yuncangwl {
server 172.22.1.172:8080;
}
server {
listen 443 ssl;
server_name www.yuncangwl.com;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
ssl_certificate /etc/nginx/conf.d/www.yuncangwl.com.crt;
ssl_certificate_key /etc/nginx/conf.d/www.yuncangwl.com.key;
location / {
proxy_pass http://yuncangwl;
#Proxy Settings
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#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 /usr/share/nginx/html;
}
}
server {
listen 80;
server_name $scheme://yuncangwl.com$request_uri $scheme://www.yuncangwl.com$request_uri;
return 301 https://www.yuncangwl.com$request_uri;
}
本文介绍了Nginx的安装步骤,包括通过yum源安装,启动服务,解决端口权限问题。同时,讲解了Nginx的反向代理配置,HTTPS配置以及重定向配置,提供了具体的配置示例,帮助读者理解并实现Nginx服务器的高效部署。

1631

被折叠的 条评论
为什么被折叠?



