nginx定位目录(nginx配置)
nginx配置
TCP 配置是 Nginx 中一个比较关键的属性,它可以控制 Nginx 传输协议。当配置 Nginx 时,需要注意以下几点:
1. Nginx 中的 tcp 配置有三个参数:接收缓冲区大小(rcvbuf)、发送缓冲区大小(sndbuf)和最后一次活动(linger)。
2. 接收缓冲区和发送缓冲区的大小的单位都是字节,且一般都要大于或等于4K,通常情况下,接收缓冲区要大于发送缓冲区。
3. linger 有三个属性,即: on(开启)、off(关闭)和 timeout(超时),当开启时,Nginx 在服务器关闭连接之前,会将发送缓冲区中的未完成数据发送出去,而 timeout 属性则可以设定超时时间,默认超时时间为0,即Nginx不会考虑超时时间。
4. 在配置 Nginx 时,要根据实际情况调整 tcp 参数,以获得最佳性能。
nginx配置跨域访问
1.跨域问题的由来
何谓同源:URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示它们同源。浏览器的同源策略,从一个域上加载的脚本不允许访问另外一个域的文档属性 ,是浏览器上为安全性考虑实施的非常重要的安全策略。举个例子:比如一个恶意网站的页面通过iframe嵌入了银行的登录页面(二者不同源),如果没有同源限制,恶意网页上的javascript脚本就可以在用户登录银行的时候获取用户名和密码。
2.跨域的影响范围
在浏览器中,<script>、<img>、<iframe>、<link>等标签都可以加载跨域资源,而不受同源限制,
但浏览器会限制脚本中发起的跨域请求。比如,使用 XMLHttpRequest 对象和Fetch发起 HTTP 请求就必须遵守同源策略。
Web 应用程序通过 XMLHttpRequest 对象或Fetch能且只能向同域名的资源发起 HTTP 请求,而不能向任何其它域名发起请求。
不允许跨域访问并非是浏览器限制了发起跨站请求,而是跨站请求可以正常发起,但是返回结果被浏览器拦截了。
最好的例子是CSRF跨站攻击原理,请求是发送到了后端服务器,无论是否设置允许跨域,
有些浏览器不允许从HTTPS跨域访问HTTP,比如Chrome和Firefox,这些浏览器在请求还未发出的时候就会拦截请求,这是特例。
此外父页面js操作不同域的iframe属性时,也会受到跨域限制
nginx配置域名
server_name 域名; location /路径1/ {}location /路径2/ {}就可以 :域名/路径1/域名/路径2/这样来访问了。
nginx配置代理
nginx反向代理,不是必须要能用到tomcat,需要设置好服务指向的地址即可
nginx配置文件参数详解
ngx_upload模块是nginx中一个文件上传模式了,下面我们来看看nginx安装文件上传ngx_upload模块步骤,希望例子对各位有帮助.
安装nginx,并加入nginx upload module和nginx cache purge module:
mkdir ~/download
cd ~/download
wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.0.12.tar.gz
tar zxf nginx_upload_module-2.0.12.tar.gz
git clone https://github.com/FRiCKLE/ngx_cache_purge.git
yum groupinstall "Development Tools"
yum install pcre-devel zlib-devel openssl-devel
wget http://nginx.org/download/nginx-1.2.3.tar.gz
tar zxf nginx-1.2.3.tar.gz
cd nginx-1.2.3
./configure --prefix=/usr/local/nginx --with-pcre --with-http_ssl_module --add-module=../nginx_upload_module-2.0.12 --add-module=../ngx_cache_purge
make && make install
尝试启动:
/usr/local/nginx/sbin/nginx
ps aux | grep nginx
假如我的网站是放在 /home/mysite/www 下的,而nginx配置文件就放在 /home/mysite/etc 下:
省略了很多内容的配置文件,mysite.conf:
server {
listen 80;
server_name 192.168.1.123;
client_max_body_size 20M;
location /upload {
include /home/mysite/etc/nginx/ngx_upload.conf;
}
....其他的配置....
location @after_upload {
proxy_pass http://www_backend;
}
}
将nginx_upload.conf独立开来,是因为其他网站也可以包含此上传配置文件:
nginx_upload.conf:
upload_pass @after_upload;
upload_pass_args on;
upload_cleanup 400 404 499 500-505;
upload_store /home/mysite/www/uploads/tmp;
upload_store_access user:r;
upload_limit_rate 128k;
upload_set_form_field "${upload_field_name}_name" $upload_file_name;
upload_set_form_field "${upload_field_name}_content_type" $upload_content_type;
upload_set_form_field "${upload_field_name}_path" $upload_tmp_path;
upload_aggregate_form_field "${upload_field_name}_md5" $upload_file_md5;
upload_aggregate_form_field "${upload_field_name}_size" $upload_file_size;
upload_pass_form_field "^.*$";
而最后那个参数:upload_pass_form_field,代表可以将表单的所有参数保持原样传递到后端,需要区分文件保存类型时很有用。
nginx配置负载均衡
upstream 通过扩展健康检测插件可以剔除挂掉的服务实例,让其不参与负载均衡
nginx配置多个server
nginx做反向代理,分发请求到后端多个服务器。
你要单台服务器实现10000并发,是很难的,不光是配置问题,还有程序优化都要求很高的nginx配置文件
首先你要理解一下个结构的关系:
1、mail server,如sendmail,是用来发送邮件和接收邮件的,即pop和smtp功能。
2、nginx本身是不能发送和接收邮件的,他只是一个中转机构,代理作用。你要做的:1、把后端的mail server配置好,能收发邮件以及管理。2、配置好nginx的代理功能,把邮件的出入都设置一下。确保nginx和mail之间能正常通讯3、把域名pop.abc.com和smtp.abc.com的A记录指向nginx的地址。4、等域名生效后,用foxmail之类发送和收取邮件看看,地址用域名pop和smtp那个。5、其它spf设置也设置一下。希望对你有帮助。
nginx配置文件路径
默认根目录在配置文件nginx.conf中 找到root指令后面的路径,就是nginx默认的根目录 windows和linux的默认根目录好像是不同的 windows下应该是nginx所在目录下的html目录
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.